curl — é isto que você precisa.
Base
O prefixo da chave decide o ambiente. Uma
sk_test_ enviada pra produção não
falha com “chave errada” — o recurso simplesmente não existe lá (404).
Autenticação
Authorization: Bearer. Não existe X-Api-Key.
As rotas públicas de checkout (/public/v1/* e /pay/{slug}/*) não levam
chave: são abertas por definição, porque rodam no navegador do pagador.
Provisionamento pelo agente
POST /public/v1/claimables é público. Aceita ref, accountName e email
opcionais. Retorna apiKeySecret, publishableKey, tenantSlug, productId,
claimUrl e expiresAt. O nome prepara a conta; o email é contato não verificado.
Com a atualização de email de claim, o endereço recebe um aviso assíncrono com
link e prazo, limitado a um enfileiramento por endereço a cada 24 horas.
Um 201 confirma a criação, não a entrega. Sempre guarde a claimUrl.
Veja cadastro pelo agente para perguntas, chaves e
finalização. Se a resposta desse POST se perder, não repita automaticamente:
ele pode já ter criado a conta.
Idempotency-Key
Mutações autenticadas exigem o header. O provisionamento público de claim acima é uma exceção:400 idempotency_key_required. Reusar a mesma chave com corpo diferente:
409 idempotency_key_reused.
Envelopes de resposta
Algumas rotas devolvem o recurso embrulhado. Criar produto devolve dois:{"products":[…]}, {"links":[…]}).
Confira o corpo antes de assumir que o objeto está na raiz — é o erro mais comum
de quem sai do SDK.
Envelopes de erro
São dois, e a diferença importa se você faz parsing:errors[] é onde mora o motivo de um 422 — é o campo que diz o que corrigir.
Guarde o tracer_id/request_id: é o que o suporte procura.
Rotas
{id} são UUIDs, exceto onde indicado. Esta seção é gerada do contrato OpenAPI,
então acompanha a API.
Catálogo e clientes
Cobrança
Conta
Público — sem chave
Operação — sessão e webhooks de entrada
Uma venda inteira, só com curl
O
slug vem do provisionamento. tenantSlug, no mesmo JSON que devolveu a chave.