Analyze a MED refund request
Records the contestado PSP’s analysis result (JDPI devolucao/analisar, contract 2.12). The contract 2.12 conditional-required invariants are validated before any JDPI call. Persists the JDPI response entity (the advanced watermark) and returns it.
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-analyze-2024-0001"
Path Parameters
The refund-request GUID.
"d4e5f6a7-b8c9-0123-def4-56789012345a"
Body
- Option 1
- Option 2
Deprecated: send analysisResult instead. Both names are accepted; sending both with different values is refused 400 PIX-0148. Analysis result (0=Aceita Totalmente, 1=Aceita Parcialmente, 2=Rejeitada).
0
Analysis detail; required when rejecting with motivoRejeicao=4. Replaces the deprecated detalhesAnalise, which is still accepted.
"Confirmed fraud."
Analysis result (0=Aceita Totalmente, 1=Aceita Parcialmente, 2=Rejeitada). Required: send it under this name or under the deprecated resultadoAnalise; neither is refused 400 PIX-0061.
0
Deprecated: send analysisDetails instead. Both names are accepted; sending both with different values is refused 400 PIX-0148. Analysis detail; required when rejecting with motivoRejeicao=4.
"Confirmed fraud."
Deprecated: send refundEndToEndId instead. Both names are accepted; sending both with different values is refused 400 PIX-0148. pacs.004/008 devolucao id; required when resultadoAnalise is 0 or 1.
"D1234567820240101000000000000099"
Deprecated: send rejectionReason instead. Both names are accepted; sending both with different values is refused 400 PIX-0148. Rejection reason (0,1,3,4); required when resultadoAnalise=2.
0
pacs.004/008 devolucao id; required when resultadoAnalise is 0 or 1. Replaces the deprecated endToEndIdDevolucao, which is still accepted.
"D1234567820240101000000000000099"
Amount actually refunded, in centavos; required for a partial acceptance. Replaces the deprecated valorDevolvido, which is still accepted.
10000
Rejection reason (0,1,3,4); required when resultadoAnalise=2. Replaces the deprecated motivoRejeicao, which is still accepted.
0
Deprecated: send refundedAmount instead. Both names are accepted; sending both with different values is refused 400 PIX-0148. Amount actually refunded, in centavos; required for a partial acceptance.
10000
Response
OK
True when the analysis deadline has been reached or passed (computed at read time); false when no deadline is set.
false
ISPB of the contested PSP.
"87654321"
JDPI creation timestamp (RFC 3339 UTC).
"2024-01-01T12:00:00.000Z"
Deprecated: read createdAt, which carries the same value. JDPI creation timestamp (RFC 3339 UTC).
"2024-01-01T12:00:00.000Z"
Deprecated: read updatedAt, which carries the same value. JDPI last-modification timestamp (RFC 3339 UTC) — the poll watermark.
"2024-01-01T12:05:00.000Z"
EndToEndId of the contested payment or devolucao.
"E1234567820240101000000000000001"
Deprecated: read refundRequestId, which carries the same value. Refund-request GUID (the natural key).
"d4e5f6a7-b8c9-0123-def4-56789012345a"
Deprecated: read contestedIspb, which carries the same value. ISPB of the contested PSP.
"87654321"
Deprecated: read requesterIspb, which carries the same value. ISPB of the requesting PSP.
"12345678"
Deprecated: read reason, which carries the same value. Refund motivo code (0=Falha Operacional, 1=Fraude, 3=Pix Automatico).
1
Deprecated: read reasonDescription, which carries the same value. Human-readable refund motivo label.
"Fraude"
Refund motivo code (0=Falha Operacional, 1=Fraude, 3=Pix Automatico).
1
Human-readable refund motivo label.
"Fraude"
Requested refund amount, in centavos.
25000
Refund-request GUID (the natural key).
"d4e5f6a7-b8c9-0123-def4-56789012345a"
ISPB of the requesting PSP.
"12345678"
stSolDevolucao lifecycle code (0=Aberta, 1=Cancelada, 2=Analisada).
0
Human-readable stSolDevolucao label.
"Aberta"
JDPI last-modification timestamp (RFC 3339 UTC) — the poll watermark.
"2024-01-01T12:05:00.000Z"
Deprecated: read refundAmount, which carries the same value. Requested refund amount, in centavos.
25000
Contestado-side analysis deadline (RFC 3339 UTC; contract §5, 6h Fraude / 48h otherwise); null for filer-side and terminal requests.
"2024-01-01T18:00:00.000Z"
Analysis detail.
"Insufficient balance."
Refund analysis result (0=Aceita Totalmente, 1=Aceita Parcialmente, 2=Rejeitada); null until analysed.
0
Human-readable refund analysis-result label.
"Aceita Totalmente"
Free-text detail.
"Operational failure."
Deprecated: read details, which carries the same value. Free-text detail.
"Operational failure."
Deprecated: read analysisDetails, which carries the same value. Analysis detail.
"Insufficient balance."
Deprecated: read registeredAt, which carries the same value. dtHrRegistro — when the request was REGISTERED in the JDPI base (raw JDPI instant), distinct from dtHrCriacao (the DICT creation instant). Returned by the §8.2.26 JDPI-base read only.
"2021-08-06T10:33:08.241Z"
Deprecated: read refundEndToEndId, which carries the same value. pacs.004/pacs.008 devolucao reference, recorded at analysis.
"D1234567820240101000000000000099"
Deprecated: read recoveryId, which carries the same value. Value-recovery GUID, when from a recovery.
"b2c3d4e5-f6a7-8901-bcde-f23456789012"
Deprecated: read infractionId, which carries the same value. Linked infraction GUID, when fraud.
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Linked infraction GUID, when fraud.
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Deprecated: read rejectionReason, which carries the same value. Rejection reason (0,1,3,4); present only when the analysis rejected the request.
0
Deprecated: read rejectionReasonDescription, which carries the same value. Human-readable rejection-reason label.
"Falta de saldo"
Value-recovery GUID, when from a recovery.
"b2c3d4e5-f6a7-8901-bcde-f23456789012"
pacs.004/pacs.008 devolucao reference, recorded at analysis.
"D1234567820240101000000000000099"
Amount actually refunded, in centavos; null when absent.
25000
dtHrRegistro — when the request was REGISTERED in the JDPI base (raw JDPI instant), distinct from dtHrCriacao (the DICT creation instant). Returned by the §8.2.26 JDPI-base read only.
"2021-08-06T10:33:08.241Z"
Rejection reason (0,1,3,4); present only when the analysis rejected the request.
0
Human-readable rejection-reason label.
"Falta de saldo"
Deprecated: read analysisResult, which carries the same value. Refund analysis result (0=Aceita Totalmente, 1=Aceita Parcialmente, 2=Rejeitada); null until analysed.
0
Deprecated: read analysisResultDescription, which carries the same value. Human-readable refund analysis-result label.
"Aceita Totalmente"
Deprecated: read refundedAmount, which carries the same value. Amount actually refunded, in centavos; null when absent.
25000

