Pular para o conteúdo principal

Criar cobrança

Quick Reference

WhatCriar uma cobrança para qualquer método de pagamento
WhyProcesse pagamentos em 11 métodos, 7 países e 29 adquirentes com um único endpoint
Reading Time10 min
DifficultyBeginner
PrerequisitesAuthentication → Environment
POST/api/v1/bank/wallet/charge/Bearer TokenCriar uma nova cobrança

Quando usar este endpoint​

CenárioComo criar cobrança ajuda
Aceitar um pagamento com cartão de créditoDefina type_charge: "credit_card" com os campos do cartão ou deixe o SDK/Checkout lidar com eles
Oferecer pagamento instantâneo PIXDefina type_charge: "pix" — a resposta inclui QR code e código copia e cola
Gerar um Boleto bancárioDefina type_charge: "boleto" — a resposta inclui código de barras e data de vencimento
Aceitar Apple Pay / Google PayDefina type_charge: "applepay" ou "googlepay" com dados do token
Configurar cobrança recorrenteAdicione um objeto subscription para criar cobrança + assinatura em uma única chamada
Fluxo somente autorizaçãoDefina capture: false para hotéis, locadoras de veículos, padrões de pré-autorização

Escolha seu método de pagamento​

Selecione um método abaixo. A página mostrará apenas os campos, código e resposta relevantes para esse método.


Parâmetros da requisição (todos os métodos)​

Estes campos são obrigatórios para todos os métodos de pagamento:

CampoTipoObrigatórioDescrição
wallet_uuidstring (UUID)SimCarteira que recebe os fundos
merchant_idstringSimIdentificador do merchant
payer_namestringSimNome completo do pagador
payer_emailstringSimE-mail do pagador
payer_tax_idstringSimDocumento fiscal (CPF no Brasil, RFC no México, RUT no Chile, CUIT na Argentina)
payer_document_typestringCondicionalTipo do documento para payer_tax_id. Obrigatório para PIX e Boleto em BRL quando payer_tax_id é enviado. Recomendado para QRA (ARS) e SPEI/OXXO (MXN). Valores: CPF, CNPJ, DNI, CUIT, CUIL, CURP, RFC, INE, PAS
payer_cell_phonestringSimCelular do pagador com código do país
installment_valuenumberSimValor da cobrança por parcela. Para moedas sem decimais (CLP, COP), use inteiros — veja regras de moeda abaixo
installment_countintegerSimNúmero de parcelas (use 1 para pagamento à vista)
currencystringSimCódigo de moeda ISO 4217: BRL, MXN, CLP, COP, PEN, ARS
due_datestringSimData de vencimento no formato YYYY-MM-DD
descriptionstringSimDescrição da cobrança exibida ao pagador
type_chargestringSimMétodo de pagamento — veja o seletor acima
payer_addressobjectSimEndereço de cobrança (veja abaixo)

Objeto de endereço do pagador​

CampoTipoObrigatórioDescrição
streetstringSimNome da rua
address_numberstringSimNúmero
complementstringSimApartamento, sala, andar
neighborhoodstringSimBairro
citystringSimCidade
statestringSimCódigo do estado (ex.: SP, CDMX)
postal_codestringSimCEP / Código postal
countrystringNãoISO 3166-1 alfa-2 (ex.: BR). Padrão: país da carteira

Regras de valor por moeda​

MoedaDecimaisFormatoExemploComportamento no backend
BRL2150.00"installment_value": 150.00Armazenado como Numeric(11,2)
MXN22500.00"installment_value": 2500.00Armazenado como Numeric(11,2)
USD2100.00"installment_value": 100.00Armazenado como Numeric(11,2)
PEN2350.00"installment_value": 350.00Armazenado como Numeric(11,2)
ARS285000.00"installment_value": 85000.00Armazenado como Numeric(11,2)
CLP050000"installment_value": 50000Truncado para inteiro antes de enviar ao adquirente
COP0200000"installment_value": 200000Truncado para inteiro antes de enviar ao adquirente
Moedas sem decimais

CLP (Peso Chileno) e COP (Peso Colombiano) não possuem unidades fracionárias. O backend converte valores para inteiros antes de enviar aos adquirentes. Enviar 50000.50 para CLP resulta em 50000. Sempre envie números inteiros para essas moedas.

Payment payload (resposta)​

Cobranças PIX, QRA, SPEI e OXXO retornam um objeto unificado payment_payload com campos específicos por método. Chaves legadas de resposta (pix_payload, qra_payload, etc.) não são mais retornadas.

