/connect
Cria um pagamento avulso ou uma subscription para o app que chama, no gateway que as rotas dele escolhem (com fallback automático), e devolve para onde enviar o cliente.
A configuração Cobranças do app decide o que é criado:
- um app de pagamentos cria um pagamento avulso;
- um app de subscriptions cria uma subscription, e
amount,currencyeintervalsão obrigatórios.
Duas formas de chamar:
- Do backend do produto (recomendado): JSON com
Authorization: Bearer. A resposta traz aredirect_url. - Do navegador do cliente (apps no fluxo API + signed forms): um form assinado,
application/x-www-form-urlencoded, com a public key do app, a cobrança,expiresesignature, sem header Authorization. O broker responde 303 para o checkout.
Quando recusa um signed form, o cliente vê uma página HTML com um caminho de volta:
- 400:
expiresausente ou inválido; - 403: signature ou app errado;
- 410: expirado;
- 422:
return_tonão permitido.
A signature é o HMAC-SHA256 em hex minúsculo, com a secret key do app, de todos os outros campos:
- achatados como
customer[email]; - ordenados pela key, byte a byte;
- com percent-encoding RFC 3986 (espaço como
%20); - unidos como
key=valuecom&.
Ela também é a idempotency key. Veja o guide Signed checkout forms.
Autorização
Bearer token: a key de um app, em Apps (sk_app_live_… ou sk_app_test_…), ou a tenant key, em Settings (sk_live_… ou sk_test_…). A key define o modo: uma key live só vê dados live, uma key test só dados de sandbox.
Parâmetros
Qualquer string única por operação (um id de pedido serve). A mesma key devolve o primeiro resultado em vez de criar outro.
Request body
application/json, obrigatório
Decimal com ponto.
Só para pagamentos avulsos. Sem ele, cartão, ou o método do gateway quando ele não tem cartão (PIX na AbacatePay).
Só para subscriptions (obrigatório nelas).
Só para subscriptions; aparece no checkout.
Idioma da página de pagamento e do checkout do gateway. Também aceita pt, en-US e parecidos. Sem ele, vale o Idioma do checkout do app; se não houver, o navegador do cliente.
Precisa ser um return host permitido do app (qualquer host, se a lista estiver vazia).
Só para subscriptions; a subscription em andamento do cliente a cancelar quando esta ficar ativa.
Encontrado pelo external_ref, criado quando é novo; os campos de contato são mantidos atualizados.
O id do usuário no seu sistema.
CPF, CNPJ ou tax id.
Duas letras, ex.: SP.
Duas letras, ex.: BR.
Response body
303Só signed form. Redirect para o checkout do gateway; uma recusa responde uma página HTML com um caminho de volta.
Sem body.
201Pagamento ou subscription criado.
O id da session (pagamento) ou o id da subscription.
200Mesma Idempotency-Key de uma chamada anterior; o primeiro resultado volta.
O id da session (pagamento) ou o id da subscription.
401Secret key ausente ou inválida.
O que deu errado.
403O app está pausado, o `app` pedido não existe, ou o endpoint exige a tenant key.
O que deu errado.
422Idempotency-Key ausente, nenhuma rota para o método e a moeda, amount inválido ou registro inválido.
Uma mensagem por campo (idempotency_key, gateway, amount, replaces, subscription ou record).
502O gateway recusou ou falhou a chamada.
A mensagem do gateway.
O provider que falhou.