跳到正文
A AmunPay API Pix版本 3.38 · 更新于 页面

Webhook

您登记一个 HTTPS URL,每发生一个事件就会收到一次 POST。投递带有签名,约 5 小时内尝试 9 次,每个地址有自己的队列:您某个响应慢的端点不会拖慢任何人。

登记 #

PUT /v2/ex/webhook

权限范围:ex.webhook.write。

PUT /v2/ex/webhook
{
  "url": "https://loja.exemplo.com/webhooks/pix",
  "tiposHabilitados": ["*"],
  "urlsPorFamilia": {
    "payout": "https://loja.exemplo.com/webhooks/saques"
  }
}
→ 200
{
  "url": "https://loja.exemplo.com/webhooks/pix",
  "tiposHabilitados": ["*"],
  "urlsPorFamilia": {
    "payout": "https://loja.exemplo.com/webhooks/saques"
  },
  "ativo": true,
  "atualizadoEm": "2026-09-18T12:00:00Z"
}
字段 类型 必填 说明
url 字符串 是 公网 HTTPS 地址。接收所有没有分流的事件。
tiposHabilitados 列表 否 ["*"] 表示全部,或填写您需要的类型。缺省为 ["*"]。
urlsPorFamilia 对象 否 按族分流。族是类型的第一段,GET /v2/ex/webhook/familias 列出可用的族。
cabecalhos 对象 否 每次投递都会带上的自定义请求头,最多 3 个。读取时不返回其值。

PUT 描述的是最终状态:省略 urlsPorFamilia 会删除已有的分流。该路由不认识的字段返回 400 campo_desconhecido。GET /v2/ex/webhook 读取配置,DELETE /v2/ex/webhook 停用投递,GET /v2/ex/webhook/familias 列出可用的族。

事件信封 #

每个事件都以如下正文到达。请在 10 秒内响应 2xx,之后再处理。对不认识的类型也请响应 2xx。

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N002",
  "tipo": "pix.creditado",
  "criadoEm": "2026-10-23T15:00:07.412Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "endToEndId": "E60746948202610231500Ab1Cd2Ef3Gh",
    "txid": "FIN02J1ZK7M9QW3ERT5TY6UI8O",
    "valor": "150.00",
    "situacaoFundos": "CREDITADO",
    "pagador": { "cpf": "12345678909", "nome": "Fulano de Tal", "ispb": "60746948" },
    "titularidadeOk": true,
    "instrumento": "PIX",
    "horario": { "liquidacao": "2026-10-23T15:00:07.001Z" }
  }
}
字段 类型 说明
eventoId 字符串 唯一。请据此丢弃重复的事件:投递保证至少一次。
sequencia 整数 按资源(txid、idEnvio)递增。不保证不同资源之间的顺序。
correlationId 字符串 产生该事件的请求的 id。可能不出现,例如提现期限的通知。
dados 对象 事件内容。键随类型而变。在 pagador 中,企业以 cnpj 代替 cpf。当支付机构只提供付款人证件的遮盖形式时,按其原样放在 cpfMascarado(或 cnpjMascarado)中,cpf 为空。

您的响应 #

收到后请立即响应 2xx。您拒绝的事件,或您系统处理失败的事件,会自动重试,不会阻塞其他事件。只有在端点看起来已经下线时,该地址的队列才会暂停。

您的地址会同时收到多个事件,它们来自不同的资源。这个数量会自动调整:从 8 开始,地址快速响应 2xx 时逐步增加,最多 512;地址失败或响应缓慢时会减少。同一资源的事件按 sequencia 的顺序逐个到达。尚未响应过 2xx 的地址,或在最近一次 2xx 之后失败的地址,每次只收到一个事件。事件被拒绝不计入此规则。

响应 结果
2xx 已投递。
400、409、413 或 422 拒绝此事件。它会单独重试,其他事件继续到达。同一资源的事件排在它后面等待。
5xx,或连接已打开但 10 秒内没有响应 此事件失败。它会单独重试,其他事件继续到达。同一资源的事件排在它后面等待。
无法建立连接(DNS、TLS、连接被拒绝)、401、403、404、405、410 或其他响应 该地址已下线。失败的事件等待,由其中一个事件测试该地址,直到它恢复。新事件照常尝试。

