Entrar

Autenticacao

Chave de API do merchant

gethttps://api.eyt.com.br/v1/pix/balance

Use Authorization: Bearer pix_SUA_CHAVE_MERCHANT nos endpoints do merchant. Tokens de login e Client ID/Secret do painel pertencem ao fluxo separado de gestão da conta.

CampoDescrição
Productionhttps://api.eyt.com.br
Sandboxhttps://sandbox.eyt.com.br
AuthorizationBearer pix_...
Content-Typeapplication/json
Idempotency-KeyObrigatório ao criar cobrança/payout. Reutilize a mesma chave e o mesmo corpo ao repetir uma requisição de resultado incerto.

Produção exige o certificado cliente mTLS emitido e a chave privada correspondente. Mantenha credenciais separadas por ambiente. Os exemplos são ilustrativos e esta página nunca envia requisições reais.

Resposta ilustrativa

200
{
  "balanceMinor": 10000,
  "currency": "BRL"
}

Atualizado hoje

Essa pagina ajudou?

Pix - Entrada

Criar cobrança Pix

posthttps://api.eyt.com.br/v1/pix/charges
CampoDescrição
amountMinorInteiro em centavos de BRL, mínimo 1000 (R$ 10,00). Limites do canal também se aplicam.
expiresInSeconds60–86400
descriptionOpcional, até 140 caracteres.
payerObrigatório no canal de produção: name, document (11 ou 14 dígitos), email e phone (10–15 dígitos). Use dados reais do pagador, não os placeholders do exemplo.

Status da resposta: active, paid ou expired. A confirmação do pagamento muda a cobrança para paid. endToEndId pode ser null antes da liquidação.

{
  "id": "00000000-0000-0000-0000-000000000123",
  "merchantId": "00000000-0000-0000-0000-000000000001",
  "amountMinor": 1500,
  "status": "active",
  "description": "Example",
  "expiresAt": "2026-09-22T18:00:00Z",
  "brCode": "<brCode returned by API>",
  "txid": "<txid returned by API>",
  "endToEndId": null,
  "createdAt": "2026-09-22T17:00:00Z",
  "updatedAt": "2026-09-22T17:00:00Z"
}

Somente sandbox: POST /v1/sandbox/charges/{id}/pay simula pagamento; POST /v1/sandbox/charges/{id}/expire simula expiração. Ambos usam a chave merchant do sandbox.

Corpo da requisição

{
  "amountMinor": 1500,
  "expiresInSeconds": 3600,
  "description": "Example",
  "payer": {
    "name": "<payer name>",
    "document": "<CPF or CNPJ digits>",
    "email": "payer@example.com",
    "phone": "<phone digits>"
  }
}

Resposta ilustrativa

201
{
  "id": "00000000-0000-0000-0000-000000000123",
  "merchantId": "00000000-0000-0000-0000-000000000001",
  "amountMinor": 1500,
  "status": "active",
  "description": "Example",
  "expiresAt": "2026-09-22T18:00:00Z",
  "brCode": "<brCode returned by API>",
  "txid": "<txid returned by API>",
  "endToEndId": null,
  "createdAt": "2026-09-22T17:00:00Z",
  "updatedAt": "2026-09-22T17:00:00Z"
}

Pix - Entrada

Criar cobrança com TXID

puthttps://api.eyt.com.br/v1/pix/charges/{txid}

Cria cobrança com TXID alfanumérico informado pelo cliente (26–35 caracteres). É uma operação de criação/idempotência, não de cancelamento ou alteração arbitrária. Confirme suporte no seu canal antes de usar TXID próprio.

CampoDescrição
amountMinorInteiro em centavos de BRL, mínimo 1000 (R$ 10,00). Limites do canal também se aplicam.
expiresInSeconds60–86400
descriptionOpcional, até 140 caracteres.
payerObrigatório no canal de produção: name, document (11 ou 14 dígitos), email e phone (10–15 dígitos). Use dados reais do pagador, não os placeholders do exemplo.

Status da resposta: active, paid ou expired. A confirmação do pagamento muda a cobrança para paid. endToEndId pode ser null antes da liquidação.

