Pular para o conteúdo principal
Versão: 2.0.0

Referência da API

Autenticação

Token bearer no header Authorization. Chaves de teste e reais são credenciais separadas — uma chave de teste nunca pode movimentar dinheiro real, mesmo por acidente.

Criando uma charge

POST /v1/ion/charges

Requisição

{
"amount": 4200,
"currency": "usd",
"customer": "cus_h82ndk3",
"payment_method": "pm_1a2b3c",
"idempotency_key": "order_9f3e-attempt-1"
}

Resposta200 OK

{
"id": "ch_3P8kq2Aa",
"amount": 4200,
"currency": "usd",
"status": "succeeded",
"customer": "cus_h82ndk3",
"created": "2026-07-20T09:14:22Z"
}

status é succeeded, pending (alguns métodos locais liquidam de forma assíncrona) ou failed.

Criando um cliente

POST /v1/ion/customers

{ "email": "jordan@acme.com", "payment_method": "pm_1a2b3c" }

A resposta inclui o id do cliente (cus_...) para reutilizar em futuras charges e assinaturas.

Criando uma assinatura

POST /v1/ion/subscriptions

{ "customer": "cus_h82ndk3", "plan": "plan_pro_monthly", "idempotency_key": "sub_acme_pro-2026-07" }
{ "id": "sub_7k2p9x", "status": "active", "current_period_end": "2026-08-20T09:14:22Z" }

Emitindo um reembolso

POST /v1/ion/refunds

{ "charge": "ch_3P8kq2Aa", "amount": 2000 }

Omita amount para reembolso total. Reembolsos parciais podem ser emitidos várias vezes contra a mesma charge desde que a soma não exceda o valor original.

Erros

Status HTTPcodeSignificado
400invalid_currencyMoeda não suportada ou valor inválido para a subunidade da moeda
402card_declinedO método de pagamento foi recusado pelo emissor
404no_such_chargeO ID referenciado não existe
409idempotency_key_reusedMesma chave usada com um corpo de requisição diferente
429rate_limitedRespeite o header Retry-After ao tentar novamente

Respostas card_declined incluem um decline_code (insufficient_funds, expired_card, etc.) — exiba-o ao usuário final em vez de uma mensagem genérica sempre que possível.

Limites de taxa

100 requisições/segundo por chave em todos os endpoints. Criação de charges é limitada adicionalmente a 25/segundo por chave.

Suporte

Para dúvidas sobre o Ion, entre em contato com a equipe de produto ou visite o fórum da comunidade.