Skip to main content

Visão Geral

O endpoint PUT /pix/:e2eid/devolucao/:id solicita a devolução de um PIX recebido. Utiliza o End to End ID (e2eid) da transação original e um identificador de devolução gerado pelo cliente.
A devolução pode ser total ou parcial. A soma de todas as devoluções não pode ultrapassar o valor original da transação.

Endpoint

PUT /pix/{e2eid}/devolucao/{id}

Autenticação

Authorization
string
required
Token Bearer obtido via /oauth/token.

Parâmetros de URL

e2eid
string
required
End to End ID - identificador único da transação PIX original. Contém exatamente 32 caracteres alfanuméricos.Exemplo: E12345678901234567890123456789012
id
string
required
Identificação gerada pelo cliente para representar a devolução. Entre 1 e 35 caracteres.Exemplo: D123456789

Request Body

valor
string
required
Valor solicitado para devolução. String no formato decimal com 2 casas.A soma dos valores de todas as devoluções não pode ultrapassar o valor total do PIX original.Exemplo: "7.89"
natureza
string
default:"ORIGINAL"
Indica a natureza da devolução solicitada:
  • ORIGINAL: Devolução de PIX comum ou valor da compra em PIX Troco
  • RETIRADA: Devolução de PIX Saque ou valor do troco em PIX Troco
descricao
string
Texto a ser apresentado ao pagador contendo informações sobre a devolução.Máximo: 140 caracteres.

Request

curl -X PUT https://api.avista.global/pix/E12345678901234567890123456789012/devolucao/D123456789 \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "valor": "7.89",
    "natureza": "ORIGINAL",
    "descricao": "Devolução solicitada pelo recebedor"
  }'

Response

{
  "id": "D123456789",
  "rtrId": "D12345678901234567890123456789012",
  "valor": "7.89",
  "natureza": "ORIGINAL",
  "descricao": "Devolução solicitada pelo recebedor",
  "horario": {
    "solicitacao": "2024-01-15T10:30:00.000Z"
  },
  "status": "EM_PROCESSAMENTO"
}

Campos da Resposta

id
string
Identificação gerada pelo cliente para representar a devolução (mesmo valor enviado na URL).
rtrId
string
Identificador único da transação de devolução. Contém 32 caracteres.
valor
string
Valor da devolução no formato string com 2 casas decimais.
natureza
string
Natureza da devolução:
  • ORIGINAL: Devolução comum
  • RETIRADA: Devolução de saque
  • MED_OPERACIONAL: Devolução MED por falha operacional
  • MED_FRAUDE: Devolução MED por suspeita de fraude
descricao
string
Mensagem ao pagador relativa à devolução.
horario
object
status
string
Status da devolução:
  • EM_PROCESSAMENTO: Devolução em processamento
  • DEVOLVIDO: Devolução realizada com sucesso
  • NAO_REALIZADO: Devolução não realizada (falha)
motivo
string
Campo opcional com detalhes sobre o motivo do status atual. Preenchido principalmente em caso de falha.

Status da Devolução

Webhook de Devolução

Quando a devolução for processada, você receberá um webhook V2 do tipo REFUND:
{
  "type": "REFUND",
  "data": {
    "id": 123,
    "txId": "original-txid",
    "status": "REFUNDED",
    "payment": {
      "amount": "100.00",
      "currency": "BRL"
    },
    "refunds": [
      {
        "status": "LIQUIDATED",
        "payment": {
          "amount": 7.89,
          "currency": "BRL"
        },
        "endToEndId": "D12345678901234567890123456789012",
        "eventDate": "2024-01-15T10:30:00.000Z",
        "information": "Devolução solicitada pelo recebedor"
      }
    ],
    "endToEndId": "E12345678901234567890123456789012",
    "creditDebitType": "DEBIT"
  }
}

Webhooks REFUND

Veja a documentação completa do webhook REFUND

Natureza da Devolução

NaturezaDescrição
ORIGINALDevolução de PIX comum
RETIRADADevolução de PIX Saque ou Troco
MED_OPERACIONALMED por falha operacional
MED_FRAUDEMED por suspeita de fraude
Os valores MED_OPERACIONAL e MED_FRAUDE são retornados apenas na resposta, não podem ser enviados na requisição. São utilizados em casos específicos de Mecanismo Especial de Devolução (MED).

Prazo para Devolução

Devoluções podem ser solicitadas em até 89 dias após o recebimento do PIX original, conforme regulamentação do Banco Central.

Devoluções Parciais

Você pode solicitar múltiplas devoluções parciais:
// Transação original: R$ 100,00

// Primeira devolução: R$ 30,00
await solicitarDevolucao(e2eid, 'DEV001', '30.00');
// Saldo disponível para devolução: R$ 70,00

// Segunda devolução: R$ 50,00
await solicitarDevolucao(e2eid, 'DEV002', '50.00');
// Saldo disponível para devolução: R$ 20,00

// Terceira devolução: R$ 25,00 - ERRO!
await solicitarDevolucao(e2eid, 'DEV003', '25.00');
// Falha: valor excede saldo disponível (R$ 20,00)

Erros Comuns

CódigoErroSolução
400Valor inválidoUse formato “7.89” (string com 2 decimais)
400Valor excede disponívelVerifique saldo disponível para devolução
404Transação não encontradaVerifique o e2eid informado
404Transação não é do tipo recebimentoDevoluções só para PIX recebidos
422Prazo expiradoDevoluções só até 89 dias após recebimento

Próximos Passos