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
xidstringO identificador da transação, uma string base64 de tamanho 28Não
cavvstringO Valor de Verificação de Autenticação do Titular do Cartão, uma string base64 de tamanho 32. Este campo recebe o valor CAVV para as bandeiras de cartão Visa e Elo e o valor UCAF para Mastercard. É obrigatório para todas as transações 3DSNão
cavv_result_codestringO código de resultado do CAVV (tamanho 1). Valores: Espaço (Não validado), 0 (Dados incorretos), 1 (Falha), 2 (Aprovada), 3 (Tentativa incompleta), 4 (Erro sistema)Não
secure_versionstringA versão 3DS no formato x.y. É necessária para todas as transações 3DSNão
directory_server_transaction_idstringIdentificador da transação no servidor da Mastercard. Formato alfanumérico com 32 caracteres. Requerido apenas para transações Master 3DSNão
three_ds_server_transaction_idstringO ID da transação fornecido pelo autenticador. Formato alfanumérico com 32 caracteres. Necessário apenas para transações Amex 3DSNão
billing_addressobjectDados do endereço de cobrança(Para transações a partir de R$150.00)Não
billing_address.streetstringRua do endereço de cobrançaNão
billing_address.numberstringNúmero do endereço de cobrançaNão
billing_address.neighborhoodstringBairro do endereço de cobrançaNão
billing_address.citystringCidade do endereço de cobrançaNão
billing_address.statestringEstado do endereço de cobrançaNão
billing_address.zip_codestringCEP do endereço de cobrançaNão
billing_address.complementstringComplemento do endereço de cobrançaNã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",
"xid": "string",
"cavv": "string",
"cavv_result_code": "string",
"secure_version": "string",
"directory_server_transaction_id": "string",
"three_ds_server_transaction_id": "string"

}
}

Exemplo de Requisição (Maior ou igual a R$150.00)​

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": 15000,
"platform_name": "string",
"billing_url": "string",
"return_url": "string",
"xid": "string",
"cavv": "string",
"cavv_result_code": "string",
"secure_version": "string",
"directory_server_transaction_id": "string",
"three_ds_server_transaction_id": "string",
"billing_address": {
"street": "string",
"number": "string",
"neighborhood": "string",
"city": "string",
"state": "string",
"zip_code": "string",
"complement": "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",
"xid": "string",
"cavv": "string",
"cavv_result_code": "string",
"secure_version": "string",
"directory_server_transaction_id": "string",
"three_ds_server_transaction_id": "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",
"xid": "string",
"cavv": "string",
"cavv_result_code": "string",
"secure_version": "string",
"directory_server_transaction_id": "string",
"three_ds_server_transaction_id": "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",
"xid": "string",
"cavv": "string",
"cavv_result_code": "string",
"secure_version": "string",
"directory_server_transaction_id": "string",
"three_ds_server_transaction_id": "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",
"xid": "string",
"cavv": "string",
"cavv_result_code": "string",
"secure_version": "string",
"directory_server_transaction_id": "string",
"three_ds_server_transaction_id": "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.