> ## Documentation Index
> Fetch the complete documentation index at: https://docs-finance.superpagamentos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Solicitar reembolso

> Solicite a devolução total ou parcial de uma transação Pix paga.

<Info>
  Essa rota utiliza os certificados e o Bearer Token de **Cash In**.
</Info>

<Warning>
  O prazo máximo para reembolsos de transações é de **90 dias** após a data de pagamento.
</Warning>

## Certificados

Esta rota usa autenticação mútua (mTLS). Envie o certificado de **Cash In**, a chave e a senha na requisição:

<ParamField path="--cert" type="file" required>
  Certificado de Cash In do cliente (`client.crt`).
</ParamField>

<ParamField path="--key" type="file" required>
  Chave privada do cliente (`client.key`).
</ParamField>

<ParamField path="--pass" type="string" required>
  Senha para descriptografar a chave `.key`, enviada por e-mail junto com os certificados.
</ParamField>

## Headers

<ParamField header="Content-Type" type="string" required>
  Formato do corpo da requisição. Use `application/json`.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Bearer Token de Cash In. Formato: `Bearer {access_token}`.
</ParamField>

## Path

<ParamField path="e2eid" type="string" required>
  E2E da transação paga sobre a qual será feita a devolução.
</ParamField>

<ParamField path="id" type="string" required>
  ID único da devolução, gerado por você. Deve ser único por E2E.
</ParamField>

## Body

<ParamField body="valor" type="string" required>
  Valor a ser reembolsado. Pode ser parcial. Exemplo: `"50.00"`.
</ParamField>

<ParamField body="natureza" type="string">
  Natureza da devolução. `ORIGINAL` representa Devolução Padrão. `RETIRADA` representa devolução por Pix Saque ou Troco.
</ParamField>

<ParamField body="descricao" type="string">
  Motivo da devolução.
</ParamField>

## Resposta

<ResponseField name="id" type="string">
  ID da devolução informado por você na requisição.
</ResponseField>

<ResponseField name="rtrId" type="string">
  Identificador da devolução gerado pelo SPI.
</ResponseField>

<ResponseField name="valor" type="string">
  Valor reembolsado.
</ResponseField>

<ResponseField name="horario" type="object">
  Datas da devolução (`solicitacao`).
</ResponseField>

<ResponseField name="status" type="string">
  Status da devolução. Exemplos: `EM_PROCESSAMENTO`, `DEVOLVIDO`, `NAO_REALIZADO`.
</ResponseField>

<ResponseField name="natureza" type="string">
  Natureza da devolução aplicada.
</ResponseField>

<ResponseField name="descricao" type="string">
  Motivo da devolução.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X PUT "https://api.pix.basspago.com.br/pix/E12345678202607211307a1b2c3d4e5f/devolucao/dev-90210-01" \
    --cert ./client.crt \
    --key ./client.key \
    --pass "SUA_SENHA_DO_CERTIFICADO" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer {access_token}" \
    -d '{
      "valor": "49.90",
      "natureza": "ORIGINAL",
      "descricao": "Devolução solicitada pelo cliente"
    }'
  ```

  ```php PHP theme={null}
  <?php

  $e2eid = 'E12345678202607211307a1b2c3d4e5f';
  $id = 'dev-90210-01';
  $ch = curl_init("https://api.pix.basspago.com.br/pix/{$e2eid}/devolucao/{$id}");

  curl_setopt_array($ch, [
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_CUSTOMREQUEST => 'PUT',
      CURLOPT_SSLCERT => './client.crt',
      CURLOPT_SSLKEY => './client.key',
      CURLOPT_KEYPASSWD => 'SUA_SENHA_DO_CERTIFICADO',
      CURLOPT_HTTPHEADER => [
          'Content-Type: application/json',
          'Authorization: Bearer {access_token}',
      ],
      CURLOPT_POSTFIELDS => json_encode([
          'valor' => '49.90',
          'natureza' => 'ORIGINAL',
          'descricao' => 'Devolução solicitada pelo cliente',
      ]),
  ]);

  $response = curl_exec($ch);
  curl_close($ch);

  echo $response;
  ```

  ```javascript Node.js theme={null}
  import fs from "node:fs";
  import https from "node:https";
  import axios from "axios";

  const agent = new https.Agent({
    cert: fs.readFileSync("./client.crt"),
    key: fs.readFileSync("./client.key"),
    passphrase: "SUA_SENHA_DO_CERTIFICADO",
  });

  const e2eid = "E12345678202607211307a1b2c3d4e5f";
  const id = "dev-90210-01";

  const { data } = await axios.put(
    `https://api.pix.basspago.com.br/pix/${e2eid}/devolucao/${id}`,
    {
      valor: "49.90",
      natureza: "ORIGINAL",
      descricao: "Devolução solicitada pelo cliente",
    },
    {
      httpsAgent: agent,
      headers: { Authorization: "Bearer {access_token}" },
    }
  );

  console.log(data);
  ```
</RequestExample>

<ResponseExample>
  ```json 201 - Devolução criada theme={null}
  {
    "id": "dev-90210-01",
    "rtrId": "D12345678202607211100f6e5d4c3b2a",
    "valor": "49.90",
    "horario": {
      "solicitacao": "2026-07-21T11:00:00.000Z"
    },
    "status": "EM_PROCESSAMENTO",
    "natureza": "ORIGINAL",
    "descricao": "Devolução solicitada pelo cliente"
  }
  ```
</ResponseExample>
