Passo-a-passo - Devolvendo uma cobrança paga

Passo-a-passo - Devolvendo uma cobrança paga

1. Primeiro passo: Possuir uma cobrança paga

Para realizar a devolução você precisa ter uma cobrança em um estado que permita a devolução, acima você encontra os status correspondentes para cada forma de pagamento passíveis dessa operação;

Ao gerar a cobrança você terá no retorno da requisição uma serie de informações entre eles o id (identificador PagSeguro) da cobrança além é claro de um link hypermedia destinado exclusivamente a essa operação com o id já montado na URL.

Veja um exemplo de resposta resumida abaixo contendo esses dois parâmetros:

{
  "id": "CHAR_D32A01A9-92A6-4755-B21D-7B6A1291F7AD",
  "status": "PAID",
   ...
  "links": [
    {
      "rel": "CHARGE.CANCEL",
      "href": "https://sandbox.api.pagseguro.com/charges/CHAR_D32A01A9-92A6-4755-B21D-7B6A1291F7AD/cancel",
      "media": "application/json",
      "type": "POST"
    },
    ...
  ]
}

O exemplo de JSON acima foi editado para mostrar apenas os parâmetros necessários para o passo seguinte.

📘

Referência API

Para detalhes de todos os parâmetros disponíveis nesse recurso consulte nossa Referência API do recurso Cobrança aqui.

2. Segundo passo: Devolvendo o valor pago

Com o id de cobrança ou o links[].href referenrte ao links[].rel = CHARGE.CANCEL em mão você poderá realizar a requisição de devolução da cobrança.

Essa etapa será uma requisição no recurso /charges/{id}/cancel onde o {id} se refere ao identificador PagSeguro da cobrança.

Você poderá realizar a devolução tanto em valor integral da cobrança quando um valor parcial, na requisição você sempre deve informar o valor ao qual você deseja devolver.

Devolução total

Veja exemplo abaixo de uma devolução total:

{
  "amount": {
    "value": 1000
  }
}
{
  "id": "CHAR_be4545a8-8e62-4d44-85fa-66ccaf2329af",
  "reference_id": "e853052b-046c-4714-aa6b-f05f50af34a9",
  "status": "CANCELED",
  "created_at": "2019-08-21T15:14:58.121-03:00",
  "paid_at": "2019-08-21T15:14:58.121-03:00",
  "description": "Motivo da cobranca",
  "amount": {
    "value": 1000,
    "currency": "BRL",
    "summary": {
      "total": 1000,
      "paid": 1000,
      "refunded": 1000
    }
  },
  "payment_response": {
    "code": "20000",
    "message": "SUCESSO",
    "reference": "1566411299393"
  },
  "payment_method": {
    "type": "CREDIT_CARD",
    "installments": 1,
    "capture": true,
    "card": {
      "brand": "VISA",
      "first_digits": "411111",
      "last_digits": "1111",
      "exp_month": "12",
      "exp_year": "2026",
      "holder": {
        "name": "Jose da Silva"
      }
    }
  },
  "links": [],
  "notification_urls": [
    "https://api.runscope.com/radar/inbound/f9e7bcbd-50dc-4821-8959-9854796d01c3"
  ],
  "metadata": {}
}

Devolução parcial

Veja exemplo abaixo de uma devolução parcial:

{
  "amount": {
    "value": 500
  }
}
{
  "id": "CHAR_be4545a8-8e62-4d44-85fa-66ccaf2329af",
  "reference_id": "e853052b-046c-4714-aa6b-f05f50af34a9",
  "status": "PAID",
  "created_at": "2019-08-21T15:14:58.121-03:00",
  "paid_at": "2019-08-21T15:14:58.121-03:00",
  "description": "Motivo da cobranca",
  "amount": {
    "value": 1000,
    "currency": "BRL",
    "summary": {
      "total": 1000,
      "paid": 1000,
      "refunded": 500
    }
  },
  "payment_response": {
    "code": "20000",
    "message": "SUCESSO",
    "reference": "1566411299393"
  },
  "payment_method": {
    "type": "CREDIT_CARD",
    "installments": 1,
    "capture": true,
    "card": {
      "brand": "VISA",
      "first_digits": "411111",
      "last_digits": "1111",
      "exp_month": "12",
      "exp_year": "2026",
      "holder": {
        "name": "Jose da Silva"
      }
    }
  },
  "links": [],
  "notification_urls": [
    "https://api.runscope.com/radar/inbound/f9e7bcbd-50dc-4821-8959-9854796d01c3"
  ],
  "metadata": {}
}

❗️

Devolução parcial não muda status da cobrança

Atenção quando você realizar uma devolução do valor parcial da cobrança o status não será alterado, ele permanecera com status de Pago (PAID).

Utilize o parâmetro amount.summary.refunded para confirmar o valor que foi devolvido ao comprador.

3. Terceiro passo: Tratar a resposta de cobrança

Nessa segunda etapa você deve tratar o retorno da API de devolução e dar um feedback amigável ao seu cliente, seja positivo ou negativo.

Para os casos de feedback positivo você pode:

  • Confirmar ao cliente todo o valor já devolvido com base no parâmetro amount.summary.refunded.

Para os casos de feedback negativo você pode:

  • Informar que você fará novas tentativas de devolução conforme disponibilidade do recurso.

📘

Referência API

Para detalhes de todos os parâmetros disponíveis nesse recurso consulte nossa Referência API do recurso Cobrança aqui.

© 1996- Todos os direitos reservados.

PAGSEGURO INTERNET INSTITUIÇÃO DE PAGAMENTO S/A - CNPJ/MF 08.561.701/0001-01

Av. Brigadeiro Faria Lima, 1.384, São Paulo - SP - CEP 01451-001