Skip to content

/meds/{medId} Endpoint ​

Background ​

/meds/{medId} is the MED detail endpoint for merchants. It returns the complete information of a specific MED, grouped by concern: summary, disputed transaction, payer and payee, the central bank infraction report, funds freeze status, analysis information, and refund (chargeback) history.

Each record returned by Query MED List is a lightweight projection of this endpoint and shares the same structure: list items contain the summary fields plus the transaction, payer (without the bank account), payee, and infractionReport groups; details, funds, analysis, and chargebacks are only returned by this endpoint.

Endpoint ​

ItemValue
MethodGET
Path/meds/{medId}
Content-Typeapplication/json
PurposeQuery MED details

Authentication ​

Use ES256 request signing and include all five required headers: X-Merchant-Id, X-Timestamp, X-Nonce, Digest, and Authorization. Set X-Merchant-Id to the merchant number and keyId to the key version, v1 by default. The signature is the DER-encoded ECDSA signature encoded with standard Base64. See Request Signing.

Generate the timestamp, nonce, digest, and signature placeholders for each actual request. The canonical string includes the actual path and raw query; sign again when pagination or filter parameters change.

Request Fields ​

FieldLocationTypeRequiredDescription
medIdPathstringYesUnique identifier of the MED infraction report to query (the platform case number, medc prefix + digits), maximum length 64 characters.

Request Example ​

http
GET /meds/medc2874510938274639021 HTTP/1.1
Accept: application/json
X-Merchant-Id: <MERCHANT_ID>
X-Timestamp: <UNIX_TIMESTAMP_SECONDS>
X-Nonce: <UNIQUE_NONCE>
Digest: SHA-256=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
Authorization: Signature keyId="v1",alg="ES256",headers="(request-target) x-timestamp x-nonce digest",signature="<ES256_SIGNATURE_BASE64>"

Response Fields ​

The endpoint uses the standard status, msg, and data response envelope. MED details are returned in data: the top level holds summary fields, and the remaining information is grouped by concern.

Summary Fields ​

FieldTypeReturnedDescription
statusintYesResponse code
msgstringYesResponse message corresponding to status.
dataobjectOn successMED details; may be omitted when signature or protocol parsing fails.
data.medIdstringYesUnique MED identifier, the platform case number (medc prefix + digits), maximum length 64 characters.
data.subMerchantNostringYesThe sub-merchant number that the MED belongs to; always an empty string for direct merchants; can be ignored.
data.statusstringYesCurrent MED status; see Enums & Statuses in the MED API Overview.
data.originSituationTypestringYesSituation type that triggered the MED; see Enums & Statuses in the MED API Overview.
data.detailsstringYesMED description, maximum length 500 characters.
data.amountdecimalYesTransaction amount involved in the MED; up to 25 digits for the integer part and 4 digits for the decimal part; never negative.
data.analysisResultstringNoAnalysis result: ACCEPTED (accepted) or REJECTED (rejected); null when no analysis has been made yet.
data.dueTimestringNoEvidence submission deadline, ISO 8601 UTC time string (yyyy-MM-ddTHH:mm:ssZ); null when not set.
data.createdAtstringYesMED record creation time, ISO 8601 UTC time string (yyyy-MM-ddTHH:mm:ssZ).
data.updatedAtstringYesMED record last update time, ISO 8601 UTC time string (yyyy-MM-ddTHH:mm:ssZ).

Transaction (data.transaction) ​

FieldTypeReturnedDescription
data.transactionobjectYesThe Pix transaction that triggered the MED.
data.transaction.e2eIdstringYesPix end-to-end transaction ID, corresponding to the bank-side payment reference number; maximum length 64 characters.
data.transaction.transactionDatestringNoTime the original transaction occurred, ISO 8601 UTC time string (yyyy-MM-ddTHH:mm:ssZ); null when not provided.
data.transaction.merchantOrderNostringNoMerchant order number, maximum length 64 characters; null when not provided.
data.transaction.platOrderNostringNoPlatform order number, maximum length 64 characters; null when not provided.

