Pagar
PIX, TED, boleto e transferência interna saem da sua conta. O corpo é o mesmo do contrato público; o que muda é o host e a assinatura.
Host: https://client.api.corpx.com. Toda escrita leva Idempotency-Key
(entra na string canônica). Valores em BRL, no máximo 2 casas decimais.
Não envie X-Transaction-Pin nem X-Acting-Document. A credencial prova
posse com chave privada e IP. PIN e travas de horário são da tela do
titular — veja Travas.
PIX por chave
Antes, se quiser mostrar o nome: GET /v1/accounts/{accountId}/pix/key/{pixKey}.
A transferência consulta o DICT de qualquer forma.
A conta de origem é o {accountId} do path. A API confere saldo
disponível antes de enviar.
PENDING_APPROVAL nas consultas significa que o liquidante reteve a
ordem (antifraude), não que falte uma aprovação sua. TIMEOUT não é
final: a API continua consultando por até 7 dias e, se liquidar ou
recusar, você recebe pix.out.completed / pix.out.failed com
late: true e o mesmo paymentId.
Para volume, prefira POST .../pix/out/async (202 na hora). Síncrono
tem limite por conta (hoje 100 req/min; a tendência é 10).
Há também PIX por dados bancários (.../pix/out/bank-account e
.../async) e pagamento de QR (.../pix/out/qr-code/async — o síncrono
está deprecado). O path legado POST /v1/pix-out (accountId no corpo)
não faz parte desta credencial: use sempre
POST /v1/accounts/{accountId}/pix/out.
Consultar um PIX enviado
GET /v1/accounts/{accountId}/pix/transactions?endToEndId=(ouidentifier)GET /v1/accounts/{accountId}/pix/paymentse.../pix/payments/lookup
Webhooks: pix.out.completed, pix.out.failed, pix.out.timeout.
Devolver um PIX recebido
POST /v1/accounts/{accountId}/pix/out/refund com o E2E original. Dá
para devolver em partes, cada uma com Idempotency-Key e identifier
próprios. Prazo BACEN: 90 dias. Sem o E2E, pegue-o no extrato, no
webhook pix.in.completed ou no lookup do QR.
TED
POST /v1/accounts/{accountId}/ted/out — assíncrono (202,
status: PROCESSING). Janela BACEN: dias úteis 06:30–17:00. Fora dela,
agenda para o próximo dia útil.
bankCode é Compe de 3 dígitos. ISPB de 8 dígitos é recusado
(400 invalid_bank_code). Consulte
GET /v1/accounts/{accountId}/ted/{tedId}. Webhooks: ted.out.requested,
ted.out.confirmed, ted.out.failed.
No dia a dia, PIX costuma ser a melhor escolha (24/7, instantâneo). TED cabe quando a contraparte só aceita TED ou o valor passa do teto PIX da conta.
Boleto
POST /v1/accounts/{accountId}/boleto/previewcom a linha digitável.- Pague o
totalUpdateddo preview — não o valor de face. Em título vencido os dois diferem; o liquidante recusa qualquer outro valor (422 boleto_amount_mismatch). POST /v1/accounts/{accountId}/boleto/pay→ sempre202,paymentIdno formatobol_{uuid}.GET /v1/accounts/{accountId}/boleto/payments/{paymentId}.
Refaça o preview no dia do pagamento: juros e multa mudam.
Transferência interna
Entre contas do mesmo banco, sem PIX. Instantânea.
Há um preview de nome em
GET .../transfers/internal/lookup/{document} (primeiro nome por
extenso; demais sobrenomes viram inicial + ***).
Idempotência
A Idempotency-Key é a identidade da tentativa HTTP. Repetir a mesma
chave, o mesmo path e o mesmo corpo devolve o resultado original — não um
segundo débito. Trocar o corpo com a mesma chave é conflito. Detalhe:
Idempotência.
O identifier no corpo é a sua chave de conciliação. Os dois convivem.
Travas do titular
Se o pagamento voltar 423 cashout_locked, 403 cashout_outside_hours
ou 403 cashout_source_ip_not_allowed, o titular configurou bloqueio,
janela ou lista de IPs no internet banking. Leia o que está em vigor em
Travas. Você não altera essas travas pela API.