Skip to main content
POST
/
v1
/
mpesa
/
reverse
Request M-Pesa reversal
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({transactionId: 'txn_01j7b6f9p5y9h', narration: 'Customer refund'})
};

fetch('https://api.fingopay.io/v1/mpesa/reverse', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "status": "success",
  "message": "Reversal initiated successfully",
  "data": {
    "transactionId": "txn_01j7refund"
  }
}

Authorizations

Authorization
string
header
required

Use your API key as a Bearer token. Example: Authorization: Bearer sk_live_...

Headers

Idempotency-Key
string<uuid>

Unique key to safely retry POST without duplicates. Required in live environment.

Body

application/json
transactionId
string
required

Original transactionId (public ID) to reverse.

Example:

"txn_01j7b6f9p5y9h"

narration
string

Optional narration for the reversal request. Maximum 140 characters.

Maximum string length: 140
Example:

"Customer refund"

Response

Accepted — reversal will be processed asynchronously.

status
string
required
Example:

"success"

message
string
required
Example:

"Reversal initiated successfully"

data
object
required