Pular para o conteúdo principal

Criar pagamento

Fazendo Requisição​

A chamada deverá ser feita utilizando o método POST. É necessária a autenticação via Authorization header.

POST/v1/card_payments

Descrição dos atributos

AtributoTipoDescriçãoObrigatório
card_expiration_datestringData de expiração do cartão, no formato MMyyyy (ex.: 012029)Parcial
card_numberstringNúmero do cartão, sem espaços ou traçosParcial
card_security_codestringCódigo de segurança (CVV/CVC)Parcial
slug_tokenstringUma sequência alfanumérica de 32 caracteres que representa um cartão tokenizado pelo endpoint /v1/tokenize_card. Pode ser usada em vez de card_number, card_expiration_date e card_security_code.Não
slug_stored_cardstringUma sequência alfanumérica de 32 caracteres que representa um cartão armazenado no cofre de cartões pelo endpoint /v1/tokenize_card. Pode ser usada em vez de card_number, card_expiration_date e card_security_code.Não
card_holder_documentstringDocumento do portador do cartão (CPF ou CNPJ, apenas números)Sim
card_holder_namestringNome do portador impresso no cartãoSim
installmentsintegerNúmero de parcelas (entre 1 e 12) Caso não seja enviado o padrão é de 1 parcelaNão
payment_typestringTipo de pagamento (CREDIT ou DEBIT) Caso não seja enviado o padrão é CREDITNão
currencystringMoeda da transação (BRL) Caso não seja enviado o padrão é BRLSim
amountintegerValor do pagamento em centavos (ex.: 100 = R$ 1,00)Sim
platform_namestringNome da plataforma que está gerando o checkoutNão
billing_urlstringURL para redirecionar o usuário para a página customizada de cobrançaNão
return_urlstringURL do webhook onde as notificações serão enviadasNão

Exemplo de Requisição (Padrão)​

POST /v1/card_payments
HTTP Request Body
{
"card_payment": {
"card_expiration_date": "012029",
"card_holder_document": "00000000000",
"card_security_code": "123",
"card_holder_name": "John Doe",
"installments": 1,
"payment_type": "CREDIT",
"card_number": "4111111111111111",
"currency": "BRL",
"amount": 100,
"platform_name": "string",
"billing_url": "string",
"return_url": "string",
}
}

Exemplo de Requisição(Zero Dollar) → Validação de cartão​

POST /v1/card_payments
HTTP Request Body(Zero Dollar) - Validação de cartão - Exemplo
{
"card_payment": {
"card_expiration_date": "012029",
"card_security_code": "123",
"card_holder_name": "John Doe",
"card_holder_document": "00000000000",
"card_number": "4111111111111111",
"amount": 0,
"platform_name": "string",
"billing_url": "string",
"return_url": "string",
}
}

Exemplo de Requisição (Slug Token)​

POST /v1/card_payments
HTTP Request Body Slug Token - Exemplo
{
"card_payment": {
"slug_token": "XXXXXXXXXXX",
"card_holder_document": "00000000000",
"card_holder_name": "John Doe",
"installments": 1,
"payment_type": "CREDIT",
"currency": "BRL",
"amount": 100,
"platform_name": "string",
"billing_url": "string",
"return_url": "string",
}
}

Exemplo de Requisição (Stored Card)​

POST /v1/card_payments
HTTP Request Body Stored Card - Exemplo
{
"card_payment": {
"slug_stored_card": "XXXXXXXXXXX",
"card_holder_document": "00000000000",
"card_holder_name": "John Doe",
"installments": 1,
"payment_type": "CREDIT",
"currency": "BRL",
"amount": 100,
"platform_name": "string",
"billing_url": "string",
"return_url": "string",
}
}

Sucesso​

Após a chamada, é retornado um JSON com o status 201 - Created caso o procedimento tenha ocorrido com sucesso.