{
  "id": "00000000-0000-0000-0000-000000000123",
  "merchantId": "00000000-0000-0000-0000-000000000001",
  "amountMinor": 1500,
  "status": "active",
  "description": "Example",
  "expiresAt": "2026-09-22T18:00:00Z",
  "brCode": "<brCode returned by API>",
  "txid": "<txid returned by API>",
  "endToEndId": null,
  "createdAt": "2026-09-22T17:00:00Z",
  "updatedAt": "2026-09-22T17:00:00Z"
}

Somente sandbox: POST /v1/sandbox/charges/{id}/pay simula pagamento; POST /v1/sandbox/charges/{id}/expire simula expiração. Ambos usam a chave merchant do sandbox.

Corpo da requisição

{
  "amountMinor": 1500,
  "expiresInSeconds": 3600,
  "description": "Example",
  "payer": {
    "name": "<payer name>",
    "document": "<CPF or CNPJ digits>",
    "email": "payer@example.com",
    "phone": "<phone digits>"
  }
}

Resposta ilustrativa

201
{
  "id": "00000000-0000-0000-0000-000000000123",
  "merchantId": "00000000-0000-0000-0000-000000000001",
  "amountMinor": 1500,
  "status": "active",
  "description": "Example",
  "expiresAt": "2026-09-22T18:00:00Z",
  "brCode": "<brCode returned by API>",
  "txid": "<txid returned by API>",
  "endToEndId": null,
  "createdAt": "2026-09-22T17:00:00Z",
  "updatedAt": "2026-09-22T17:00:00Z"
}

Pix - Entrada

Consultar e listar cobranças

gethttps://api.eyt.com.br/v1/pix/charges/{id}

Use o UUID retornado em id. Liste com GET /v1/pix/charges?page=1&pageSize=20&status=active. pageSize: 1–100. A lista contém items, page, pageSize e total.

{
  "id": "00000000-0000-0000-0000-000000000123",
  "merchantId": "00000000-0000-0000-0000-000000000001",
  "amountMinor": 1500,
  "status": "active",
  "description": "Example",
  "expiresAt": "2026-09-22T18:00:00Z",
  "brCode": "<brCode returned by API>",
  "txid": "<txid returned by API>",
  "endToEndId": null,
  "createdAt": "2026-09-22T17:00:00Z",
  "updatedAt": "2026-09-22T17:00:00Z"
}

Resposta ilustrativa

200
{
  "id": "00000000-0000-0000-0000-000000000123",
  "merchantId": "00000000-0000-0000-0000-000000000001",
  "amountMinor": 1500,
  "status": "active",
  "description": "Example",
  "expiresAt": "2026-09-22T18:00:00Z",
  "brCode": "<brCode returned by API>",
  "txid": "<txid returned by API>",
  "endToEndId": null,
  "createdAt": "2026-09-22T17:00:00Z",
  "updatedAt": "2026-09-22T17:00:00Z"
}

Pix - Entrada

Configurar webhooks e retries

puthttps://api.eyt.com.br/v1/pix/webhooks

Uma URL e uma assinatura de eventos por merchant em cada ambiente. Este endpoint substitui a configuração e devolve novo segredo a cada PUT, inclusive atualizações. Guarde o segredo e atualize o verificador. GET retorna secret: null.

{
  "url": "https://merchant.example/webhooks",
  "events": [
    "charge.*",
    "payout.*"
  ]
}
CampoDescrição
X-EYT-TimestampSegundos Unix.
X-EYT-Signaturehex HMAC-SHA256(secret, timestamp + "." + rawBody)
X-EYT-Eventcharge.paid / payout.settled / payout.failed
X-EYT-Delivery-IdIdentificador desta tentativa; muda nos retries. Não use isoladamente para deduplicar um evento.

Valide a assinatura com o corpo bruto exato e tolerância de timestamp de 300 segundos. Compare assinaturas em tempo constante. Qualquer HTTP 2xx conclui a entrega. Responda rapidamente após registrar o evento de forma durável.

Política de retries

CampoDescrição
1Tentativa inicial quando elegível
21 min
35 min
415 min
51 h
64 h

Seis tentativas no total: inicial mais cinco retries. Cada intervalo começa após a falha anterior. Soma nominal dos intervalos: 5 horas e 21 minutos, além de duração das requisições, fila e agendamento. Não é prazo máximo de entrega. A suspensão da Lambda no sandbox pode adiar processamento até outra invocação. Após a sexta falha, os retries automáticos param.

