{
"ExternalData": {
"ExternalProcessingDate": 1769800102,
"ExternalProviderReference": "reverse-stripe-{{$guid}}",
"ExternalMerchantReference": "order-{{$guid}}",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
}
}
{
"Amount": 10000,
"Currency": "EUR",
"PlatformFeesAmount": 0,
"ExternalData": {
"ExternalProcessingDate": 1769800102,
"ExternalProviderReference": "reverse-stripe-{{$guid}}",
"ExternalMerchantReference": "order-{{$guid}}",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
},
"LineItems": [
{
"Id": "int_li_019c104e-6361-7f41-b3bf-189c6a305604",
"Amount": 10000
}
]
}
// idempotencyKey is null in this example
PayInIntent reverseResult = api.getPayInApi().reversePayInIntentRefund(intent.getId(), intent.getRefund().getId(), reverseToBeCreated, null);
await Api.PayIns.PartialReversePayInIntentRefundAsync(dto, intent.Id, intent.Refund.Id);
await Api.PayIns.FullReversePayInIntentRefundAsync(dto, intent.Id, intent.Refund.Id);
api.PayIns.reversePayInIntentRefund(intent.Id, intent.Refund.Id, reverseDto)
_api->PayIns->ReversePayInIntentRefund($intent->Id, $intent->Refund->Id, $reverseRefundDto);
PayInIntent.reverse_refund(intent.id, intent.refund.id, **dto)
MangoPay::PayIn::PayInIntent::Refund.reverse(intent['Id'], intent['Refund']['Id'], dto)
{
"Id": "int_019c105a-cd37-73bf-9245-e4e7a76310d5",
"Amount": 20000,
"AvailableAmountToSplit": 20000,
"UnfundedAmount": 0,
"Currency": "EUR",
"PlatformFeesAmount": 0,
"Status": "REFUND_REVERSED",
"NextActions": "REFUND, DISPUTE",
"ExternalData": {
"ExternalProcessingDate": 1769800920,
"ExternalProviderReference": "refund-stripe-e9e318a2-2f5e-4dec-90a6-010854f16861",
"ExternalMerchantReference": "order-1f895705-f0e1-4c68-9822-4cf1c62678f6",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
},
"Buyer": {
"Id": "user_m_01KF3087EDXEAK8VPD9DTMZW8N"
},
"LineItems": [
{
"Id": "int_li_019c105a-cd39-7422-a8ce-cf79862a68f2",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
},
{
"Id": "int_li_019c105a-cd39-7422-a8ce-cf79862a68f3",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
}
],
"CreationDate": 1769800912,
"ExecutionDate": 1769800924,
"Refund": {
"Id": "int_refund_019c105a-ee2a-7422-9058-96da3cf06b94"
}
}
{
"Id": "int_019c104e-6360-7540-a303-80c6c252827c",
"Amount": 10000,
"AvailableAmountToSplit": 20000,
"UnfundedAmount": 0,
"Currency": "EUR",
"PlatformFeesAmount": 0,
"Status": "CAPTURED",
"NextActions": "REFUND, DISPUTE",
"ExternalData": {
"ExternalProcessingDate": 1769800102,
"ExternalProviderReference": "refund-stripe-34a4fd98-83a6-4498-b4d4-28f4e0c916fd",
"ExternalMerchantReference": "refund-order-6e66b81d-8700-4375-956a-d7d70caef902",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
},
"Buyer": {
"Id": "user_m_01KF3087EDXEAK8VPD9DTMZW8N"
},
"LineItems": [
{
"Id": "int_li_019c104e-6361-7f41-b3bf-189c6a305604",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
},
{
"Id": "int_li_019c104e-6361-7f41-b3bf-189c6a305605",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
}
],
"CreationDate": 1769800098,
"ExecutionDate": 1769800836,
"Refund": {
"Id": "int_refund_019c104e-7294-71af-9952-b34f2fc5cca0"
}
}
Intents
Reverse an Intent Refund
Declare the reversal of a refund processed by a third-party PSP
POST
/
v3.0
/
{ClientId}
/
payins
/
intents
/
{IntentId}
/
refunds
/
{RefundId}
/
reverse
{
"ExternalData": {
"ExternalProcessingDate": 1769800102,
"ExternalProviderReference": "reverse-stripe-{{$guid}}",
"ExternalMerchantReference": "order-{{$guid}}",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
}
}
{
"Amount": 10000,
"Currency": "EUR",
"PlatformFeesAmount": 0,
"ExternalData": {
"ExternalProcessingDate": 1769800102,
"ExternalProviderReference": "reverse-stripe-{{$guid}}",
"ExternalMerchantReference": "order-{{$guid}}",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
},
"LineItems": [
{
"Id": "int_li_019c104e-6361-7f41-b3bf-189c6a305604",
"Amount": 10000
}
]
}
// idempotencyKey is null in this example
PayInIntent reverseResult = api.getPayInApi().reversePayInIntentRefund(intent.getId(), intent.getRefund().getId(), reverseToBeCreated, null);
await Api.PayIns.PartialReversePayInIntentRefundAsync(dto, intent.Id, intent.Refund.Id);
await Api.PayIns.FullReversePayInIntentRefundAsync(dto, intent.Id, intent.Refund.Id);
api.PayIns.reversePayInIntentRefund(intent.Id, intent.Refund.Id, reverseDto)
_api->PayIns->ReversePayInIntentRefund($intent->Id, $intent->Refund->Id, $reverseRefundDto);
PayInIntent.reverse_refund(intent.id, intent.refund.id, **dto)
MangoPay::PayIn::PayInIntent::Refund.reverse(intent['Id'], intent['Refund']['Id'], dto)
{
"Id": "int_019c105a-cd37-73bf-9245-e4e7a76310d5",
"Amount": 20000,
"AvailableAmountToSplit": 20000,
"UnfundedAmount": 0,
"Currency": "EUR",
"PlatformFeesAmount": 0,
"Status": "REFUND_REVERSED",
"NextActions": "REFUND, DISPUTE",
"ExternalData": {
"ExternalProcessingDate": 1769800920,
"ExternalProviderReference": "refund-stripe-e9e318a2-2f5e-4dec-90a6-010854f16861",
"ExternalMerchantReference": "order-1f895705-f0e1-4c68-9822-4cf1c62678f6",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
},
"Buyer": {
"Id": "user_m_01KF3087EDXEAK8VPD9DTMZW8N"
},
"LineItems": [
{
"Id": "int_li_019c105a-cd39-7422-a8ce-cf79862a68f2",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
},
{
"Id": "int_li_019c105a-cd39-7422-a8ce-cf79862a68f3",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
}
],
"CreationDate": 1769800912,
"ExecutionDate": 1769800924,
"Refund": {
"Id": "int_refund_019c105a-ee2a-7422-9058-96da3cf06b94"
}
}
{
"Id": "int_019c104e-6360-7540-a303-80c6c252827c",
"Amount": 10000,
"AvailableAmountToSplit": 20000,
"UnfundedAmount": 0,
"Currency": "EUR",
"PlatformFeesAmount": 0,
"Status": "CAPTURED",
"NextActions": "REFUND, DISPUTE",
"ExternalData": {
"ExternalProcessingDate": 1769800102,
"ExternalProviderReference": "refund-stripe-34a4fd98-83a6-4498-b4d4-28f4e0c916fd",
"ExternalMerchantReference": "refund-order-6e66b81d-8700-4375-956a-d7d70caef902",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
},
"Buyer": {
"Id": "user_m_01KF3087EDXEAK8VPD9DTMZW8N"
},
"LineItems": [
{
"Id": "int_li_019c104e-6361-7f41-b3bf-189c6a305604",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
},
{
"Id": "int_li_019c104e-6361-7f41-b3bf-189c6a305605",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
}
],
"CreationDate": 1769800098,
"ExecutionDate": 1769800836,
"Refund": {
"Id": "int_refund_019c104e-7294-71af-9952-b34f2fc5cca0"
}
}
This endpoint allows you to reverse an Intent Refund in full or in part if the refund processed by the third-party PSP was not successful and the funds were returned to the platform.
This endpoint effectively changes the Intent Refund
Status to REFUND_REVERSED and re-calculates the RefundedAmount of the LineItem.
You can only reverse the same amount that was refunded.
Path parameters
string
required
The unique identifier of the Intent.
Body parameters
- Full reversal
- Partial reversal
If the Intent Refund was for the full amount of the Intent, then you only need to send the
ExternalData.object
required
Information about the refund processed by the third-party PSP.
Show child attributes
Show child attributes
Unix timestamp
required
The date at which the capture was created.
string
required
The unique identifier of the capture at the provider level.
string
The unique identifier of the capture at the merchant level.
string
required
The supported third-party PSP processing the transaction.Note: The uppercase value is expected. The API returns the sentence-case value.
string
One of the supported payment methods used to process the capture.
If the Intent Refund was for part of the Intent in one or more
LineItems.Amount values, then you need to send the Amount and LineItems in the call. The LineItems.Amount and total Amount must match and be the same as the initial refund.integer
required
The amount of the Refund, required for a partial refund. The Refund
Amount must equal the sum of the Amount values refunded for all line items.integer
The currency of the intent.
integer
The amount of fees to be diverted to the platform’s Fees Wallet when the Intent is split. This value can be overridden when the Split is created.The
PlatformFees value must the sum of all line item Seller.FeesAmount values.object
required
Information about the refund processed by the third-party PSP.
Show child attributes
Show child attributes
Unix timestamp
required
The date at which the capture was created.
string
required
The unique identifier of the capture at the provider level.
string
The unique identifier of the capture at the merchant level.
string
required
The supported third-party PSP processing the transaction.Note: The uppercase value is expected. The API returns the sentence-case value.
string
One of the supported payment methods used to process the capture.
array (object)
required
Information about the amount refunded for each line item, required for a partial refund.
Responses
200 - Response parameters
200 - Response parameters
string
The unique identifier of the intent.
integer
The full amount authorized in the Intent, which must equal the sum of the total amounts of all
LineItems.integer
The remaining amount of the Intent that can be split and transferred to the sellers’ wallets.
integer
The amount needing to be settled to the Platform’s technical wallet before the Intent Splits can be executed.
integer
The currency of the intent.
integer
The amount of fees to be diverted to the platform’s Fees Wallet when the Intent is split. This value can be overridden when the Split is created.The
PlatformFees value must the sum of all line item Seller.FeesAmount values.string
The status of the Intent, as declared by the platform through Intent Captures, Refunds (and reversals), or Disputes (and decisions). Where partial actions occur, the top-level Intent
Status may differ from the Status of Intent LineItems.Intent Status values:AUTHORIZED– The IntentAmountwas authorized for acquisition by the PSP and can be captured or canceled.PARTIALLY_CAPTURED– Part of the IntentAmountfrom one or moreLineItemswas captured. The other parts are either still available for capture or cancel.CAPTURED– All of the IntentAmountwas captured. Part of it may have been subsequently refunded or disputed.CANCELLED– All of the IntentAmountwas canceled.REFUNDED– All of theCapturedAmountof allLineItemswas refunded.REFUND_REVERSED– The refund could not be completed and the funds were returned to the platform.DISPUTED– All of theCapturedAmountof allLineItemswas disputed.DEFENDED– The dispute is being defended by the platform.DISPUTED_WON– The dispute was resolved in favor of the platform.DISPUTED_LOST– The dispute was resolved against the platform.
string
The possible next actions on the intent.
object
Information about the refund processed by the third-party PSP.
Show child attributes
Show child attributes
Unix timestamp
The date at which the refund was created.
string
The unique identifier of the refund at the provider level.
string
The unique identifier of the refund at the merchant level.
string
The supported third-party PSP processing the transaction.Note: The uppercase value is expected. The API returns the sentence-case value.
string
One of the supported payment methods used to process the refund.
object
Information about the buyer.
Show child attributes
Show child attributes
string
If it exists, the unique identifier of the Mangopay user making the payment via the third-party PSP. Must be a valid Mangopay
UserId.array (object)
Information about the line items included in the intent action.
Show child attributes
Show child attributes
string
The unique identifier of the line item in Mangopay’s ecosystem.
integer
The total amount of the line item calculated as ((
UnitAmount x Quantity) - DiscountAmount).integer
The item total
CAPTURED amountinteger
The item total
REFUNDED amountinteger
The item total
DISPUTED amount.integer
The item total
COMPLETED amount.integer
The amount needing to be settled to the Platform’s technical wallet before the Intent Splits can be executed for this seller.
string
The date and time at which the Intent was created.
Unix timestamp
The date and time at which the Intent moved to
AUTHORIZED.{
"Id": "int_019c105a-cd37-73bf-9245-e4e7a76310d5",
"Amount": 20000,
"AvailableAmountToSplit": 20000,
"UnfundedAmount": 0,
"Currency": "EUR",
"PlatformFeesAmount": 0,
"Status": "REFUND_REVERSED",
"NextActions": "REFUND, DISPUTE",
"ExternalData": {
"ExternalProcessingDate": 1769800920,
"ExternalProviderReference": "refund-stripe-e9e318a2-2f5e-4dec-90a6-010854f16861",
"ExternalMerchantReference": "order-1f895705-f0e1-4c68-9822-4cf1c62678f6",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
},
"Buyer": {
"Id": "user_m_01KF3087EDXEAK8VPD9DTMZW8N"
},
"LineItems": [
{
"Id": "int_li_019c105a-cd39-7422-a8ce-cf79862a68f2",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
},
{
"Id": "int_li_019c105a-cd39-7422-a8ce-cf79862a68f3",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
}
],
"CreationDate": 1769800912,
"ExecutionDate": 1769800924,
"Refund": {
"Id": "int_refund_019c105a-ee2a-7422-9058-96da3cf06b94"
}
}
{
"Id": "int_019c104e-6360-7540-a303-80c6c252827c",
"Amount": 10000,
"AvailableAmountToSplit": 20000,
"UnfundedAmount": 0,
"Currency": "EUR",
"PlatformFeesAmount": 0,
"Status": "CAPTURED",
"NextActions": "REFUND, DISPUTE",
"ExternalData": {
"ExternalProcessingDate": 1769800102,
"ExternalProviderReference": "refund-stripe-34a4fd98-83a6-4498-b4d4-28f4e0c916fd",
"ExternalMerchantReference": "refund-order-6e66b81d-8700-4375-956a-d7d70caef902",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
},
"Buyer": {
"Id": "user_m_01KF3087EDXEAK8VPD9DTMZW8N"
},
"LineItems": [
{
"Id": "int_li_019c104e-6361-7f41-b3bf-189c6a305604",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
},
{
"Id": "int_li_019c104e-6361-7f41-b3bf-189c6a305605",
"TotalLineItemAmount": 10000,
"CapturedAmount": 10000,
"RefundedAmount": 0,
"DisputedAmount": 0,
"SplitAmount": 0,
"CancelledAmount": 0,
"UnfundedSellerAmount": 0
}
],
"CreationDate": 1769800098,
"ExecutionDate": 1769800836,
"Refund": {
"Id": "int_refund_019c104e-7294-71af-9952-b34f2fc5cca0"
}
}
{
"ExternalData": {
"ExternalProcessingDate": 1769800102,
"ExternalProviderReference": "reverse-stripe-{{$guid}}",
"ExternalMerchantReference": "order-{{$guid}}",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
}
}
{
"Amount": 10000,
"Currency": "EUR",
"PlatformFeesAmount": 0,
"ExternalData": {
"ExternalProcessingDate": 1769800102,
"ExternalProviderReference": "reverse-stripe-{{$guid}}",
"ExternalMerchantReference": "order-{{$guid}}",
"ExternalProviderName": "Stripe",
"ExternalProviderPaymentMethod": "MASTERCARD"
},
"LineItems": [
{
"Id": "int_li_019c104e-6361-7f41-b3bf-189c6a305604",
"Amount": 10000
}
]
}
// idempotencyKey is null in this example
PayInIntent reverseResult = api.getPayInApi().reversePayInIntentRefund(intent.getId(), intent.getRefund().getId(), reverseToBeCreated, null);
await Api.PayIns.PartialReversePayInIntentRefundAsync(dto, intent.Id, intent.Refund.Id);
await Api.PayIns.FullReversePayInIntentRefundAsync(dto, intent.Id, intent.Refund.Id);
api.PayIns.reversePayInIntentRefund(intent.Id, intent.Refund.Id, reverseDto)
_api->PayIns->ReversePayInIntentRefund($intent->Id, $intent->Refund->Id, $reverseRefundDto);
PayInIntent.reverse_refund(intent.id, intent.refund.id, **dto)
MangoPay::PayIn::PayInIntent::Refund.reverse(intent['Id'], intent['Refund']['Id'], dto)
Was this page helpful?