type_chargeCampos em payment_payload
pixpayload (copia e cola EMV), qr_code (PNG Base64), expiration_date
qraqr_code (PNG Base64), expiration_date
speiclabe, bank_beneficiary_name, bank_concept, bank_reference, expiration, payment_coupon_url
oxxopayment_code, payment_barcode_url, payment_coupon_url, expiration
Validação de documento

Quando payer_tax_id é enviado, inclua payer_document_type para que a A55 valide o documento conforme o método e a moeda. Se omitido, a A55 tenta auto-detecção quando possível — tipos explícitos são recomendados para métodos LATAM.

Campos opcionais (todos os métodos)​

CampoTipoPadrãoDescrição
webhook_urlstring—Substituir a URL de webhook padrão para esta cobrança
redirect_urlstring—URL de retorno para onde o pagador é direcionado após concluir a página de checkout ou qualquer fluxo de action_url (desafio 3DS, fingerprint, autorização em e-wallet, etc.). O webhook continua sendo a fonte de verdade para o status final
reference_external_idstring—Seu ID de pedido interno para conciliação
is_asyncbooleanfalseProcessamento assíncrono quando suportado
shipping_addressobject—Endereço de entrega (mesma estrutura de payer_address)

Campos específicos de cartão​

CampoTipoObrigatórioDescrição
card_numberstringSomente H2HPAN do cartão (SDK e Checkout tratam isso)
card_namestringSomente H2HNome impresso no cartão
card_expiry_monthstringSomente H2HMês de validade MM
card_expiry_yearstringSomente H2HAno de validade YYYY
card_cvvstringSomente H2HCódigo de verificação do cartão
capturebooleanNãotrue (padrão) = captura automática; false = somente autorização
threeds_authenticationbooleanNãotrue para forçar autenticação 3DS
device_infoobject3DSFingerprint do navegador/dispositivo para 3DS (veja abaixo)
antifraud_infoobjectNãoDados comportamentais para scoring antifraude
subscriptionobjectNãoCria uma assinatura recorrente com esta cobrança
Quando os campos do cartão são obrigatórios?
  • Integração H2H: Você envia card_number, card_name, card_expiry_month, card_expiry_year, card_cvv diretamente.
  • Integração SDK: O SDK coleta os dados do cartão no navegador. Você envia apenas os campos universais.
  • Página de Checkout: A página hospedada da A55 coleta tudo. Você envia apenas campos universais + redirect_url.

Objeto de informações do dispositivo (3DS)​

Obrigatório quando threeds_authentication: true em fluxos H2H:

CampoTipoDescrição
ip_addressstringEndereço IP do pagador
user_agentstringString user-agent do navegador
device_idstringFingerprint do dispositivo gerado pelo SDK
session_idstringID de sessão DDC do emissor
http_accept_contentstringHeader Accept do navegador
http_browser_languagestringIdioma do navegador (ex.: pt-BR)
http_browser_java_enabledbooleanJava habilitado no navegador
http_browser_javascript_enabledbooleanJavaScript habilitado
http_browser_color_depthstringProfundidade de cor (ex.: 24)
http_browser_screen_heightstringAltura da tela em pixels
http_browser_screen_widthstringLargura da tela em pixels
http_browser_time_differencestringDeslocamento UTC (ex.: -3)

Objeto de informações antifraude​

Melhora o scoring de fraude e taxas de aprovação:

CampoTipoDescrição
sales_channelstringweb, app, pos, marketplace, link, subscription, api
cardholder_logged_inbooleanSe o pagador estava logado
cardholder_since_daysintegerDias desde a criação da conta
purchase_historyintegerTotal de compras anteriores
days_since_last_purchase_merchantintegerDias desde a última compra com você

Objeto de assinatura​

Cria uma assinatura recorrente vinculada a esta cobrança:

CampoTipoObrigatórioDescrição
cyclestringSimweekly, biweekly, monthly, quarterly, semiannually, yearly
end_datestringNãoData final da assinatura YYYY-MM-DD (omita para indefinido)

Exemplos de código​

Cobrança com cartão de crédito​

curl -s -X POST https://sandbox.api.a55.tech/api/v1/bank/wallet/charge/ \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"wallet_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"merchant_id": "11111111-1111-1111-1111-111111111111",
"payer_name": "Maria Silva",
"payer_email": "maria@example.com",
"payer_tax_id": "123.456.789-09",
"payer_cell_phone": "+5511999999999",
"installment_value": 150.00,
"installment_count": 3,
"currency": "BRL",
"due_date": "2026-12-31",
"description": "Order #42 — 3x installments",
"type_charge": "credit_card",
"card_number": "4024007153763191",
"card_name": "MARIA SILVA",
"card_expiry_month": "12",
"card_expiry_year": "2030",
"card_cvv": "123",
"capture": true,
"webhook_url": "https://your-app.com/webhooks/a55",
"payer_address": {
"street": "Av. Paulista",
"address_number": "1000",
"complement": "Sala 101",
"neighborhood": "Bela Vista",
"city": "São Paulo",
"state": "SP",
"postal_code": "01310-100",
"country": "BR"
}
}'