同一地址上有 3 个不同的事件失败,且自首次失败以来该地址没有返回过任何 2xx 时,该地址也会暂停。任何事件都不会挡住其他事件:被拒绝的事件没有数量上限,即使地址已暂停,新事件也会照常发送。在已暂停的地址上有事件以 2xx 送达时,对该地址的投递立即恢复,在这个 2xx 之前失败的事件(包括 404)会单独重试,不再暂停该地址。

签名 #

每次投递都带有请求头 x-jws-signature,内容是对正文的 ES256 分离式 JWS。公钥在 GET /.well-known/jwks.json。信任正文之前请先验证。

自定义请求头 #

如果您端点前面的防火墙或网关要求令牌,您可以登记最多 3 个请求头。它们随每次投递发送,包括通用 URL 和分流地址。

PUT /v2/ex/webhook
{
  "url": "https://loja.exemplo.com/webhooks/pix",
  "tiposHabilitados": ["*"],
  "cabecalhos": {
    "Authorization": "Bearer token-do-seu-gateway"
  }
}
→ 200
{
  "url": "https://loja.exemplo.com/webhooks/pix",
  "tiposHabilitados": ["*"],
  "cabecalhos": {
    "Authorization": null
  },
  "ativo": true,
  "atualizadoEm": "2026-09-29T12:00:00Z"
}

省略 cabecalhos 会保留已记录的请求头,{} 删除全部,名称的值为 null 表示保留该值,已记录但未出现在对象中的名称会被删除。更换 url 不会删除请求头。签名仍然必需:这些请求头与签名一起发送,绝不代替签名。

事件 #

类型 触发时机
pix.recebido Pix 已结算。尚未计入余额。若 situacaoFundos 为 EM_DEVOLUCAO,表示它被拒绝并退还付款人。
pix.creditado 款项已计入余额。请在此时为您的客户入账。
pix.retido Pix 已到账,但被冻结。
cob.pagamento_rejeitado 我们拒绝了该付款。motivo 说明原因。如果 GET /v2/ex/config 中 custodia.recusaAntesDoCredito 为 false,款项已经到账并会退还付款人:随后会有 EM_DEVOLUCAO 的 pix.recebido 和 devolucao.criada。
cob.atualizada 收款被修改或取消。
devolucao.criada 一笔退款已发出,可能是您发起的,也可能是我们发起的。motivo 说明是哪一种。
devolucao.concluida 退款已结算。
devolucao.nao_realizada 退款没有发出。您发起的退款,是被付款人的银行拒绝。我们发起的退款,是这笔 Pix 没有退回付款人,已入账给您:pix.creditado 会单独送达,两者之间的顺序不作保证。
payout.aguardando_aprovacao 提现触发了审批规则,或您要求了审批,正在等待管理员在控制台处理。金额已从可用余额中扣除。不带 endToEndId。
payout.em_processamento 提现正在发送。无需审批时,金额在此时从可用余额中扣除。
payout.realizado 提现已结算。endToEndId 为最终值。机构告知收款人时带有 recebedor。
payout.nao_realizado 提现被拒绝。金额已退回可用余额。
payout.devolucao_recebida 收款人的银行退回了一笔已完成的提现。
payout.sla.em_risco 距提现期限还剩 30 分钟。
payout.sla.estourado 提现期限已过,而提现仍在进行中。
favorecido.criado 有人在控制台登记了一个提现目标。它已立即生效:liberaEm 就是登记的时间。如果您不认识它,请移除。
favorecido.liberado 机构提前放行了一个正在等待的目标。它已可以收款,liberaEm 表示生效的时间。如果您不认识它,请移除。
favorecido.renomeado 机构应您的要求更正了一个目标的名称。只有名称改变:密钥、证件号和等待期保持不变。
favorecido.removido 该目标已从列表中移除。
med.infracao.criada 一笔收到的 Pix 被提出争议。见争议。
med.infracao.atualizada 争议的状态发生变化,或已有结果。
saldo.bloqueado 部分余额被冻结。
saldo.desbloqueado 冻结已解除。
subconta.atualizada 子账户被创建、状态变更或 custodiante 被更换。statusAnterior 仅在状态变更时返回。
conta.status_alterado 您的账户状态已变更。
conta.segmento_alterado 机构对您的账户进行了重新分类。请重新读取 GET /v2/ex/config。
conta.custodiante_alterado 您的主账户已转到另一家机构。custodiante 和 custodianteAnterior 分别为两家机构的名称。请重新读取 GET /v2/ex/config。
split.executado 一笔到账款项已完成分账。
split.revertido 退款或争议撤销了分账。
tarifa.cobrada 收取了一笔手续费。对于到账,meio 为 PIX_RECEBIDO,referencia 为 txid;对于已完成的提现,meio 为 PIX_ENVIADO,referencia 为 idEnvio。valor 为手续费金额。
webhook.teste 由 POST /v2/ex/webhook/teste 触发。它到达时,该地址已暂停的投递会重新开始尝试。

