Pular para o conteúdo

API Cripto

Seu cliente paga um Pix, o valor vira USDC (dólar digital) e entra no saldo da sua loja. Quando você quiser pagar o cliente, o USDC sai do seu saldo e chega na conta dele como Pix. O saldo da loja também pode ser sacado por Pix para a conta da própria empresa.

Base URLhttps://api.gestaotechnology.com/api
AutenticaçãoX-Api-Key: <SECRET_KEY> com scopes CRYPTO_READ e CRYPTO_WRITE
Moeda do saldoUSDC
O quêRotaQuando
Cadastrar clientePOST /crypto/customersUma vez por cliente. Ele faz o KYC e ganha um Pix fixo na sua loja.
Receber depósitoPOST /crypto/deposits (opcional)O cliente paga o Pix fixo; o valor entra no saldo da loja.
Pagar o clientePOST /crypto/payoutsPix para a chave do cliente, com a taxa descontada do valor.
Sacar o saldo da lojaGET /crypto/withdrawals/quote → POST /crypto/withdrawalsPix para a chave da própria empresa. Exige o cadastro cripto da loja.
SaldoGET /crypto/balanceA qualquer momento.
TermoO que é
LojaA sua empresa na Gestão Intermediações. Dona do saldo USDC.
Cliente (pagador)Pessoa física que deposita e recebe pagamentos. Identificada pelo CPF.
USDCMoeda digital lastreada 1:1 em dólar. Valores com até 6 casas decimais, enviados como texto ("7.820000").
Pix fixo (brCode)Código Pix copia e cola do cliente na sua loja. Não muda e não traz valor embutido: o cliente digita o valor.
customerIdId do cliente na plataforma. Onde a API pede o cliente, você também pode mandar a sua referência (externalRef).
  1. Empresa ativa na Gestão Intermediações. Empresa suspensa, bloqueada ou pendente recebe 409 merchant_not_ready.
  2. Cripto liberado para a sua empresa. Quem libera é o administrador da plataforma. Sem isso, toda chamada responde 403 crypto_disabled.
  3. Chave de API secreta criada no painel, em Credenciais de API, com os scopes CRYPTO_READ e CRYPTO_WRITE (ver Chaves e scopes). Guarde a chave no servidor; ela nunca vai para o navegador ou o app do cliente.
  4. Webhook cadastrado no painel, em Webhooks, com os eventos da categoria Cripto (ver Registro e Eventos).

Cadastrar clientes, receber depósitos e pagar clientes não exigem cadastro da loja no provedor cripto. Só o saque do saldo da loja exige: ver Cadastro cripto da loja.

AssuntoRegra
AutenticaçãoHeader X-Api-Key com a chave secreta em todas as chamadas. Ver Autenticação.
FormatoJSON. Envie Content-Type: application/json.
ReaisSempre em centavos, como inteiro: R$ 10,00 = 1000.
USDCTexto com 6 casas: "2.010000". Não converta para ponto flutuante.
DatasISO 8601 em UTC: 2026-10-10T17:22:51.352Z.
IdempotênciaOs saques (/crypto/payouts e /crypto/withdrawals) exigem o header Idempotency-Key (8 a 160 caracteres A-Z a-z 0-9 _ -). Mesma chave com o mesmo corpo devolve o mesmo saque; com corpo diferente, 409. Ver Idempotência.
ErrosSempre com error (código estável, use no seu código) e message (texto para pessoas). Ver Erros.

Em verde, o que a sua aplicação chama; o resto acontece sozinho e chega para você por webhook.

flowchart TD
  B["Cadastrar cliente<br/>POST /crypto/customers"]:::you --> C{"Cliente já aprovado<br/>em outra loja?"}
  C -- sim --> E["Cliente ACTIVE<br/>com brCode"]
  C -- não --> D["Cliente abre tosLink e kycLink<br/>e faz o KYC"]
  D --> W1(["webhook crypto.customer.updated"])
  W1 --> E
  E --> F["Pedir depósito (opcional)<br/>POST /crypto/deposits"]:::you
  F --> G["Cliente paga o Pix fixo"]
  G --> H["Pix vira USDC e entra<br/>no saldo da loja"]
  H --> W2(["webhook crypto.deposit.paid"])
  W2 --> I["Pagar o cliente<br/>POST /crypto/payouts"]:::you
  I --> W3(["webhook crypto.payout.paid"])
  W2 --> J["Sacar o saldo da loja<br/>POST /crypto/withdrawals"]:::you
  J --> W4(["webhook crypto.withdrawal.paid"])
  classDef you fill:#0b6e66,stroke:#0b6e66,color:#ffffff

O depósito e os saques são independentes: um saque pode usar saldo de qualquer depósito anterior.

ItemValor
Depósito: Pix até o webhookcerca de 2 minutos
Saque: pedido até o Pixde 2 a 10 minutos
Validade do pedido de depósito24 horas
Valor mínimo de saqueO valor que chega no Pix (valor pedido menos a taxa) precisa ser de pelo menos R$ 10,00. Na prática, o mínimo é R$ 10,00 + a taxa.
Limite por saque e diárioDefinidos por loja pela Gestão Intermediações
  • Use o webhook como fonte da verdade e a consulta (GET) como reserva, por exemplo a cada minuto enquanto o saque estiver PROCESSING.
  • Guarde o customerId ou use a sua externalRef; ela vale em todas as chamadas.
  • Mostre ao cliente que o valor recebido é aproximado até o pagamento: a conversão final é feita no momento do Pix.
  • Gere a Idempotency-Key a partir do id do saque no seu sistema, para que um reenvio nunca crie um pagamento novo.
  • Empresa ativa e cripto liberado.
  • Chave secreta com CRYPTO_READ e CRYPTO_WRITE guardada só no servidor.
  • Webhook cadastrado com os eventos cripto e assinatura validada.
  • Cliente de teste cadastrado e aprovado.
  • Depósito de teste: Pix pago, crypto.deposit.paid recebido.
  • Pagamento de teste ao cliente (R$ 10,00 + taxa): crypto.payout.paid recebido e Pix conferido no extrato.
  • Se for sacar o saldo da loja: cadastro cripto da loja aprovado e saque de teste com crypto.withdrawal.paid.
  • Tratamento de FAILED, kyc_required, insufficient_balance, limit_exceeded, amount_below_minimum, provider_cost_exceeds_fee e 503. Ver o checklist de go-live.