HTTP 201 Response Body - Exemplo
{
"card_payment": {
"muid": "7bcedaa6-1c58-4ae6-a7ca-3c4628967049",
"external_id": "seu-external-id",
"slug": null,
"rrn": "123456789012",
"amount": 1000,
"currency": "BRL",
"status": "approved",
"last_digits": "4321",
"installments": 2,
"tracking_number": "7bcedaa6-1c58-4ae6-a7ca-3c4628967049",
"card_holder_name": "John Doe",
"card_holder_email": null,
"card_holder_document": "12345678901",
"brand": "Visa",
"request_token": "req_tok_abc123xyz",
"payment_type": "credit",
"authorization_code": "A1B2C3",
"refund_tracking_number": null,
"first_digits": "411111",
"active": true,
"slug_authorizer": "7bcedaa6-1c58-4ae6-a7ca-3c4628967049",
"slug_customer": "7bcedaa6-1c58-4ae6-a7ca-3c4628967049",
"slug_terminal": "7bcedaa6-1c58-4ae6-a7ca-3c4628967049",
"slug_merchant": "7bcedaa6-1c58-4ae6-a7ca-3c4628967049",
"sales_channel": null,
"authorizer_merchant_id": "M1234567",
"authorizer_terminal_id": "T7654321",
"transaction_status": "authorized",
"product_or_issuer": null,
"settlement_management_type": null,
"transaction_method": "",
"cancelling": false,
"platform_name": "string",
"billing_url": "string",
"return_url": "string",
"created_at": "2025-09-11T19:45:00Z"
}
}

Eventos Notificados​

  • O sistema irá enviar notificações para todos os status disponíveis da transação.
  • Isso vale para Checkout, PixQrCode e Cartão
  • Qualquer mudança de status (Criação, confirmação, cancelamento, etc.) resultará em uma chamada ao webhook configurado na criação da transação.
  • As notificações seguirão exatamente o mesmo padrão de dados já utilizados pelo webhook existente, garantindo compatibilidade e consistência na integração.

Entre nesta página para mais detalhes sobre Webhook - Notificação do cartão

Erros​

Em caso de erros, será retornado um json com o atributo error especificando o motivo de a operação ter sido invalidada.

HTTP 422 Response Body - Unprocessable Entity - Exemplo
  {
"errors": [
{
"code": "AUTHORIZER_REJECTED",
"msg": "46 - Identification required"
}
],
"muid": "f251e1b753504766957cf4142e936262",
"request_token": "83329FF45587498D88E1590C7FB78CD8",
"amount": 1,
"currency": "BRL",
"tracking_number": "00010609171144580010000000324834",
"last_digits": "1111",
"transaction_status": "REJECTED",
"brand_response_code": "83",
"multiacq_id": "021"
}

🔹 Atributos Importantes da Resposta​

AtributoDescrição
muidIdentificador único da transação
external_idIdentificador único external, criado pelo cliente
amountValor da transação
rrnRetrieval Reference Number (referência do adquirente/banco)
statusCódigo de resposta da transação (accepted, reject e waiting_3ds_authentication)
transaction_statusStatus da transação (pending, pre_authorized, authorized, denied, canceled, expired, refunded, waiting)
authorization_codeCódigo de autorização retornado pela adquirente
last_digitsÚltimos 4 dígitos do cartão
installmentsNúmero de parcelas
created_atData/hora da criação da transação
codeCódigo de erro da transação(encontrado dentro do array errors)
msgDescrição do erro retornado(encontrado dentro do array errors)

🔹 Códigos de Resposta​

  • 200 OK – Pagamento processado com sucesso
  • 422 Unprocessable Entity – Dados inválidos (ex.: formato incorreto de CPF ou número do cartão)
  • 401 Unauthorized – Falha de autenticação/autorização na API
  • 500 Internal Server Error – Erro interno no processamento

Tabela de Erros do Gateway​