每种事件的示例 #

以下是您的端点在每种类型下收到的完整正文,数值均为虚构。dados 中可能出现新的键:忽略您不认识的键即可。

pix.recebido #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N001",
  "tipo": "pix.recebido",
  "criadoEm": "2026-10-23T15:00:07.212Z",
  "sequencia": 1,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "endToEndId": "E60746948202610231500Ab1Cd2Ef3Gh",
    "txid": "FIN02J1ZK7M9QW3ERT5TY6UI8O",
    "valor": "150.00",
    "situacaoFundos": "RECEBIDO",
    "pagador": { "cpf": "12345678909", "nome": "Fulano de Tal", "ispb": "60746948" },
    "instrumento": "PIX",
    "horario": { "liquidacao": "2026-10-23T15:00:07.001Z" }
  }
}

pix.creditado #

带分账的收款还会带 split,子账户的收款还会带 subconta。

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N002",
  "tipo": "pix.creditado",
  "criadoEm": "2026-10-23T15:00:07.412Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "endToEndId": "E60746948202610231500Ab1Cd2Ef3Gh",
    "txid": "FIN02J1ZK7M9QW3ERT5TY6UI8O",
    "valor": "150.00",
    "situacaoFundos": "CREDITADO",
    "pagador": { "cpf": "12345678909", "nome": "Fulano de Tal", "ispb": "60746948" },
    "titularidadeOk": true,
    "instrumento": "PIX",
    "horario": { "liquidacao": "2026-10-23T15:00:07.001Z" }
  }
}

pix.retido #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N003",
  "tipo": "pix.retido",
  "criadoEm": "2026-10-23T18:20:41.090Z",
  "sequencia": 4,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "endToEndId": "E60746948202610231500Ab1Cd2Ef3Gh",
    "valor": "100.00",
    "situacaoFundos": "RETIDO",
    "tipo": "MED",
    "bloqueio": { "id": "med:01JB2Q7M9QW3ERT5TY6VK8NPQR", "tipo": "MED" }
  }
}

cob.pagamento_rejeitado #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N004",
  "tipo": "cob.pagamento_rejeitado",
  "criadoEm": "2026-10-23T15:10:02.530Z",
  "sequencia": 1,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "txid": "FIN03JB2Q7M9QW3ERT5TY6VK8N",
    "motivo": "TITULARIDADE",
    "politica": "RECUSAR",
    "pagador": { "cpf": "98765432100" },
    "cpfMascaradoPagador": "***654321**"
  }
}

cob.atualizada #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N005",
  "tipo": "cob.atualizada",
  "criadoEm": "2026-10-23T15:12:30.118Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "txid": "FIN04JB2Q7M9QW3ERT5TY6VK8N",
    "revisao": 1,
    "status": "ATIVA",
    "valor": "120.00",
    "pixCopiaECola": "00020126480014br.gov.bcb.pix0126...6304C057"
  }
}

