Please find complete documentation from https://docs.transaction-monitor.io/.
- Refund Status Callback
Blu Penguin Merchant API v1 (v1)
- Mock serverhttps://docs.transaction-monitor.io/_mock/blupenguin_openapi_v1/refunds/resend-callback
- Blu Penguin Merchant API sandboxhttps://api.sandbox.transaction-monitor.io/refunds/resend-callback
- Blu Penguin Merchant API productionhttps://api.transaction-monitor.io/refunds/resend-callback
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.transaction-monitor.io/_mock/blupenguin_openapi_v1/refunds/resend-callback \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"refundId": "f4401bd2-1568-4140-bf2d-eb77d2b2b639"
}'Request has been processed by Blu Penguin
The refundId of the refund transaction.
Possible initiation statuses:
ACCEPTED- The manual action request has been accepted by Blu Penguin for processing.REJECTED- The manual action request has been rejected by Blu Penguin. See rejectionReason for details.FAILED- The manual action request has failed during submitting for processing due to internal reasons.
{ "payoutId": "f4401bd2-1568-4140-bf2d-eb77d2b2b639", "status": "ACCEPTED" }
Request
If you have configured callbacks, Blu Penguin will POST a callback to your configured callback URL for each refund when it reaches a final status. Read more about handling callbacks and callback URLs.
If you have not configured callbacks, you can always call our Check Refund Status endpoint to get the latest status and details of a specific refund request.
Headers related to signatures will only be included if you have enabled "Sign all callbacks" from the Blu Penguin Dashboard. Read more about it from the Blu Penguin Dashboard documentation.
Signature of the request according to RFC-9421.
Signature-Input according to RFC-9421
Timestamp when signature was created. This is a custom field and is not part of RFC-9421.
Expected signature algorithm of the response according to RFC-9421.
Expected digest algorithm of the response according to RFC-9421.
A UUIDv4 based ID specified by you, that uniquely identifies the refund.
The final status of the payment.
COMPLETED- The payment has been successfully processed.FAILED- The payment request has been processed, but failed.
The amount to be collected (deposit) or disbursed (payout or refund).
Amount must follow below requirements or the request will be rejected:
- Between zero and two decimal places can be supplied, depending on what the specific MMO supports. Learn about all MMO supported decimal places.
- The minimum and maximum amount depends on the limits of the specific MMO. You can find them from the Active Configuration endpoint.
- Leading zeroes are not permitted except where the value is less than 1. For any value less than one, one and only one leading zero must be supplied.
- Trailing zeroes are permitted.
Valid examples: 5, 5.0, 5.00, 5.5, 5.55, 5555555, 0.5
Not valid examples: 5., 5.555, 5555555555555555555, .5, -5.5, 00.5, 00.00, 00001.32
The currency in which the amount is specified.
Format must be the ISO 4217 three character currency code in upper case. Read more from Wikipedia.
You can find all the supported currencies that the specific correspondent supports from here.
The active configuration endpoint provides the list of correspondents configured for your account together with the currencies.
The country in which the MMO operates.
Format is ISO 3166-1 alpha-3, three character country code in upper case. Read more from Wikipedia.
The correspondent code refers to the specific MMO that the specified phone number (MSISDN) has an active mobile money wallet with.
You can find all the supported correspondents listed here.
The active configuration endpoint provides the list of correspondents configured for your account.
You can use the predict correspondent enpoint to predict the correct correspondent to use based on the phone number (MSISDN).
The phone number (MSISDN) of the recipient or payer must be specified as the value of the address.
The type of financial address. At the moment, only MSISDN is supported as the financial address.
The phone number (MSISDN) of the payer or recipient. The format is described in Wikipedia.
MSISDN validation has following rules:
- Only digits without whitespaces or any other separators or prefixes like '+'.
- Should not start with zero.
- Country code is mandatory.
- Should not exceed or be less than the valid length of specified country.
Valid examples for Zambia: 260763456789
Not valid examples for Zambia: +260763456789, 260 763 456789, 260-7634-56789, 0260763456789, 2607634567, 260763456789543, 999558708954, 37255870895
The timestamp for when you initiated the refund process. Format defined by 'date-time' in RFC3339 section 5.6 from IETF
Short description for the transaction. Depending on the specific MMO performing the transaction this message may be visible to the customer in the SMS receipt or within their transaction history.
Must be between 4 and 22 alphanumeric characters.
The timestamp of when the refund was created in the Blu Penguin platform. Format defined by 'date-time' in RFC3339 section 5.6 from IETF
When the payment was received by the recipient. Format defined by 'date-time' in RFC3339 section 5.6 from IETF
The financial ids used by the MMO to uniquely identify this payment
- Mock serverhttps://docs.transaction-monitor.io/_mock/blupenguin_openapi_v1/refundCallback
- Blu Penguin Merchant API sandboxhttps://api.sandbox.transaction-monitor.io/refundCallback
- Blu Penguin Merchant API productionhttps://api.transaction-monitor.io/refundCallback
{ "refundId": "f4401bd2-1568-4140-bf2d-eb77d2b2b639", "status": "COMPLETED", "amount": "15", "currency": "ZMW", "country": "ZMB", "correspondent": "MTN_MOMO_ZMB", "recipient": { "type": "MSISDN", "address": { … } }, "customerTimestamp": "2020-02-21T17:32:28Z", "statementDescription": "Note of 4 to 22 chars", "created": "2020-02-21T17:32:29Z", "receivedByRecipient": "2020-02-21T17:32:30Z", "correspondentIds": { "MTN_INIT": "ABC123", "MTN_FINAL": "DEF456" }, "failureReason": { "failureCode": "OTHER_ERROR", "failureMessage": "Recipient's address is blocked" }, "metadata": { "orderId": "ORD-123456789", "customerId": "customer@email.com" } }