Código de ErroMensagemDescrição
MIN_INSTALLMENTSInstallments can't be lower than 1O número de parcelas não pode ser menor que 1.
MAX_INSTALLMENTSInstallments can't the higher than 12O número de parcelas não pode ser maior que 12.
INVALID_MONTH_NUMBERIncorrect expiration date. Invalid month number.Quando o mês da data de expiração do cartão é inválido.
INCORRECT_EXPIRATION_DATEIncorrect expiration date. Correct format is MMyyyy.Quando a data de expiração do cartão é diferente do formato correto (mmYYYY).
EXPIRATION_DATE_NON_NUMERICExpiration date has non-numeric character.Quando a data de expiração do cartão possui caracteres não numéricos.
MSG_GENERAL_ERRORUnknown Card Brand.Quando o número do cartão tem mais de 19 dígitos ou está vazio.
AMOUNT_REQUIREDAmount required.Transação sem envio do campo valor.
CURRENCY_REQUIREDCurrency required.Transação sem envio do campo moeda.
FIELDS_REQUIREDThe following fields are required: expirationDateAo tentar enviar uma transação, verifique a data de expiração.
INVALID_CVVInvalid CVV. CVV should be 3 digits.Quando o código de segurança do cartão é diferente de 3 dígitos (exceto AMEX) e/ou não é numérico.
CURRENCY_NOT_SUPPORTEDCurrency not supported. Please refer to our documentation to see supported currencies.Ao tentar enviar uma transação, verifique a moeda suportada.
CURRENCY_INVALID_FORMATCurrency must be notated in ISO 4217 currency code.Ao tentar enviar uma transação, verifique o formato de moeda suportado.
INVALID_AMOUNTInvalid AmountO campo valor é inválido.
AMOUNT_NOT_SUPPORTEDAmount can't be higher than 100 millionValores maiores que 100 milhões não são suportados.
AMOUNT_OUT_OF_BOUNDSAmount value out of bounds (max 2 digits expected for fraction)Quando o valor tem mais de dois dígitos após o ponto decimal.
SPLIT_VALUE_TOO_HIGHSplits total value can't be equal or higher than the transaction amount.Ao tentar enviar uma transação, verifique que o valor total das divisões não pode ser igual ou maior que o valor da transação.
EMPTY_SPLITField splits can't be empty if splitValueType field is presentAo tentar enviar uma transação, verifique se o campo splits não pode estar vazio se o campo splitValueType estiver presente.
EMPTY_SPLIT_TYPEField splitValueType can't be empty if splits field is presentAo tentar enviar uma transação, o campo splitValueType não pode estar vazio se o campo splits estiver presente.
OWNER_IN_SPLITMerchant executing the transaction must not be on splits fieldSe você é quem está executando a divisão, não deve estar incluído no campo split.
SPLIT_MERCHANT_DUPLICATIONCan't have duplicated documentId in splitAo tentar enviar uma transação, não é possível ter um documentId duplicado.
INVALID_INSTALLMENTS_PLAN_ENTRYInstallments plan entry cannot be the same as or lower than the previous entry.Ao tentar enviar uma transação, o valor da entrada do plano de parcelamento não deve ser igual ou menor que a entrada anterior.
INSTALLMENTSPLAN_ENTRIES_AND_INSTALLMENTSMISMATCHInstallmentsPlan should have the same amount of entries as the installments field value.Ao tentar enviar uma transação, o plano de parcelamento deve ter a mesma quantidade de entradas que o valor do campo de parcelas.
INSTALLMENTS_PLAN_CANT_BE_EMPTYInstallments plan cannot be empty.Ao tentar enviar uma transação, o plano de parcelamento não pode estar vazio.
INVALID_NULL_OR_ZERO_INSTALLMENTS_PLAN_ENTRYInstallments plan entries cannot be null nor 0 (zero).Ao tentar enviar uma transação, não é possível enviar parcelas nulas ou 0 (zero).
CUSTOM_NOT_ALLOWEDCustomer not allowed for custom installment plan transaction.Cliente não permitido para transação com plano de parcelamento personalizado.
CARDBRAND_NOT_ALLOWEDCardbrand must be Visa for custom installment plan transactions.A bandeira do cartão deve ser Visa para transações com plano de parcelamento personalizado.
MSG_GENERAL_ERRORThese documentId were not found: "S"document_id não encontrado.
MSG_GENERAL_ERRORThe following merchants aren't enabled to process CNP with authorizer POSTILION: "S"Comerciante não habilitado para processar CNP.
Split value must be higher than zeroSplit value must be higher than zeroAo tentar enviar uma transação, o valor da divisão deve ser maior que zero.
Can't have more than 20 splits entriesCan't have more than 20 splits entriesAo tentar enviar uma transação, não é possível ter mais de 20 entradas de divisão.