devolucao.criada #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N006",
  "tipo": "devolucao.criada",
  "criadoEm": "2026-10-23T16:00:00.401Z",
  "sequencia": 1,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "endToEndId": "E60746948202610231500Ab1Cd2Ef3Gh",
    "txid": "FIN02J1ZK7M9QW3ERT5TY6UI8O",
    "id": "D1",
    "valor": "10.00",
    "motivo": "SOLICITADA",
    "natureza": "ORIGINAL"
  }
}

devolucao.concluida #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N007",
  "tipo": "devolucao.concluida",
  "criadoEm": "2026-10-23T16:00:02.877Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "endToEndId": "E60746948202610231500Ab1Cd2Ef3Gh",
    "id": "D1",
    "rtrId": "D12345678202610231600Mn4Pq7Rs2Tv",
    "valor": "10.00"
  }
}

devolucao.nao_realizada #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N008",
  "tipo": "devolucao.nao_realizada",
  "criadoEm": "2026-10-23T16:05:01.954Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "endToEndId": "E60746948202610231500Ab1Cd2Ef3Gh",
    "id": "D2",
    "motivo": "AC06"
  }
}

payout.aguardando_aprovacao #

regras 说明是哪些规则拦下了提现:PEDIDA、VALOR、QUANTIDADE_DESTINO 或 SOMA_DESTINO。

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N009",
  "tipo": "payout.aguardando_aprovacao",
  "criadoEm": "2026-10-23T15:20:00.330Z",
  "sequencia": 1,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "idEnvio": "SAQ02JB2Q7M9QW3ERT5TY6VK8N",
    "valor": "7500.00",
    "tipo": "SAQUE",
    "origem": "API",
    "regras": ["VALOR"],
    "expiraEm": "2026-10-24T15:20:00Z"
  }
}

payout.em_processamento #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N010",
  "tipo": "payout.em_processamento",
  "criadoEm": "2026-10-23T15:30:00.215Z",
  "sequencia": 1,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "idEnvio": "SAQ01JB2Q7M9QW3ERT5TY6VK8N",
    "endToEndId": "E12345678202610231530Kd7Fp2Rt9Wx",
    "valor": "20.00",
    "tipo": "SAQUE",
    "origem": "API",
    "prazoRegulatorio": "2026-10-23T17:30:00Z"
  }
}

payout.realizado #

只有机构告知收款人时才带 recebedor。

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N011",
  "tipo": "payout.realizado",
  "criadoEm": "2026-10-23T15:30:03.640Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "idEnvio": "SAQ01JB2Q7M9QW3ERT5TY6VK8N",
    "endToEndId": "E12345678202610231530Kd7Fp2Rt9Wx",
    "valor": "20.00",
    "tipo": "SAQUE",
    "origem": "API",
    "sla": { "cumprido": true },
    "recebedor": {
      "nome": "Fulano de Tal",
      "documento": "12345678909",
      "ispb": "18236120",
      "banco": "NU PAGAMENTOS - IP",
      "bancoNomeCompleto": "NU PAGAMENTOS S.A. - INSTITUIÇÃO DE PAGAMENTO",
      "bancoCodigo": "260",
      "bancoCnpj": "18236120000158",
      "agencia": "0001",
      "conta": "35",
      "tipoConta": "TRAN"
    }
  }
}

payout.nao_realizado #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N012",
  "tipo": "payout.nao_realizado",
  "criadoEm": "2026-10-23T15:35:01.102Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "idEnvio": "SAQ03JB2Q7M9QW3ERT5TY6VK8N",
    "tipo": "SAQUE",
    "origem": "API",
    "motivo": {
      "codigo": "AC03",
      "classe": "CORRIGIVEL",
      "descricao": "Agência/conta do usuário recebedor inexistente ou inválida."
    }
  }
}

payout.devolucao_recebida #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N013",
  "tipo": "payout.devolucao_recebida",
  "criadoEm": "2026-10-23T17:02:44.510Z",
  "sequencia": 3,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "idEnvio": "SAQ01JB2Q7M9QW3ERT5TY6VK8N",
    "endToEndIdOriginal": "E12345678202610231530Kd7Fp2Rt9Wx",
    "rtrId": "D18236120202610231702Hj5Kl8Mn1Pq",
    "valor": "20.00",
    "natureza": "ORIGINAL",
    "motivo": "Devolvido pela instituição de quem recebeu.",
    "devolvidaEm": "2026-10-23T17:01:58Z"
  }
}

