Skip to content

Listar MED

Lista os processos MED (Mecanismo Especial de Devolução) associados à conta.

O MED é um mecanismo do Banco Central para recuperação de valores em casos de fraude ou falha operacional no sistema PIX.

Endpoint

GET /api/external/med

Headers

HeaderTipoObrigatórioDescrição
AuthorizationStringSimApiKey {client_id}:{client_secret}
X-Key-CaseStringNãoDefina como camelCase para receber os campos da resposta em camelCase (padrão é snake_case)

Permissões

Este endpoint requer a permissão payment:read na API Key. Chaves sem essa permissão recebem HTTP 403.

Exemplo

bash
curl -X GET https://api.minhakonta.com/api/external/med \
  -H "Authorization: ApiKey $CLIENT_ID:$CLIENT_SECRET"

Sem paginação nativa

Este endpoint consulta o provider PIX/BACEN em tempo real e não aceita parâmetros de paginação (page/per_page/limit). Todos os MEDs vinculados à entidade são retornados em uma única resposta. Para grandes volumes, filtre localmente no seu sistema após receber o array.

Resposta de Sucesso (200)

json
{
  "worked": true,
  "meds": [
    {
      "id": "MED20260307001",
      "type": "REFUND_REQUEST",
      "status": "ACKNOWLEDGED",
      "amount": 50000,
      "original_end_to_end_id": "E04838403202603071530000001",
      "created_at": "2026-03-07T18:00:00Z"
    },
    {
      "id": "MED20260305002",
      "type": "REFUND_CANCELLED",
      "status": "CLOSED",
      "amount": 15000,
      "original_end_to_end_id": "E04838403202603051200000003",
      "created_at": "2026-03-05T14:30:00Z"
    }
  ]
}
CampoTipoDescrição
workedBooleantrue indica sucesso na operação
medsArrayLista de processos MED
meds[].idStringIdentificador único do MED
meds[].typeStringTipo do MED (veja tabela abaixo)
meds[].statusStringStatus atual do processo
meds[].amountIntegerValor em unidades base (÷ 10.000 para reais). 50000 = R$ 5,00
meds[].original_end_to_end_idStringE2E da transação PIX original
meds[].created_atStringData de abertura (ISO 8601)

Tipos de MED

TipoDescrição
REFUND_REQUESTSolicitação de devolução (fraude, golpe ou acordo)
REFUND_CANCELLEDCancelamento de solicitação de devolução anterior

Status do MED

Valores retornados pelo provider PIX (PIX/BACEN) em UPPERCASE. A API repassa o valor tal como recebido - não há normalização.

StatusDescriçãoDecisão final
ACKNOWLEDGEDMED recebido e reconhecido pelo participante, em análiseNão - aguarda defesa ou prazo
CLOSEDMED finalizado pelo participanteSim - veja analysisResult em med-detail para distinguir AGREED (devolução executada) de DISAGREED (defesa aceita, sem devolução)
CANCELLEDMED cancelado pelo solicitante antes da análiseSim - nenhum valor foi bloqueado nem devolvido

Status é uppercase

Os status do MED são sempre retornados em MAIÚSCULAS. Se o seu filtro espera minúsculas (pending/accepted/closed), ele não vai encontrar nenhuma linha. Esta é uma diferença consciente em relação aos status de transação PIX (lowercase) - MED segue a convenção BACEN original.

Correlação com transação original

Use o campo original_end_to_end_id para localizar a transação PIX original que motivou o MED. Consulte via GET /api/external/transactions/:id ou GET /api/external/transactions/ref/:external_id se você armazenou o external_id.

Retorno em ambientes dev/homologação

Este endpoint consulta o provider PIX diretamente - não lê de tabela local. Em dev/homologação pode retornar array vazio se o provedor PIX não tiver MEDs de teste para a entidade configurada. Em produção, retorna a lista real de processos MED da sua conta conforme repassada pelo PIX/BACEN.

Falhas no provedor retornam array vazio

Se houver indisponibilidade temporária do provedor PIX, o endpoint retorna {"worked": true, "meds": []} (silenciosamente, sem 5xx). Se você recebe array vazio de forma persistente enquanto espera MEDs, consulte o suporte para verificar se há indisponibilidade do provedor.

Resposta de Sucesso -- Sem MEDs (200)

json
{
  "worked": true,
  "meds": []
}

Resposta de Erro (401)

json
{
  "worked": false,
  "errors": {
    "unauthorized": "Missing API key credentials. Use Authorization: ApiKey <client_id>:<client_secret>"
  }
}

Valores em disputa

Quando um MED exige análise, o valor disputado pode ficar temporariamente reservado e aparecer em pending até a decisão final.

Quando o MED é resolvido (CLOSED):

  • AnalysisResult=AGREED indica contestação aceita e devolução executada.
  • AnalysisResult=DISAGREED indica contestação rejeitada ou defesa aceita, sem devolução.

Assine os webhooks pix.infraction.created, pix.refund.requested, pix.infraction.defense_submitted e pix.infraction.resolved para acompanhar cada etapa. Para responder um MED pela API, use POST /api/external/med/:id/defense com permissão payment:write. Ver Infrações.

Minha Konta Instituição de Pagamento - ISPB 39929224