Pular para o conteúdo

↑↓ navegar ↵ abrir Ctrl↵ nova aba esc fechar

Cria uma única transação de venda. Para criar várias transações de uma vez, consulte a página Envio em lote.

POST https://api.rapidchargeback.com/api/v1/transactions
Authorization: Basic base64(client_id:client_secret)
Content-Type: application/json

CampoTipoDescrição
merchant_id ou merchant_refstringInforme exatamente um: merchant_id (UUID do merchant na Rapid, deve pertencer à sua empresa) ou merchant_ref (ID do vendedor no seu sistema, até 100 caracteres, para canais/plataformas com vários vendedores). Se merchant_ref for desconhecido, o merchant é criado automaticamente com merchant_name (opcional, até 255 caracteres; ignorado quando o merchant já existe). Enviar os dois → 422 VALIDATION_ERROR. Os seus merchants e os merchant_id estão em Listar merchants.
external_idstringID da transação no sistema de origem
amountnumberValor da transação (deve ser positivo)
currencystringCódigo ISO 4217 com 3 letras maiúsculas (ex: USD, BRL)
transaction_datestringData da transação em formato ISO 8601 (ex: 2026-04-01T15:30:00Z)
card_last4stringÚltimos 4 dígitos do cartão (exatamente 4 dígitos numéricos)
itemsarrayAo menos 1 item (veja campos do item abaixo)
CampoTipoDescrição
product_descriptionstringDescrição do produto (até 1000 caracteres; acima disso a requisição falha)
unit_pricenumberPreço unitário
CampoTipoDescrição
product_namestringNome do produto
quantitynumberQuantidade
unit_of_measurestringUnidade de medida
categorystringCategoria do produto

CampoTipoDescrição
external_sourcestringSistema de origem (default: custom)
order_numberstringNúmero do pedido
transaction_idstringID da transação no gateway de pagamento. Ver a nota abaixo
arnstringAcquirer Reference Number
banknet_refstringReferência Banknet (Mastercard)
auth_codestringCódigo de autorização
networkstringBandeira: visa, mastercard, amex, discover, other
card_binstringBIN do cartão (6 a 8 dígitos numéricos)
ip_addressstringEndereço IP do comprador
clearing_datetimestringData de compensação (ISO 8601)
mccstringMerchant Category Code
ecistringElectronic Commerce Indicator
pos_entry_modestringModo de entrada POS
descriptorstringDescritor de cobrança
correlation_idstringID de correlação
device_idstringID do dispositivo (mín. 15 caracteres)
device_fingerprintstringFingerprint do dispositivo (mín. 20 caracteres)
customerobjectDados do comprador (veja abaixo)
addressesarrayEndereços de entrega e/ou cobrança (veja abaixo)
paymentsarrayDados de pagamento (veja abaixo)
refundsarrayDados de reembolso (veja abaixo)

Todo campo de texto tem teto. Acima dele a resposta é 422 VALIDATION_ERROR apontando o campo, nunca um erro de servidor.

LimiteCampos
1000product_description
255descriptor, merchant_name, product_name, device_fingerprint, street, reason (refund)
200billing_name
100external_id, order_number, transaction_id, arn, banknet_ref, correlation_id, merchant_ref, device_id, first_name, last_name, city, state, category
64method_masked, reference_number
45ip_address (cabe IPv6)
50external_source, auth_code, account_id
32unit_of_measure
30phone, postal_code, wallet_indicator
20number (endereço)
16payment_type
10mcc, pos_entry_mode
7card_expiry
5eci
2cvv2_presence_indicator, avs_result

email segue o limite de 255 e precisa ter formato válido. currency, card_bin, card_last4, country e network têm formato fixo, descrito na tabela de campos.

É opcional, mas preencha sempre que a cobrança passou por um gateway de pagamento: é por esse campo que a Rapid liga um chargeback futuro à transação. Mande o identificador da cobrança no gateway, não o seu número de pedido (esse é o order_number).

Se você usa um gateway cujas disputas chegam à Rapid e o campo vem vazio, o chargeback ainda é recebido, mas sem transação associada: sem histórico, sem evidência anexada e sem os dados de autenticação, que é justamente o material da defesa. Alternativa equivalente: enviar external_source com o nome do gateway e external_id com o id da cobrança.


CampoTipoDescrição
first_namestringPrimeiro nome
last_namestringSobrenome
emailstringE-mail (formato válido)
billing_namestringNome no cartão
account_idstringID da conta do comprador no seu sistema
phonestringTelefone
CampoTipoObrigatórioDescrição
typestringSimshipping ou billing
streetstringNãoRua
numberstringNãoNúmero
citystringNãoCidade
statestringNãoEstado/Região
postal_codestringNãoCEP
countrystringNãoCódigo do país ISO 3166-1, 2 ou 3 letras maiúsculas (BR/BRA, US/USA). Recomendado alpha-3.

Campos de autenticação do pagamento (raiz, todos opcionais)

Seção intitulada “Campos de autenticação do pagamento (raiz, todos opcionais)”

Insumos da proteção contra fraude e de 3-DS. Quanto mais preencher, mais forte a deflexão e a defesa.

CampoTipoDescrição
cvv2_presence_indicatorstringIndicador de presença do CVV2 na autorização
cvv2_resultstringResultado da verificação do CVV2: M, N, P, S, U ou Y, como veio na resposta da autorização
avs_resultstringResultado do AVS (verificação de endereço)
cardholder_verification_approvedboolean3-DS/verificação do portador aprovada
authentication_response_typestringTipo de resposta da autenticação 3-DS: attempt (tentativa) ou confirm (autenticação confirmada)
wallet_indicatorstringCarteira digital usada (ex.: Apple Pay, Google Pay)

