Reembolsar uma order - Orders - Mercado Pago Developers
Reembolsar uma order

Este endpoint permite criar uma devolução total ou parcial de uma transação de pagamento associada a uma order para Mercado Pago Point. Para um reembolso total, o body da solicitação deve ficar vazio, enquanto que para um reembolso parcial, você deve indicar o valor a ser reembolsado junto com o identificador da transação de pagamento a ser devolvida, desde que a soma das devoluções não exceda o valor total da transação. Os reembolsos parciais estão disponíveis para pagamentos que foram realizados com cartão e códigos QR. Ambos os tipos de reembolsos podem ser realizados sujeitos às seguintes condições: para pagamentos efetuados com cartões físicos, até 90 dias após o pagamento; para pagamentos feitos através da Edenred, até às 23:59:59 do mesmo dia em que o pagamento foi realizado; para pagamentos feitos com Pluxee, até 5 dias úteis após o pagamento. Além disso, apenas orders com "status=processed" podem ser reembolsadas. Em caso de sucesso, a requisição retornará uma resposta com o status 201

POST

https://api.mercadopago.com/v1/orders/{order_id}/refund
Request parameters
Path
order_id
string

OBRIGATÓRIO

ID da order que contém a transação de pagamento associada para ser reembolsada. Esse valor é retornado na resposta à requisição "Criar order".
Header
X-Idempotency-Key
string

OBRIGATÓRIO

Esta função permite repetir solicitações de forma segura, sem o risco de realizar a mesma ação mais de uma vez por engano. Isso é útil para evitar erros, como a criação de dois pagamentos idênticos. Para garantir que cad...Ver mais
Body
transactions
array
Contém informações sobre a transação associada à order que será reembolsada. Este array é opcional e deve ser enviado apenas para reembolsos parciais. Não envie este nodo para um reembolso total.
Response parameters
id
string
Identificador da order reembolsada, recebido na resposta à sua criação.
status
string
Status atual da order ou da transação.
refunded: A order foi reembolsada com sucesso (reembolso total).
processed: O pagamento da order foi processado. Este status é retornado quando um reembolso parcial é realizado e ainda há saldo restante na order.
status_detail
string
Detalhes sobre o status do reembolso. É devolvido exclusivamente quando a order é reembolsada através da API.
refunded: A order foi reembolsada com sucesso (reembolso total).
partially_refunded: A order foi parcialmente reembolsada. Uma parte do valor da transação foi devolvida, mas ainda há saldo restante.
transactions
object
Contém informações sobre a transação associada a uma order.
Erros

400Erro.

empty_required_header

O header "X-Idempotency-Key" é requerido e não foi enviado. Faça a requisição novamente incluindo-o.

invalid_path_param

O "order_id" fornecido no path da requisição tem um formato inválido. Ele deve começar com o prefixo "ORD" e ser seguido por 26 caracteres. Verifique e forneça um ID válido para tentar novamente.

unsupported_partially_refunds

Devido a validações internas, a order não suporta reembolsos parciais.

refund_amount_exceeds

O valor do reembolso excede o valor disponível. Verifique se o valor solicitado é menor ou igual ao saldo disponível na order.

401Erro.

unauthorized

O valor enviado como Access Token está incorreto. Verifique e tente a enviar requisição novamente com o valor correto.

user_not_authorized

Usuário não autorizado para realizar esta ação.

403Erro.

partial_refund_forbidden_with_tips

Reembolsos parciais proibidos quando a order tem gorjetas.

404Erro.

order_not_found

O valor enviado como Access Token está incorreto, razão pela qual a order não pode ser encontrada. Verifique e tente a enviar requisição novamente com o valor correto.

transaction_not_found

A transação não foi encontrada. Verifique se o ID da transação enviado no corpo da requisição está correto e pertence à order especificada.

409Erro.

idempotency_key_already_used

O valor enviado como header de idempotência já foi utilizado em uma solicitação diferente em um período menor que 24 horas. Por favor, tente a solicitação novamente enviando um novo valor.

order_already_refunded

A order já foi reembolsada.

cannot_refund_order

O status da order não permite o reembolso.

refund_period_exceeded

Foi excedido o tempo limite permitido para fazer um reembolso da order.

action_not_allowed_for_current_state

Ação não permitida pelo status atual do pagamento.

refund_in_progress

Reembolso em andamento, aguarde alguns minutos.

movement_operations_pending

A order tem movimentos pendentes, aguarde alguns minutos.

422Erro.

payment_not_refundable

Não é possível realizar o reembolso deste pagamento.

amount_not_refundable

O valor não pode ser reembolsado, tente com outro valor.

max_refunds_exceeded

Foi excedido o número máximo de reembolsos para esta order.

425Erro.

order_payment_not_yet_enabled_for_refund

A order ainda não está habilitada para o reembolso, tente novamente.

428Erro.

insufficient_money_for_refund

Não é possível realizar o reembolso, saldo insuficiente na conta.

500Erro.

idempotency_validation_failed

Falha na validação. Tente enviar a solicitação novamente.

500

Erro genérico. Tente enviar a solicitação novamente.

Request
curl -X POST \
    'https://api.mercadopago.com/v1/orders/{order_id}/refund'\
    -H 'Content-Type: application/json' \
       -H 'X-Idempotency-Key: 0d5020ed-1af6-469c-ae06-c3bec19954bb' \
       -H 'Authorization: Bearer APP_USR-8*********932064-12*********edf6d3c99*********2236c703f*********668' \
    -d '{
  "transactions": [
    {
      "id": "PAY01J67CQQH5904WDBVZEM4JMEP3",
      "amount": "25"
    }
  ]
}'
Response
{
  "id": "ORD0000ABCD222233334444555566",
  "status": "refunded",
  "status_detail": "refunded",
  "transactions": {
    "refunds": [
      {
        "id": "REF01J67CQQH5904WDBVZEM1234D",
        "transaction_id": "PAY01J67CQQH5904WDBVZEM4JMEP3",
        "reference_id": "12345678",
        "amount": "47",
        "status": "processed"
      }
    ]
  }
}