Analyze a MED infraction
Authorizations
JWT bearer token issued by the identity provider.
Headers
Idempotency key for this write: any stable business string you choose, sent as the X-Idempotency request header - the same header, by the same name, that the Midaz ledger takes, so one integration sends one thing by one name. Send the SAME value again to retry safely: the plugin projects it deterministically into the GUID form JDPI requires (contract 6), so a repeat lands in the same JDPI dedup slot inside JD's 24h window and the operation is applied once. The raw value is never forwarded verbatim, so correlate JDPI-side logs with the projection rather than with what you sent. The header is REQUIRED: omitting it is refused 400 PIX-0061 before any JDPI call. BREAKING CHANGE: this value used to be the body field idempotencyKey, which no longer exists.
"med-infraction-analyze-2024-0001"
Path Parameters
The infraction GUID.
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Query Parameters
The ISPB of the direct participant this request acts for. OPTIONAL: omit it and the request is answered exactly as before. Named, the record has to be one that participant is a party to - either side of a dispute, the creator of a value recovery, the participant a refund credit was booked for - or the answer is 404 PIX-0147 and nothing is read from JDPI or changed. A record this deployment does not hold is 404 PIX-0147 too when an ispb is named. An ISPB this deployment does not act as is 422 PIX-0128, before any record is read. It is ROUTING DATA you supply, never a credential, and a token confined to one participant has to name it here. Sending it empty (ispb=) reads the same as omitting it.
^[0-9]{8}$"12345678"
The registered indirect participant (UUID) this request acts for. OPTIONAL: omit it and the request is answered exactly as before. Named, the infraction has to be over a payment this deployment recorded for that indirect - the rule GET /v1/med/infractions?indirectId= lists by - or the answer is 404 PIX-0147 and nothing is read from JDPI or changed; an infraction this deployment does not hold is 404 PIX-0147 too when an indirectId is named. It is ROUTING DATA you supply, never a credential, and a token confined to one indirect has to name it here. Not a valid UUID is 400 PIX-0061. Sending it empty (indirectId=) reads the same as omitting it.
"3f2504e0-4f89-41d3-9a0c-0305e82c3301"
Body
Response
OK
ISPB of the counterparty.
"87654321"
JDPI creation timestamp (RFC 3339 UTC).
"2024-01-01T12:00:00.000Z"
ISPB of the infraction creator.
"12345678"
EndToEndId of the suspect payment.
"E1234567820240101000000000000001"
Infraction GUID (the natural key).
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Infraction reason code (1=refund request, 2=refund cancellation).
1
Human-readable infraction reason label.
"Solicitacao de refund"
stRelatoInfracao lifecycle code (0=Aberto, 1=Recebido, 2=Cancelado, 3=Analisado).
0
Human-readable stRelatoInfracao label.
"Aberto"
Situation-origin code (0..5).
0
Human-readable tpSitOrigem label.
"Golpe/Estelionato"
JDPI last-modification timestamp (RFC 3339 UTC) — the poll watermark.
"2024-01-01T12:05:00.000Z"
Analysis detail.
"Confirmed."
Infraction analysis result (0=Aceita, 1=Rejeitada); null until analysed.
0
Human-readable infraction analysis-result label.
"Aceita"
Free-text detail to help the receiving PSP analyse.
"Suspected scam."
Fraud-marker GUID, when analysis produced one.
"c3d4e5f6-a7b8-9012-cdef-345678901234"
Value-recovery GUID, when the infraction came from a recovery.
"b2c3d4e5-f6a7-8901-bcde-f23456789012"
Amount to block on the account, in centavos; null when absent.
15000

