---
title: "Reverse a succeeded PayMongo Wallet debit"
method: POST
path: "/v1/paymongo_wallet/transactions/{id}/reverse"
tags: ["PayMongo Wallet"]
---

# Reverse a succeeded PayMongo Wallet debit

`POST /v1/paymongo_wallet/transactions/{id}/reverse`

## Request

- Base URL: `https://ewallets-api.paymongo.com`
- URL: `https://ewallets-api.paymongo.com/v1/paymongo_wallet/transactions/{id}/reverse`
- Auth: HTTP basic

Sends a succeeded debit back from the settlement account to the payer through the Transfers API. Meant for orphaned debits whose payment core-api never created. The transaction moves to reversed once Transfers confirms the reversal; until then it stays succeeded with reversal_transfer_id set and a repeated call polls it. Only a succeeded transaction can be reversed.

## Path parameters

- `id` string, required

## Request body

- ReverseTransactionRequestDTO: Request payload for sending a succeeded debit back to the payer. Used for orphaned debits whose payment was never created; refunds of a completed payment are a separate path.
  - `callback_url` string

## Response `200`

Reversal submitted or already applied

- object: Standard response containing data and its metadata if any
  - `data` TransactionResponseDTO: One PayMongo Wallet debit attempt. One row exists per attach attempt.
    - `amount` integer
    - `attach_attempt_id` string
    - `created_at` string
    - `currency` string
    - `destination_account_number` string
    - `failed_code` 'insufficient_funds' | 'closed_loop_violation' | 'wallet_limit_exceeded' | 'wallet_inactive'
    - `id` string
    - `link_id` string
    - `livemode` boolean
    - `organization_id` string
    - `payer_account_number` string
    - `reversal_transfer_id` string
    - `reversed_at` string
    - `succeeded_at` string
    - `transaction_status` 'pending' | 'succeeded' | 'failed' | 'reversed' | 'expired'
    - `transfer_id` string
    - `updated_at` string
  - `has_more` boolean

## Other responses

- `400`: Invalid URI or JSON parameters or validation errors
- `401`: Missing or invalid credentials
- `404`: Transaction not found
- `422`: Transaction is not succeeded, or Transfers rejected the reversal
- `500`: Internal server error
- `503`: Wallets or Transfers unavailable

---

[API](https://skmtc.dev/paymongo/apis/ewallets.md) - [All operations](https://skmtc.dev/paymongo/apis/ewallets/llms.txt) - [OpenAPI document](https://skmtc.dev/paymongo/apis/ewallets/revisions/a445ca65c132?raw)
