Enviar TEV
POST /v1/tev — transferência interna entre contas da plataforma, liquidação síncrona.
Envia TEV
Transferência interna (TEV) entre contas da plataforma, identificada por agência + número da conta de destino. A liquidação é síncrona: o response já traz o desfecho — kind done (liquidada), rejected (recusada, valor devolvido ao saldo) ou submitted_unknown (indeterminado; a plataforma resolve sozinha).
TEV liquida na hora — diferente do Pix, não há estado PROCESSING quando o response é done. Em rejected (HTTP 422) o valor e a tarifa já voltaram ao saldo; leia reason para o motivo. Em submitted_unknown (HTTP 502) o desfecho é indeterminado no momento — NÃO reenvie com outra Idempotency-Key (risco de duplicar): a plataforma resolve sozinha em minutos; acompanhe via GET /v1/tev/:id ou pelos webhooks tev.out.succeeded / tev.out.failed. Destino inexistente retorna 400; conflito de Idempotency-Key ou externalRef retorna 409. Tarifas: a conta de origem paga a tarifa de envio (tevOut*) e a de destino paga a de recebimento (tevIn*) — veja GET /v1/pix-accounts/:accountId/fees.
Headers
- AuthorizationObrigatóriostringBearer SUA_API_KEY
- Idempotency-KeyObrigatóriostringUUID para retry seguro — obrigatório. Reenviar com a mesma chave devolve o resultado original, sem transferir duas vezes.
- Content-TypeObrigatóriostringapplication/json
Body
- destinationBranchObrigatóriostringAgência da conta de destino (com ou sem zeros à esquerda).
- destinationAccountObrigatóriostringNúmero da conta de destino (com ou sem zeros à esquerda).
- amountCentsObrigatóriostring | numberValor a transferir em centavos.
- descriptionstring (≤ 140)Descrição livre. Vai para o extrato bancário das duas contas; imutável após o envio.
- externalRefstring (≤ 128)Referência externa do seu sistema (ex.: ID do pedido). Única por conta de origem.
Exemplo de requisição
curl -X POST https://api.staterpay.io/v1/tev \ -H "Authorization: Bearer SUA_API_KEY" \ -H "Idempotency-Key: 6f3f0c6e-9a1d-4a86-b7a3-0c2f4d6b8e10" \ -H "Content-Type: application/json" \ -d '{ "destinationBranch": "0001", "destinationAccount": "598375", "amountCents": "1500", "description": "Repasse interno pedido #123", "externalRef": "pedido-2026-0001" }'Resposta
- kind"done" | "rejected" | "submitted_unknown"Desfecho da transferência. done → HTTP 200; rejected → HTTP 422; submitted_unknown → HTTP 502.
- tevIdstringIdentificador da transferência (cuid). Use em GET /v1/tev/:id.
- status"DONE" | "FAILED" | "SUBMITTED_UNKNOWN"Estado correspondente ao kind.
- amountCentsstringValor transferido em centavos (presente quando done).
- feeCentsstringTarifa de envio debitada da conta de origem (presente quando done).
- reasonstringMotivo da recusa ou da indeterminação (presente quando rejected ou submitted_unknown).
- providerStatusCodenumberStatus HTTP retornado pelo provedor (presente quando rejected).
{ "kind": "done", "tevId": "cmoxample0001qkxyztev000", "status": "DONE", "amountCents": "1500", "feeCents": "0"}https://api.staterpay.io