Pré-captura com cartão de crédito
Inicia uma transação de cartão. O valor é autorizado, mas não capturado até a confirmação.
POST
/api/v1/online/sales/pre-capture/{
"payment_type": "CREDIT_CARD",
"value": 1500,
"card_number": "4111111111111111",
"cvv": "123",
"exp_month": "12",
"exp_year": "2028",
"card_holder": "JOAO DA SILVA",
"document": "52998224725",
"mobile": "11999999999"
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
payment_type | string | Não | "CREDIT_CARD" (padrão) ou "PIX" |
value | integer | Sim | Valor em centavos, inteiro de 1 a 2147483647. Ex.: 1500 = R$ 15,00 |
card_number | string | Sim | Número completo do cartão. Precisa ter dígito verificador válido |
cvv | string | Sim | Código de segurança |
exp_month | string | Sim | Mês de validade. Ex.: "12" |
exp_year | string | Sim | Ano de validade. Ex.: "2028" |
card_holder | string | Sim | Nome do titular como impresso no cartão |
document | string | Não | CPF ou CNPJ, somente dígitos |
email | string | Não | E-mail do pagador |
mobile | string | Não | Telefone do pagador |
brand | string | Não | Bandeira. Detectada pelo número quando omitida |
value é sempre em centavosR$ 19,90 é 1990. Um número com fração, como 19.90, devolve 400 Invalid value (expected positive integer cents, max 2147483647) — nunca é arredondado nem truncado. Se você recebeu esse erro, provavelmente enviou reais no lugar de centavos.
Recusa chega com HTTP 200 e
"status": "success"O 200 diz que a chamada foi processada; o resultado do pagamento está em data.approved. Nunca libere um pedido olhando só o código HTTP.
{
"status": "success",
"data": { "online_sale_id": 61, "sale_status": "PRE_CAPTURED", "approved": true }
}
{
"status": "success",
"data": {
"online_sale_id": 94,
"sale_status": "DENIED",
"approved": false,
"denial": { "code": "05", "message": "Not Authorized" }
}
}
| Campo | Descrição |
|---|---|
approved | true quando a venda foi autorizada (PRE_CAPTURED ou CONFIRMED). false em qualquer outro caso. É o campo para decidir |
sale_status | Estado da venda — ver Referência de status |
denial.code | Código de retorno do adquirente. Presente só na recusa |
denial.message | Mensagem do adquirente, repassada sem tradução. Presente só na recusa |
O denial pode não vir em recusas sem código do adquirente; approved: false vale sempre. Uma venda DENIED não pode ser capturada: a captura devolve 409.
Erros específicos
| HTTP | Quando |
|---|---|
400 Campos obrigatórios ausentes | Falta algum campo obrigatório. Lista em missing |
400 Invalid value (expected positive integer cents, max 2147483647) | value com fração, zero, negativo ou acima do limite |
400 Bandeira do cartão não reconhecida | O número não corresponde a nenhuma bandeira aceita e brand não foi enviado. O adquirente não é chamado |
400 Número do cartão inválido | O número falha no dígito verificador. O adquirente não é chamado |
400 Data de validade inválida (use exp_month de 01 a 12 e exp_year AAAA) | exp_month fora de 01–12, ou exp_year que não tem 2 nem 4 dígitos. O adquirente não é chamado |
400 Cartão vencido | O mês de validade já terminou. O adquirente não é chamado |
502 | Falha de comunicação com o adquirente — não há resultado de pagamento. Ver Respostas de erro |