payout.sla.em_risco #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N014",
  "tipo": "payout.sla.em_risco",
  "criadoEm": "2026-10-23T17:00:00.019Z",
  "sequencia": 2,
  "dados": {
    "idEnvio": "SAQ04JB2Q7M9QW3ERT5TY6VK8N",
    "tipo": "SAQUE",
    "valor": "300.00",
    "status": "EM_PROCESSAMENTO",
    "prazoRegulatorio": "2026-10-23T17:30:00Z",
    "sla": { "estourado": false, "restanteSegundos": 1800 }
  }
}

payout.sla.estourado #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N015",
  "tipo": "payout.sla.estourado",
  "criadoEm": "2026-10-23T17:31:00.024Z",
  "sequencia": 3,
  "dados": {
    "idEnvio": "SAQ04JB2Q7M9QW3ERT5TY6VK8N",
    "tipo": "SAQUE",
    "valor": "300.00",
    "status": "EM_PROCESSAMENTO",
    "prazoRegulatorio": "2026-10-23T17:30:00Z",
    "sla": { "estourado": true, "restanteSegundos": -60 }
  }
}

favorecido.criado #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N016",
  "tipo": "favorecido.criado",
  "criadoEm": "2026-10-23T14:00:00.711Z",
  "sequencia": 1,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "id": "01JB2Q3F8ZX6M7MMJ99YRB5AYG",
    "chave": "financeiro@fornecedor.com.br",
    "tipoChave": "EMAIL",
    "nome": "Fornecedor Exemplo Ltda",
    "criadoPor": "joao.silva",
    "liberaEm": "2026-10-23T14:00:00Z"
  }
}

favorecido.liberado #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N017",
  "tipo": "favorecido.liberado",
  "criadoEm": "2026-10-23T14:10:00.302Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "id": "01JB2Q3F8ZX6M7MMJ99YRB5AYG",
    "chave": "financeiro@fornecedor.com.br",
    "nome": "Fornecedor Exemplo Ltda",
    "liberaEm": "2026-10-23T14:10:00Z",
    "liberavaEm": "2026-10-24T14:00:00Z"
  }
}

favorecido.renomeado #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N018",
  "tipo": "favorecido.renomeado",
  "criadoEm": "2026-10-23T14:20:00.845Z",
  "sequencia": 3,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "id": "01JB2Q3F8ZX6M7MMJ99YRB5AYG",
    "chave": "financeiro@fornecedor.com.br",
    "nome": "Fornecedor Exemplo Comércio Ltda",
    "nomeAnterior": "Fornecedor Exemplo Ltda",
    "renomeadoPor": "instituicao"
  }
}

favorecido.removido #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N019",
  "tipo": "favorecido.removido",
  "criadoEm": "2026-10-23T14:30:00.127Z",
  "sequencia": 4,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "id": "01JB2Q3F8ZX6M7MMJ99YRB5AYG",
    "chave": "financeiro@fornecedor.com.br",
    "motivo": "trocou de banco",
    "removidoPor": "joao.silva"
  }
}

med.infracao.criada #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N020",
  "tipo": "med.infracao.criada",
  "criadoEm": "2026-10-23T18:20:41.090Z",
  "sequencia": 1,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "idInfracao": "01JB2Q7M9QW3ERT5TY6VK8NPQR",
    "endToEndId": "E60746948202610231500Ab1Cd2Ef3Gh",
    "tipo": "FRAUDE",
    "valor": "100.00",
    "situacao": "ABERTA",
    "prazoFinalizacao": "2026-10-30T18:20:41Z"
  }
}

med.infracao.atualizada #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N021",
  "tipo": "med.infracao.atualizada",
  "criadoEm": "2026-10-28T12:00:00.640Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "idInfracao": "01JB2Q7M9QW3ERT5TY6VK8NPQR",
    "situacao": "REJEITADA",
    "encerradaPor": "MED"
  }
}

saldo.bloqueado #