{
  "id": "<delivery UUID>",
  "type": "payout.failed",
  "objectId": "<payout UUID>",
  "createdAt": "<event timestamp>",
  "data": {
    "payoutId": "<payout UUID>",
    "merchantId": "<merchant UUID>",
    "status": "Failed",
    "amountMinor": 1500,
    "endToEndId": null,
    "failureReason": null
  }
}

O envelope contém id, type, objectId, createdAt e data. data usa status do domínio (por exemplo Paid ou Failed); GET usa minúsculas. Processe por objeto e estado de forma idempotente e reconcilie o status atual por GET. data.failureReason espelha o campo do payout: null quando nenhum motivo foi registrado, senão uma string curta de explicação.

Corpo da requisição

{
  "url": "https://merchant.example/webhooks",
  "events": [
    "charge.*",
    "payout.*"
  ]
}

Resposta ilustrativa

200
{
  "url": "https://merchant.example/webhooks",
  "events": [
    "charge.*",
    "payout.*"
  ],
  "secret": "<save returned secret>",
  "active": true
}

Pix - Entrada

Solicitar reembolso

posthttps://api.eyt.com.br/v1/pix/charges/{id}/refunds

Use o UUID da cobrança. Corpo: amountMinor em centavos e reason não vazio. Idempotency-Key obrigatório. GET lista reembolsos; PUT também é aceito para criação. Registro de reembolso não é prova de liquidação bancária.

Corpo da requisição

{
  "amountMinor": 100,
  "reason": "Customer request"
}

Resposta ilustrativa

201
{
  "id": "<refund UUID>",
  "chargeId": "<charge UUID>",
  "amountMinor": 100,
  "reason": "Customer request"
}

Pix - Saida

Limites e tratamento de erros

gethttps://api.eyt.com.br/v1/pix/payout-limit

Limites de transação são definidos por merchant no onboarding e podem mudar ao longo do tempo. Use GET /v1/pix/payout-limit para consultar a cota diária de payout vigente para a sua conta.

O gateway conta a cota diária de payout desde 00:00 UTC. Quando um novo payout excederia a cota, POST /v1/pix/payouts retorna 422 daily_limit_exceeded antes de qualquer envio.

CampoDescrição
422 validation_errorEntrada inválida, Idempotency-Key ausente ou chave DICT não encontrada (consulte details).
422 daily_limit_exceededLimite diário de payout excedido.
422 saldo_insuficienteSaldo insuficiente antes do envio.
503 unavailableServiço indisponível: repita a requisição (idempotência se aplica).
404 not_foundRecurso não encontrado no escopo do merchant.

Esses são erros de requisição, não valores de failureReason. Em um payout failed, failureReason carrega o motivo da falha confirmado pela EYT (ou null); timeout com resultado incerto mantém processing durante conciliação. O limiar de revisão de 30 minutos não causa falha automática.

Resposta ilustrativa

200
{
  "dailyLimitMinor": "<your daily allowance in minor units>"
}

Pix - Saida

Consultar saldo

gethttps://api.eyt.com.br/v1/pix/balance

balanceMinor é o saldo do ledger do merchant em centavos de BRL, não o saldo da conta bancária compartilhada.

{
  "balanceMinor": 10000,
  "currency": "BRL"
}

Resposta ilustrativa

200
{
  "balanceMinor": 10000,
  "currency": "BRL"
}

Pix - Saida

Criar payout

posthttps://api.eyt.com.br/v1/pix/payouts
CampoDescrição
destinationKeyChave PIX de destino.
destinationKeyTypecpf / cnpj / email / phone / random
amountMinorInteiro positivo em centavos de BRL.

Idempotency-Key obrigatório. A exigência de allowlist é por merchant. Quando desativada, dispensa cadastro prévio da chave. Quando ativa, destinatário não cadastrado fica blocked.

A resposta 201 é o retrato inicial, frequentemente approved. GET /v1/pix/payouts/{id} retorna o estado atual: approved, blocked, processing, settled ou failed. approved não significa liquidação; não crie outro payout indiscriminadamente após timeout.

