Referência
Campos do Request
Referência completa de todos os campos aceitos pelo endpoint POST /api/checkout/.
Campos do Request
POST /api/checkout/ — campos raiz
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
paymentMethod | string | SIM | "credit_card" ou "threeDs" |
amount | string | SIM | Valor total em reais. Ex.: "149.90" |
installments | integer | SIM | Parcelas: 1 a 12 |
antifraud_profiling_attempt_reference | string (UUID) | recomendado | UUID da sessão de fraude Nethone |
threeDSecure | object | SIM se threeDs | Criptograma 3DS — ver abaixo |
card | object | SIM | Dados do cartão — ver abaixo |
customer | object | SIM | Dados do comprador — ver abaixo |
address | object | não¹ | Endereço de cobrança — ver abaixo |
items | array | SIM | Mínimo 1 elemento — ver abaixo |
postbackUrl | string | recomendado | URL para webhooks de status |
checkoutUrl | string | não | URL da página de checkout (para logs) |
exId | string | não | Seu ID interno para correlação |
feeByItem | boolean | não | Distribuir taxas por item. Padrão: false |
splitsByItem | boolean | não | Split de pagamento por item. Padrão: false |
splits | array | não | Split de pagamento na transação |
locale | string | não | "pt-BR" padrão |
country_code | string | não | "BR" padrão (ISO 3166-1 Alpha-2) |
¹ address é opcional para produtos digitais (tangible: false). Recomendado incluir para melhorar análise de fraude.
Objeto threeDSecure
Somente quando paymentMethod: "threeDs". Chaves em PascalCase exatamente como retornadas pelo onSuccess do BP.MPI.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Cavv | string | SIM | Criptograma de autenticação (base64) |
Eci | string | SIM | Electronic Commerce Indicator. Ex.: "05", "02" |
Version | string | SIM | Versão do protocolo. Ex.: "2.2.0" |
Xid | string | não | ID da transação 3DS |
ReferenceId | string | não | Reference ID do BP.MPI |
DataOnly | boolean | não | false na maioria dos casos |
Se Cavv, Eci ou Version estiverem vazios, a API retorna HTTP 400. Não submeta o checkout se onSuccess não disparou.
Objeto card
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
number | string | SIM | Número do cartão, somente dígitos |
holderName | string | SIM | Nome no cartão. Recomendado: maiúsculas |
expMonth | string | SIM | Mês de expiração. Ex.: "12" ou "03" |
expYear | string | SIM | Ano de expiração (2 ou 4 dígitos). Ex.: "2029" ou "29" |
cvv | string | SIM | Código de segurança (3 ou 4 dígitos) |
saveCard | boolean | não | true para tokenizar o cartão |
token | string | não | Token de cobrança recorrente (substitui number/cvv) |
Objeto customer
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | SIM | Nome completo do comprador |
email | string | SIM | Email do comprador |
phone | string | SIM | Telefone com DDD, somente dígitos. Ex.: "11999999999" |
docType | string | SIM | "cpf" ou "cnpj" (minúsculas) |
docNumber | string | SIM | CPF ou CNPJ, somente dígitos. Ex.: "12345678900" |
birthDate | string | não | Data de nascimento. Formato: "YYYY-MM-DD" |
ip | string | não | IPv4 ou IPv6 do comprador. Melhora análise de fraude |
docType deve ser "cpf" ou "cnpj" em minúsculas. Valores como "CPF" ou "CNPJ" causam erro de validação.
Objeto address
Opcional para produtos digitais (tangible: false). Se enviado, os campos abaixo se aplicam.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
street | string | não | Nome da rua/avenida |
number | string | não | Número. Ex.: "123" |
complement | string | não | Complemento. Ex.: "Apto 4B" |
neighborhood | string | não | Bairro. Ex.: "Centro" |
city | string | não | Cidade. Ex.: "São Paulo" |
state | string | não | UF, 2 letras maiúsculas. Ex.: "SP", "RJ", "MG" |
zipcode | string | não | CEP, somente dígitos, 8 caracteres. Ex.: "01310100" |
country | string | não | Código ISO 3166-1 Alpha-2. Padrão: "BR" |
Array items — mínimo 1 elemento
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
title | string | SIM | Nome do produto/serviço. Máx. 255 chars |
unitPrice | string | SIM | Preço unitário em reais. Ex.: "149.90" |
quantity | integer | não | Quantidade. Padrão: 1 |
tangible | boolean | não | true para produto físico. Padrão: false |
externalRef | string | não | SKU ou ID externo do produto |
exId | string | não | Seu ID interno do item |