不是由争议产生的冻结(例如法院命令)只带 id、tipo 和 valor。

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N022",
  "tipo": "saldo.bloqueado",
  "criadoEm": "2026-10-23T18:20:41.090Z",
  "sequencia": 1,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "id": "med:01JB2Q7M9QW3ERT5TY6VK8NPQR",
    "tipo": "MED",
    "valor": "100.00",
    "endToEndId": "E60746948202610231500Ab1Cd2Ef3Gh",
    "idInfracao": "01JB2Q7M9QW3ERT5TY6VK8NPQR",
    "prazo": "2026-10-30T18:20:41Z"
  }
}

saldo.desbloqueado #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N023",
  "tipo": "saldo.desbloqueado",
  "criadoEm": "2026-10-28T12:00:00.640Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "id": "med:01JB2Q7M9QW3ERT5TY6VK8NPQR",
    "tipo": "MED",
    "valor": "100.00",
    "endToEndId": "E60746948202610231500Ab1Cd2Ef3Gh",
    "desfecho": "LIBERADO"
  }
}

subconta.atualizada #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N024",
  "tipo": "subconta.atualizada",
  "criadoEm": "2026-10-23T13:00:00.411Z",
  "sequencia": 1,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "id": "SUB01JB2Q7M9QW3ERT5TY6VK8N",
    "nome": "Filial Centro",
    "cnpj": "11222333000181",
    "status": "EM_ANALISE"
  }
}

conta.status_alterado #

efeitos 说明账户被封锁时停用了哪些内容。

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N025",
  "tipo": "conta.status_alterado",
  "criadoEm": "2026-10-23T19:00:00.072Z",
  "sequencia": 1,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "status": "BLOQUEADA",
    "statusAnterior": "ATIVA",
    "motivo": "COMPLIANCE",
    "efeitos": [{ "acao": "COBS_REMOVIDAS", "quantidade": 2 }]
  }
}

conta.custodiante_alterado #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N026",
  "tipo": "conta.custodiante_alterado",
  "criadoEm": "2026-10-23T19:30:00.588Z",
  "sequencia": 2,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "custodiante": "Conta nominal B",
    "custodianteAnterior": "Conta nominal A"
  }
}

split.executado #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N027",
  "tipo": "split.executado",
  "criadoEm": "2026-10-23T15:40:05.330Z",
  "sequencia": 4,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "txid": "FIN05JB2Q7M9QW3ERT5TY6VK8N",
    "endToEndId": "E60746948202610231540Qw3Er5Ty7Ui",
    "referencia": "FIN05JB2Q7M9QW3ERT5TY6VK8N",
    "meio": "PIX",
    "config": "afiliados",
    "valorTotal": "99.60",
    "repartido": "9.96",
    "retidoRecebedor": "89.64",
    "pernas": [{ "parceiro": "afiliado-01", "bps": 1000, "valor": "9.96" }]
  }
}

split.revertido #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N028",
  "tipo": "split.revertido",
  "criadoEm": "2026-10-23T16:10:00.902Z",
  "sequencia": 5,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "referencia": "FIN05JB2Q7M9QW3ERT5TY6VK8N",
    "meio": "PIX",
    "valorRevertido": "50.00",
    "recuperado": "5.00",
    "descoberto": "0.00",
    "pernas": [{ "parceiro": "afiliado-01", "revertido": "5.00", "descoberto": "0.00" }]
  }
}

tarifa.cobrada #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N029",
  "tipo": "tarifa.cobrada",
  "criadoEm": "2026-10-23T15:00:07.413Z",
  "sequencia": 3,
  "correlationId": "01M2SX29NP95HKN0W06DDFPZFG",
  "dados": {
    "meio": "PIX_RECEBIDO",
    "referencia": "FIN02J1ZK7M9QW3ERT5TY6UI8O",
    "valor": "0.40",
    "valorBase": "150.00",
    "faixa": 0
  }
}

webhook.teste #

{
  "eventoId": "01JB2Q7M9QW3ERT5TY6VK8N030",
  "tipo": "webhook.teste",
  "criadoEm": "2026-10-23T12:00:00.000Z",
  "sequencia": 1,
  "dados": {
    "mensagem": "entrega de teste do webhookd"
  }
}

