Skip to main content
Beta — o contrato da 1.0 está em evolução. Esta página descreve o que a API aceita e devolve hoje.

Criar depósito

POST https://api.go.swytchpay.app/v1/deposits
O valor é amount_cents (ou amount_minor) e o método é method. Um corpo com amount recebe 400, e um payment_method é ignorado — o depósito cai no método padrão da moeda. Campos que a API não conhece (metadata, delivery, callback_url) também são ignorados.
Na Colômbia (PSE) o corpo leva o banco e o contato do pagador:
Resposta 201 (200 quando o external_id já existia):
  • amount_cents é o valor cobrado; net_cents é o que entra no seu saldo, já sem a taxa (fee_cents).
  • As datas (created_at, expires_at, paid_at) são epoch em segundos.
  • A resposta traz também payer, customer, e2e_id e metadata (sempre {} na 1.0).

O charge por método

No PIX, o emv é o copia-e-cola e vira QR Code no seu front. No SPEI e no PSE, o charge traz a página do adquirente para onde você manda o pagador. Se a página não tiver sido gerada, o charge vem null.

Como funciona um trilho REDIRECT

  • A página é de uso único e vence em charge.expires_at. Se o pagador precisar recomeçar, crie outra cobrança.
  • O valor precisa ser exato. No SPEI o pagador digita o valor no app do banco dele.
  • Sair da página não confirma nada. Quem fechou a aba pode ter pago. Só o webhook deposit.paid diz que o dinheiro entrou.

Depósito em cripto (USDT)

O USDT não passa por POST /v1/deposits. Cada conta tem um endereço próprio na rede, que você obtém em GET /v1/crypto-addresses?network=tron — e o que entrar nele vira um depósito sozinho, com o aviso por webhook.

Consultar

Quando pago, o depósito ganha paid_at, e2e_id e payer_details (os dados bancários do pagador).

Estados

PENDING → PAID (pagamento confirmado) · PENDING → EXPIRED (venceu sem pagar). Um pagamento com atraso pode levar EXPIRED → PAID — aceitamos, pois o dinheiro entrou.
Você não precisa fazer polling: registre um webhook e reaja ao evento deposit.paid.