Resposta​

Ciclo de vida da cobrança​

Campos da resposta​

CampoTipoDescrição
charge_uuidstringIdentificador único da cobrança
statusstringissued, pending, confirmed, paid, error, canceled, refunded
local_currencynumberValor na moeda de liquidação da carteira
currencystringCódigo de moeda ISO 4217
usd_currencynumberValor equivalente em USD
eur_currencynumberValor equivalente em EUR
typestringMétodo de pagamento utilizado
datestringData de criação da cobrança
descriptionstringDescrição da cobrança
due_datestringData de vencimento do pagamento
installment_countintegerNúmero de parcelas
installmentsarrayDetalhamento por parcela
charge_payment_urlstringURL de pagamento Checkout/SDK (quando aplicável)
action_urlstring/nullURL de redirecionamento para ação do pagador (desafio 3DS ou fingerprint). Quando presente, status é pending — redirecione o pagador para concluir o fluxo. Após conclusão, o pagador retorna para redirect_url e um webhook é enviado para webhook_url

| reference_external_id | string | ID de referência externa fornecido pelo merchant | | is_async | boolean | Se a cobrança foi processada de forma assíncrona | | message | array/null | Detalhes do erro quando status: "error" | | subscription | object | Detalhes da assinatura (quando subscription foi incluído) |

Exemplo de resposta de cartão​

{
"charge_uuid": "51dcca6e-7310-4b73-a94c-90835408f2ff",
"local_currency": 150.00,
"currency": "BRL",
"usd_currency": 26.90,
"eur_currency": 23.58,
"type": "credit_card",
"date": "2026-03-20",
"description": "Order #42 — 3x installments",
"due_date": "2026-12-31",
"status": "confirmed",
"message": null,
"installment_count": 3,
"installments": [
{
"local_currency": 50.00,
"currency": "BRL",
"usd_currency": 8.97,
"eur_currency": 7.86,
"due_date": "2026-12-31",
"status": "confirmed",
"installment_number": 1
},
{
"local_currency": 50.00,
"currency": "BRL",
"usd_currency": 8.97,
"eur_currency": 7.86,
"due_date": "2027-01-31",
"status": "confirmed",
"installment_number": 2
},
{
"local_currency": 50.00,
"currency": "BRL",
"usd_currency": 8.97,
"eur_currency": 7.86,
"due_date": "2027-02-28",
"status": "confirmed",
"installment_number": 3
}
]
}

Exemplo de resposta pendente (action_url)​

Quando a cobrança requer um desafio 3DS ou coleta de fingerprint, a resposta inclui action_url com status: "pending". Redirecione o pagador para action_url para concluir o fluxo.

{
"charge_uuid": "fe5e2c1e-b3fb-4cc4-bb28-004da37d5804",
"local_currency": 159.8,
"currency": "EUR",
"usd_currency": 185.52,
"type": "credit_card",
"date": "2026-04-01",
"description": "#18770 Payments Cabo HDMI 2.1 Ultra 8K",
"due_date": "2025-10-11",
"status": "pending",
"message": null,
"installment_count": 1,
"installments": [],
"charge_payment_url": null,
"action_url": "https://acquirer.example/payment/69cd4a32e367...",
"reference_external_id": "e4e3ec12-b51a-4ea2-aceb-2b41602a5a84",
"is_async": false
}

Resposta de erro​

{
"charge_uuid": "51dcca6e-7310-4b73-a94c-90835408f2ff",
"status": "error",
"message": [
{
"code": "error_threeds_authentication",
"source": "authentication",
"description": "Issuing bank declined the authentication"
}
]
}

Códigos de erro​

CódigoSignificadoO que fazer
INVALID_TYPE_CHARGEValor de type_charge não suportadoVerifique os valores permitidos no seletor acima
errors.wallet.not_foundUUID da carteira não existeVerifique o wallet_uuid
errors.unexpectedErro interno do servidorTente novamente com backoff exponencial; entre em contato com o suporte se persistir
error_threeds_authenticationAutenticação 3DS falhouPeça ao pagador para tentar novamente ou usar outro cartão
Sempre use webhooks

Nunca dependa apenas da resposta síncrona para o status final do pagamento. A cobrança pode passar por vários estados assincronamente. Defina webhook_url e trate o webhook como a fonte da verdade.