队列健康 #

GET /v2/ex/webhook/saude

权限范围:ex.webhook.read。

GET /v2/ex/webhook/saude
→ 200
{
  "situacao": "OK",
  "entregues": 0,
  "emBackoff": 0,
  "recusadas": 0,
  "comErro": 0,
  "desistidas": 0,
  "janelaHoras": 24
}

situacao 为 OK、ATENCAO 或 FALHANDO。不是 OK 时返回 motivo;为 FALHANDO 时还返回 ultimaFalha,其中 falha 为 RECUSA、ERRO 或 INDISPONIBILIDADE。recusadas 统计被您的端点拒绝的投递,comErro 统计您的端点处理失败的投递,两者都会继续重试。已放弃的投递不会再自动发送:请修复端点后申请重新发送。

重新发送 #

POST /v2/ex/webhook/reenvios

权限范围:ex.webhook.write。

POST /v2/ex/webhook/reenvios
{
  "tipos": ["pix.creditado"],
  "inicio": "2026-09-17T12:00:00Z",
  "fim": "2026-09-18T12:00:00Z",
  "dryRun": true
}
→ 202
{
  "idReenvio": "01M2SX3Q56B91Y7HDH49X0QQH5",
  "status": "CONCLUIDO",
  "total": 0,
  "enfileirados": 0,
  "dryRun": true
}

dryRun: true 只统计数量。soFalhas: true 只重新发送失败的通知:即用尽所有尝试、您的端点始终未接受、从未送达的通知。时间窗口最多向前追溯 30 天,inicio 不能是将来的时间;将来的 fim 按当前时间处理。没有启用的 webhook 时,重新发送以 INTERROMPIDO 结束。GET /v2/ex/webhook/reenvios/{id} 跟踪一次重新发送,GET /v2/ex/webhook/reenvios 列出最近的 10 次,POST /v2/ex/webhook/reenvios/{id}/cancelar 在重新发送还有通知未发出时将其取消,已把通知全部放入队列(CONCLUIDO)的也可以取消:它变为 INTERROMPIDO,尚未发出的通知不再发送,数量见 naoEnviados,GET /v2/ex/webhook/entregas 列出每次尝试及其 HTTP 状态码和延迟,可按 status(PENDENTE、ENTREGUE 或 FALHA_PERMANENTE)过滤,并通过 ?cursor= 继续读取;GET /v2/ex/eventos 是相同信封的事件流,用于对账:它通过 ?apos= 加上一页的 cursor.proximo 向后推进。要先看刚刚发生的事件,请使用 ?ordem=recentes,它通过 ?antes= 推进。

错误 #

状态码 title 触发条件
400 url_invalida URL 不是有效的 HTTPS 地址。
400 url_privada URL 指向私有网络或 localhost,或主机名无法通过 DNS 解析。
400 familia_desconhecida urlsPorFamilia 引用了不存在的族。
400 tipos_invalidos tiposHabilitados 中有空白项。
400 cabecalho_invalido 名称或值格式错误,同一名称以不同大小写出现两次,超过 3 个,或对没有已记录值的名称传了 null。
400 cabecalho_proibido 属于连接、正文或我们自己的请求头,例如 Host、Content-Type 或 x-jws-signature。
400 campo_desconhecido 该路由不认识的字段,例如用 headers 代替 cabecalhos。
400 periodo_invalido 重新发送的 inicio 或 fim 不符合 RFC 3339。
400 janela_invalida fim 不晚于 inicio,或 inicio 是将来的时间。
400 janela_muito_antiga inicio 早于 30 天前。
404 nao_encontrado 未登记 webhook 时执行 GET 或 DELETE,或重新发送不存在。
409 reenvio_em_andamento 已有一次重新发送正在进行。
409 reenvio_encerrado 要取消的重新发送已经结束,其所有通知都已发出。
422 webhook_nao_configurado 没有启用的 webhook 时进行测试。
503 cabecalhos_indisponiveis 当前系统暂时无法保存请求头。没有保存任何内容。