Na API, o MED é somente leitura. Quem abre e decide a contestação é a NyxPag junto à processadora. Você consulta e recebe webhooks, mas não cria nem decide.
O ciclo de uma contestação
O statusclosed indica uma contestação encerrada. Trate-o como estado final.
Listar contestações
GET /meds retorna só as contestações da conta autenticada, ordenadas pela atualização mais recente. Exige a permissão transactions:read.
status fora da lista retorna 400 com error.code: "invalid_med_status".
Consultar uma contestação
GET /meds/{id} aceita três identificadores, o que evita você guardar mais um ID:
- o ID do MED (
med_...); - o ID da transação NyxPag (
txn_...); - o
externalIddo pedido, o mesmo que você enviou ao criar a cobrança.
404 com error.code: "not_found".
Receber por webhook
Os eventosmed.created e med.updated chegam no mesmo endpoint dos eventos de transação, com a mesma assinatura.
Eventos de MED
Payload completo, campos e um receptor pronto.
Como lidar na prática
1
Marque o pedido ao abrir
Em
med.created, sinalize o pedido (orderId) como em disputa e pare de contar o valor como disponível.2
Aguarde a decisão
Em
med.updated, olhe data.status. rejected libera o valor. approved confirma a perda.3
Concilie com a lista
Um job diário em
GET /meds?status=pending cobre qualquer webhook que não chegou.4
Confira o saldo
Depois de cada decisão, compare com
GET /balance. Veja Consultar saldo.Listar contestações MED
Referência do endpoint GET /meds.
Consultar uma contestação
Referência do endpoint GET /meds/.

