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
Na Colômbia (PSE) o corpo leva o banco e o contato do pagador:
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_idemetadata(sempre{}na 1.0).
O charge por método
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.paiddiz que o dinheiro entrou.
Depósito em cripto (USDT)
O USDT não passa porPOST /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
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.