{
  "id": "00000000-0000-0000-0000-000000000456",
  "merchantId": "00000000-0000-0000-0000-000000000001",
  "destinationKey": "recipient@example.com",
  "destinationKeyType": "email",
  "recipientName": null,
  "recipientDocumentMasked": null,
  "amountMinor": 1500,
  "status": "approved",
  "failureReason": null,
  "isNewRecipient": false,
  "createdBy": "system",
  "endToEndId": null,
  "createdAt": "2026-09-22T17:00:00Z",
  "updatedAt": "2026-09-22T17:00:00Z"
}

Corpo da requisição

{
  "destinationKey": "recipient@example.com",
  "destinationKeyType": "email",
  "amountMinor": 1500
}

Resposta ilustrativa

201
{
  "id": "00000000-0000-0000-0000-000000000456",
  "merchantId": "00000000-0000-0000-0000-000000000001",
  "destinationKey": "recipient@example.com",
  "destinationKeyType": "email",
  "recipientName": null,
  "recipientDocumentMasked": null,
  "amountMinor": 1500,
  "status": "approved",
  "failureReason": null,
  "isNewRecipient": false,
  "createdBy": "system",
  "endToEndId": null,
  "createdAt": "2026-09-22T17:00:00Z",
  "updatedAt": "2026-09-22T17:00:00Z"
}

Pix - Saida

Consultar payout e detalhes

gethttps://api.eyt.com.br/v1/pix/payouts/{id}

Use o UUID do payout (id), não endToEndId. GET /v1/pix/payouts lista items, page, pageSize e total. GET /v1/pix/payouts/{id}/details acrescenta pspStatus opcional, status do lado bancário que pode ser null; não é explicação de falha.

Payouts failed expõem failureReason (nas respostas POST/GET, no webhook payout.failed e em /details): null quando nenhum motivo foi registrado, senão uma string curta de explicação. É texto de diagnóstico, não enum — não ramifique lógica de negócio em valores específicos; ramifique em status. A transição para failed significa que a EYT confirmou que nada foi enviado, e o principal volta ao saldo nesse momento; a taxa não é reembolsada. Payouts blocked (saldo/allowlist) nunca carregam failureReason.

{
  "id": "00000000-0000-0000-0000-000000000456",
  "merchantId": "00000000-0000-0000-0000-000000000001",
  "destinationKey": "recipient@example.com",
  "destinationKeyType": "email",
  "recipientName": null,
  "recipientDocumentMasked": null,
  "amountMinor": 1500,
  "status": "approved",
  "failureReason": null,
  "isNewRecipient": false,
  "createdBy": "system",
  "endToEndId": null,
  "createdAt": "2026-09-22T17:00:00Z",
  "updatedAt": "2026-09-22T17:00:00Z"
}

Resposta ilustrativa

200
{
  "id": "00000000-0000-0000-0000-000000000456",
  "merchantId": "00000000-0000-0000-0000-000000000001",
  "destinationKey": "recipient@example.com",
  "destinationKeyType": "email",
  "recipientName": null,
  "recipientDocumentMasked": null,
  "amountMinor": 1500,
  "status": "approved",
  "failureReason": null,
  "isNewRecipient": false,
  "createdBy": "system",
  "endToEndId": null,
  "createdAt": "2026-09-22T17:00:00Z",
  "updatedAt": "2026-09-22T17:00:00Z"
}

Pix - Saida

Pagar QR Code

posthttps://api.eyt.com.br/v1/pix/payments/qrcode

Esta rota é separada de payouts por chave. Recebe brCode e amountMinor opcional. Confirme suporte do canal antes de usar em produção.

Corpo da requisição

{
  "brCode": "<BR Code>",
  "amountMinor": 1500
}

Resposta ilustrativa

201
{
  "id": "<payment UUID>",
  "endToEndId": null,
  "amountMinor": 1500
}

Pix - Saida

Consultar configuração de webhook

gethttps://api.eyt.com.br/v1/pix/webhooks

A mesma configuração cobre entradas e saídas Pix. Assine payout.* para incluir eventos de payout. Use PUT /v1/pix/webhooks/rotate para rotacionar o segredo.

Uma URL e uma assinatura de eventos por merchant em cada ambiente. Este endpoint substitui a configuração e devolve novo segredo a cada PUT, inclusive atualizações. Guarde o segredo e atualize o verificador. GET retorna secret: null.

