Skip to main content
O SDK é um cliente fino sobre uma API REST. Se você não está em Node — ou está depurando com 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

Só 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:
Sem ele: 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:
Listagens vêm sob a chave do plural ({"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.