Payer (data.payer) ​

The payer is the party that sent the Pix, i.e., the MED originator (the payer of the disputed transaction).

FieldTypeReturnedDescription
data.payerobjectYesPayer information.
data.payer.namestringNoPayer's name, maximum length 120 characters; null when not provided.
data.payer.documentstringNoPayer's CPF/CNPJ, maximum length 14 characters; null when not provided.
data.payer.emailstringYesPayer's contact email, maximum length 128 characters.
data.payer.phonestringYesPayer's contact phone, maximum length 32 characters.
data.payer.bankAccountobjectYesPayer's bank account information (from the Pix transaction).
data.payer.bankAccount.ispbstringYesBank ISPB code, maximum length 8 characters.
data.payer.bankAccount.bankstringYesBank name, maximum length 100 characters.
data.payer.bankAccount.agencystringYesBank branch code, maximum length 10 characters.
data.payer.bankAccount.accountstringYesAccount number, maximum length 20 characters.
data.payer.bankAccount.documentstringYesAccount holder's document number (CPF/CNPJ), maximum length 14 characters.
data.payer.bankAccount.namestringYesAccount holder's name, maximum length 120 characters.

Payee (data.payee) ​

The payee is the party that received the Pix.

FieldTypeReturnedDescription
data.payeeobjectYesPayee information.
data.payee.namestringNoPayee's name, maximum length 120 characters; null when not provided.
data.payee.documentstringNoPayee's CPF/CNPJ, maximum length 14 characters; null when not provided.
data.payee.bankAccountobjectNoPayee's bank account information; the current version does not return this group (reserved field), always null.

Infraction Report (data.infractionReport) ​

FieldTypeReturnedDescription
data.infractionReportobjectYesBrazilian Central Bank infraction report information.
data.infractionReport.idstringNoInfraction report identifier, maximum length 64 characters; null when not provided.
data.infractionReport.statusstringYesInfraction report status: RECEIVED (received), ANALYZED (analysis complete), or CANCELLED (cancelled).
data.infractionReport.createdAtstringNoInfraction report creation time, ISO 8601 UTC time string (yyyy-MM-ddTHH:mm:ssZ); null when not provided.
data.infractionReport.creatorPspstringYesISPB code of the PSP that created the infraction report, maximum length 8 characters.

Funds Status (data.funds) ​

When a MED is created, the disputed transaction amount is frozen; it is unfrozen once the ruling takes effect or the MED is cancelled. Freezing and unfreezing separately trigger MED_FUNDS_FROZEN / MED_FUNDS_UNFROZEN webhook events; see Webhooks.

FieldTypeReturnedDescription
data.fundsobjectYesMerchant funds freeze status.
data.funds.statusstringYesFunds status; see the funds.status enum below.
data.funds.amountdecimalYesThe disputed amount, identical to data.amount.
data.funds.frozenAtstringNoTime the freeze occurred, ISO 8601 UTC time string; this endpoint currently does not return this time (reserved field), always null.
data.funds.unfrozenAtstringNoTime the unfreeze occurred, ISO 8601 UTC time string; this endpoint currently does not return this time (reserved field), always null.

funds.status Funds Status Enum ​

ValueDescription
NOT_FROZENNot frozen: no fund operation has occurred yet
PARTIALLY_FROZENPartially frozen: the frozen amount has not reached the disputed amount
FROZENFrozen: the frozen amount has reached the disputed amount
PARTIALLY_UNFROZENPartially unfrozen: part of the funds has been unfrozen and some funds remain frozen (no refund has occurred)
UNFROZENUnfrozen: all frozen funds have been unfrozen (no refund has occurred)
PARTIALLY_REFUNDEDPartially refunded: a refund has occurred and the refunded amount has not reached the disputed amount
FULLY_REFUNDEDFully refunded: the refunded amount has reached the disputed amount

For MEDs that have had a refund, funds.status remains PARTIALLY_REFUNDED or FULLY_REFUNDED even if the remaining frozen amount is later unfrozen. The exact freeze and unfreeze times are authoritative in the funds.frozenAt / funds.unfrozenAt fields of the webhook events (MED_FUNDS_FROZEN / MED_FUNDS_UNFROZEN).