{
  "url": "https://merchant.example/webhooks",
  "events": [
    "charge.*",
    "payout.*"
  ]
}
CampoDescrição
X-EYT-TimestampSegundos Unix.
X-EYT-Signaturehex HMAC-SHA256(secret, timestamp + "." + rawBody)
X-EYT-Eventcharge.paid / payout.settled / payout.failed
X-EYT-Delivery-IdIdentificador desta tentativa; muda nos retries. Não use isoladamente para deduplicar um evento.

Valide a assinatura com o corpo bruto exato e tolerância de timestamp de 300 segundos. Compare assinaturas em tempo constante. Qualquer HTTP 2xx conclui a entrega. Responda rapidamente após registrar o evento de forma durável.

Política de retries

CampoDescrição
1Tentativa inicial quando elegível
21 min
35 min
415 min
51 h
64 h

Seis tentativas no total: inicial mais cinco retries. Cada intervalo começa após a falha anterior. Soma nominal dos intervalos: 5 horas e 21 minutos, além de duração das requisições, fila e agendamento. Não é prazo máximo de entrega. A suspensão da Lambda no sandbox pode adiar processamento até outra invocação. Após a sexta falha, os retries automáticos param.

{
  "id": "<delivery UUID>",
  "type": "payout.failed",
  "objectId": "<payout UUID>",
  "createdAt": "<event timestamp>",
  "data": {
    "payoutId": "<payout UUID>",
    "merchantId": "<merchant UUID>",
    "status": "Failed",
    "amountMinor": 1500,
    "endToEndId": null,
    "failureReason": null
  }
}

O envelope contém id, type, objectId, createdAt e data. data usa status do domínio (por exemplo Paid ou Failed); GET usa minúsculas. Processe por objeto e estado de forma idempotente e reconcilie o status atual por GET. data.failureReason espelha o campo do payout: null quando nenhum motivo foi registrado, senão uma string curta de explicação.

Resposta ilustrativa

200
{
  "url": "https://merchant.example/webhooks",
  "events": [
    "charge.*",
    "payout.*"
  ],
  "secret": null,
  "active": true
}

Referência de compatibilidade para disputas. A disponibilidade deste canal deve ser confirmada com suporte.

Disputas

Listar disputas em aberto

gethttps://api.eyt.com.br/v1/disputas?status=aberta

Lista todas as disputas em aberto. Suporta paginacao via page e limit.

Query params

CampoTipoDescricao
pageintegeropcionalPagina (padrao: 1).
limitintegeropcionalItens por pagina (padrao: 20, max: 100).

Responses

200 OK
dataarrayLista de disputas.
totalintegerTotal de disputas em aberto.
pageintegerPagina atual.

Referência de compatibilidade para disputas. A disponibilidade deste canal deve ser confirmada com suporte.

Disputas

Consultar disputa por ID

gethttps://api.eyt.com.br/v1/disputas/{id}

Consulta os detalhes de uma disputa especifica, incluindo motivo, valor, prazo para defesa e historico de eventos.

Path params

CampoTipoDescricao
idstringobrigatorioIdentificador da disputa.

Responses

200 OK
idstringIdentificador da disputa.
motivostringMotivo da disputa.
valornumberValor contestado.
prazo_defesastringData limite para envio da defesa.
statusstringABERTA, EM_ANALISE, GANHA, PERDIDA.

Referência de compatibilidade para disputas. A disponibilidade deste canal deve ser confirmada com suporte.

Disputas

Enviar defesa de disputa

posthttps://api.eyt.com.br/v1/disputas/{id}/defesa

Envia a defesa para uma disputa aberta. Inclua a justificativa e, opcionalmente, anexos comprovantes.

Apos o envio, a disputa entra em status EM_ANALISE e nao pode ser editada.

Path params

CampoTipoDescricao
idstringobrigatorioIdentificador da disputa.

Body params

CampoTipoDescricao
justificativastringobrigatorioTexto da defesa.
anexosarrayopcionalURLs ou IDs de documentos anexos.

Responses

200 OK
idstringIdentificador da disputa.
statusstringEM_ANALISE.

Bank Slip

Disponibilidade de comprovante de boleto

gethttps://api.eyt.com.br/v1/pix/bank-slips/{id}/proof

Esta rota ainda não está implementada. Retorna HTTP 501 com código not_implemented; não fornece comprovante PDF funcional.

Resposta ilustrativa

501
{
  "code": "not_implemented",
  "message": "Bank slip proof endpoint not yet available.",
  "details": []
}