Conta do comprador (dentro de customer, todos opcionais)

Seção intitulada “Conta do comprador (dentro de customer, todos opcionais)”

Dizem se a compra foi feita por uma conta conhecida, e desde quando ela existe. São o material mais forte da defesa em disputa de fraude: comprador com conta antiga e logado é difícil de contestar como “não reconheço”.

CampoTipoDescrição
registered_atstring (ISO 8601)Quando a conta do comprador foi criada no seu sistema
registered_at_sourcestringDe onde vem registered_at: merchant_api (registro da conta no seu sistema) ou client_declared (declaração sua, sem esse registro)
account_authenticatedbooleanO comprador estava logado na conta ao comprar
account_authenticated_sourcestringComo você sabe disso: per_account (verificado nesta compra) ou onboarding_flag (regra da sua loja, por exemplo, toda compra exige login)
account_authenticated_atstring (ISO 8601)Quando foi o login
auth_methodstringComo o comprador entrou: password, otp, 2fa, biometric, oauth ou other
account_source_methodstringDe onde vêm os dados de conta: merchant_api ou client_declared
checkout_typestringComo a compra foi feita: guest (sem conta), authenticated (conta existente, logado) ou registered_at_checkout (conta criada durante a compra)

Valor fora das listas responde 422 VALIDATION_ERROR.

CampoTipoDescrição
payment_typestringTipo de pagamento (credit, debit, pix, etc.)
method_maskedstringNúmero mascarado
matched_paymentbooleanSe este pagamento foi o utilizado (default: true)
card_binstringBIN (6-8 dígitos)
card_last4stringÚltimos 4 dígitos (4 dígitos numéricos)
installmentsintegerNúmero de parcelas
card_expirystringValidade (MM/YYYY)
CampoTipoObrigatórioDescrição
amountnumberSimValor do reembolso (positivo)
currencystringSimMoeda (3 letras maiúsculas, ISO 4217)
reference_numberstringNãoIdentificador do reembolso
reasonstringNãoMotivo do reembolso
refund_datetimestringNãoData do reembolso (ISO 8601)

  • transaction_date deve estar em ISO 8601 com timezone
  • currency deve ser um código ISO 4217 (3 letras maiúsculas)
  • amount deve ser maior que zero
  • card_last4 deve ter exatamente 4 dígitos numéricos
  • card_bin deve ter 6 a 8 dígitos numéricos
  • device_id deve ter no mínimo 15 caracteres
  • device_fingerprint deve ter no mínimo 20 caracteres
  • A combinação external_source + external_id não pode duplicar transação existente da sua empresa

A API retorna avisos (sem bloquear a criação) quando campos opcionais importantes estão ausentes:

QuandoAviso
Sem card_bincard_bin missing: reduces match accuracy
Sem order_numberorder_number missing: recommended to identify the order in dispute responses
Sem ip_address, device_id e device_fingerprintip_address, device_id and device_fingerprint missing: recommended, fraud protection relies on them

Basta um dos três identificadores para o último aviso sumir: o IP não é obrigatório. E não há aviso de endereço de propósito: quem vende bem digital não deve enviar endereço de entrega (ver proteção contra fraude).

A chave warnings só aparece na resposta quando há ao menos um aviso. Não conte com warnings: [].


As credenciais vêm de variáveis de ambiente (RAPID_CLIENT_ID e RAPID_CLIENT_SECRET), nunca escritas no código.

Terminal window
curl -X POST https://api.rapidchargeback.com/api/v1/transactions \
-H "Authorization: Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=" \
-H "Content-Type: application/json" \
-d '{
"merchant_id": "00000000-0000-0000-0000-000000000001",
"external_source": "shopify",
"external_id": "TXN-2026-001",
"transaction_date": "2026-04-01T15:30:00Z",
"amount": 150.00,
"currency": "USD",
"card_last4": "4242",
"card_bin": "424242",
"order_number": "ORD-001",
"auth_code": "AUTH999",
"network": "visa",
"descriptor": "LOJA EXEMPLO",
"ip_address": "203.0.113.10",
"items": [
{
"product_description": "Assinatura Premium - Mensal",
"product_name": "Plano Premium",
"quantity": 1,
"unit_price": 150.00
}
],
"customer": {
"first_name": "João",
"last_name": "Silva",
"email": "joao@exemplo.com"
},
"addresses": [
{
"type": "shipping",
"street": "Rua das Flores",
"number": "123",
"city": "São Paulo",
"state": "SP",
"postal_code": "01001000",
"country": "BRA"
}
]
}'

{
"data": {
"id": "00000000-0000-0000-0000-000000000042",
"company_id": "...",
"merchant_id": "00000000-0000-0000-0000-000000000001",
"external_id": "TXN-2026-001",
"amount": 150.00,
"currency": "USD",
"transaction_date": "2026-04-01T15:30:00.000Z",
"card_last4": "4242",
"created_at": "2026-04-01T15:31:00.000Z",
"transaction_items": [...],
"transaction_customers": [...],
"transaction_addresses": [...]
}
}
{
"error": {
"code": "TRANSACTION_DUPLICATE",
"message": "Transaction already exists"
}
}
{
"error": {
"code": "VALIDATION_ERROR",
"message": "card_last4 must be exactly 4 digits"
}
}