Analysis (data.analysis) ​

This group holds the analysis verdict and analysis process information; data.analysis.analysisResult has the same value as the summary field data.analysisResult.

FieldTypeReturnedDescription
data.analysisobjectYesAnalysis information; its inner fields are null until an analysis has been made.
data.analysis.analysisResultstringNoAnalysis verdict: ACCEPTED (the merchant accepts the MED and agrees to the refund) or REJECTED (the merchant disputes); null when no analysis has been made yet.
data.analysis.analysisDetailsUserstringNoAnalysis details provided by the user, maximum length 500 characters.
data.analysis.analysisDetailsPspstringNoAnalysis details provided by the platform, maximum length 500 characters.

Chargeback History (data.chargebacks) ​

Each time the platform executes a refund operation, it delivers a MED_REFUND_EXECUTED webhook event to the merchant (the payload contains all fields of this endpoint's data plus the record of this refund); see Webhooks.

FieldTypeReturnedDescription
data.chargebacksarrayNoRefund history list; an empty array when no refund has occurred.
data.chargebacks[].statusstringYesRefund status: PENDING, SUCCESS, or REJECTED.
data.chargebacks[].infoTextstringYesAdditional information about the refund, maximum length 255 characters.
data.chargebacks[].errorDescriptorstringNoError description when the refund fails, maximum length 255 characters.
data.chargebacks[].amountdecimalYesRefund amount.
data.chargebacks[].createdAtstringYesRefund creation time, ISO 8601 UTC time string (yyyy-MM-ddTHH:mm:ssZ).
data.chargebacks[].updatedAtstringYesRefund last update time, ISO 8601 UTC time string (yyyy-MM-ddTHH:mm:ssZ).

Response Example ​

json
{
  "status": 200,
  "msg": "sucesso",
  "data": {
    "medId": "medc2874510938274639021",
    "subMerchantNo": "",
    "status": "ACCEPTED_BY_PSP",
    "originSituationType": "SCAM_FRAUD",
    "details": "Detailed description of the dispute",
    "amount": 1000.50,
    "dueTime": "2026-01-31T23:59:59Z",
    "createdAt": "2026-01-15T14:30:00Z",
    "updatedAt": "2026-01-16T10:30:00Z",
    "transaction": {
      "e2eId": "E1234567820240115143000123",
      "transactionDate": "2026-01-15T14:30:12Z",
      "merchantOrderNo": "PIX20260816000001",
      "platOrderNo": "P5nosqyWAQsQZNtYa5OW"
    },
    "payer": {
      "name": "João Silva",
      "document": "12345678901",
      "email": "user@example.com",
      "phone": "+5511999999999",
      "bankAccount": {
        "ispb": "12345678",
        "bank": "Banco Example",
        "agency": "1234",
        "account": "567890",
        "document": "12345678901",
        "name": "João Silva"
      }
    },
    "payee": {
      "name": "John Doe",
      "document": "12345678000195",
      "bankAccount": null
    },
    "infractionReport": {
      "id": "report-456",
      "status": "ANALYZED",
      "createdAt": "2026-01-15T14:30:00Z",
      "creatorPsp": "12345678"
    },
    "funds": {
      "status": "FULLY_REFUNDED",
      "amount": 1000.50,
      "frozenAt": null,
      "unfrozenAt": null
    },
    "analysis": {
      "analysisResult": "ACCEPTED",
      "analysisDetailsUser": "User analysis details",
      "analysisDetailsPsp": "PSP confirmed fraudulent transaction"
    },
    "chargebacks": [
      {
        "status": "SUCCESS",
        "infoText": "Chargeback successful",
        "errorDescriptor": null,
        "amount": 1000.50,
        "createdAt": "2026-01-16T09:20:00Z",
        "updatedAt": "2026-01-16T10:30:00Z"
      }
    ]
  }
}

Response Error Codes ​


Back to MED API Overview