Throne

Começar

Como testar

Testar sem ambiente de testes: valor baixo, idioma do checkout e erros provocados de propósito.

Ver em Markdown

Não existe ambiente de testes separado#

Atenção As chaves pk_test_ funcionam como as de produção. Um checkout de cartão pago cobra o cartão de verdade, um Pix pago cai na sua conta e um saque transfere dinheiro de verdade.

Criar uma cobrança ou um checkout não cobra nada. Só o pagamento cobra. Um checkout que ninguém paga vira expired em 24 horas, sem custo.

Pagar com valor baixo#

  • Pix: a partir de R$ 1,00, pago com a sua própria conta.
  • Cartão: um valor pouco acima do mínimo, com o seu próprio cartão. O mínimo varia com a moeda e com a cotação do dia; algumas adquirentes têm mínimo maior. Na dúvida, mande menos de propósito: a resposta diz o mínimo na sua moeda.
  • Estorno do teste: não é feito pela API. Fale com o suporte do Throne.

Não faça testes de recusa em série, com vários cartões inventados no mesmo checkout. Isso parece teste de cartão e pode bloquear as tentativas daquele comprador.

Ver o checkout em outro idioma#

O checkout sai no idioma do país do comprador, identificado pelo IP. Na NovaCorp, na Eminence, na Apex, na ShadowBank e na Vortex, para ver como um comprador de outro país enxerga a página, abra o checkout_url da resposta com ?nl= e o código do idioma:

Texto
<checkout_url>?nl=de

Se o endereço já tiver ?, use &nl=de. O formulário, os números e as telas de espera saem nesse idioma; a tela do próprio banco, quando ele pede verificação, segue o banco. Códigos aceitos: en, pt, es, fr, de, it, nl, pl, sv, da, no, fi, cs, sk, ro, hu, el, tr, ru, uk, bg, hr, ja, ko, zh, ar, he, th, id e vi.

Na Sterling e na Imperium o idioma segue só o IP. Para conferir, use uma conexão do país do comprador.

No Checkout Brasil, a página sai sempre em português, e o ?nl= não muda isso.

Ver o Checkout Brasil sem pagar#

Abra no navegador o checkout_url da resposta do POST /elements/checkout/br para ver a página como o comprador vê: em português, com o campo CPF e com o botão e a moldura que você pediu em appearance. Nada é cobrado enquanto ninguém clica em pagar.

Provocar erros de propósito#

Todos os casos abaixo voltam sem criar nada e sem cobrar. Use para conferir se a sua integração mostra a mensagem certa e não fica repetindo a chamada.

Para ver Envie em POST /elements/checkout Resposta
Valor abaixo do mínimo "amount_cents": 50, "currency": "usd" 422 invalid_amount, com o mínimo na sua moeda
Valor acima do máximo Um valor acima do max_amount_cents que GET /elements/acquirers?currency=... mostra, com o acquirer dessa adquirente 422 invalid_amount, com max_amount_cents e alternatives
Moeda fora da lista "currency": "xyz" 422 currency_not_supported
Adquirente desconhecida "acquirer": "teste" 422 invalid_acquirer
Adquirente não habilitada acquirer com uma adquirente que não aparece em GET /elements/acquirers 422 acquirer_not_enabled
Nome ou e-mail do comprador faltando (ShadowBank) "acquirer": "shadowbank" sem customer, com a ShadowBank habilitada na conta 422 customer_required_for_shadowbank
Nome ou e-mail do comprador faltando (Vortex) "acquirer": "vortex" sem customer, com a Vortex habilitada na conta 422 customer_required_for_vortex
Falta da chave de idempotência A chamada sem o header Idempotency-Key 400 idempotency_key_required
Chave de API errada Authorization: Bearer pk_x:sk_x 401 unauthorized
Corpo trocado A mesma Idempotency-Key de uma chamada anterior, com outro corpo 422 idempotency_key_mismatch

No POST /elements/checkout/br, também sem custo:

Para ver Envie Resposta
Campo que não existe no Checkout Brasil "one_click_from": "a1b2c3d4-e5f6-4789-abcd-ef0123456789" 422 field_not_supported
Aparência fora da regra "appearance": { "button": { "text": "Pague R$ 9,90" } } 422 invalid_appearance, com field

E um caso que dá certo, para ver a repetição segura: mande a mesma criação duas vezes, com a mesma Idempotency-Key e o mesmo corpo. A segunda resposta é igual à primeira e traz o header Idempotent-Replay: true. Só um checkout existe.

Exemplo do valor abaixo do mínimo:

cURL
curl -X POST https://app.thronecorporate.com/api/v1/elements/checkout \
  -H "Authorization: Bearer $THRONE_PK:$THRONE_SK" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{ "amount_cents": 50, "currency": "usd" }'
JSON
{ "error": "invalid_amount", "message": "Valor abaixo do mínimo aceito: $ 0,95." }

O valor do mínimo muda com a cotação do dia.

Testar o webhook#

  • No painel, em Webhooks, o botão de teste envia um test.ping assinado, igual aos eventos de verdade.
  • O histórico fica em Entregas de webhook, com o status que o seu servidor respondeu.
  • Para ver um transaction.paid de verdade, pague um valor baixo. Confira a assinatura como em Webhooks.

Conferir as chamadas no painel#

No painel, em Documentação da API, a lista Últimas chamadas da API mostra as criações de cobrança e de checkout que chegaram ao endpoint, com sucesso ou com falha, com o status e, no cartão, o código de erro.

Nem toda resposta entra na lista. Os erros de autenticação (401), de permissão (403 scope_required), de limite de requisições (429) e os da Idempotency-Key que o Throne confere antes do endpoint (400 idempotency_key_required, 422 idempotency_key_mismatch, 409 idempotency_key_processing e 409 idempotency_key_race) não aparecem. No Pix, os erros de validação do corpo também não. Por isso, três casos da tabela acima (sem Idempotency-Key, chave de API errada e corpo trocado) não aparecem no painel: confira esses pela resposta que o seu servidor recebeu.

Próximo passo#

Siga o Checklist de verificação antes de abrir as vendas.