# MD for: https://www.mercadopago.com.ar/developers/es/docs/split-payments-1-n/payments-management/refunds-cancellations.md \# Refunds and cancellations Refunds and cancellations are processes you can initiate once a payment has been made. Since these actions involve a return of money, they may seem similar, but it is important to understand what differentiates them in order to correctly carry out each of the processes. - \*\*Refund\*\*: is made after the payment is processed, and the amount will be credited directly to the statement in the case of a credit card, or to the payer's account when the payment is made by other means. - \*\*Cancellation\*\*: is made when the payment has not yet been completed and requires an additional action, and the limit is returned to the buyer's card within the timeframe defined by the issuing bank. See below for more information on refunds and cancellations. > RED\_MESSAGE > > This documentation is \*\*intended for integrators\*\*. If you are a buyer and need to cancel or request a refund for a payment, access your Mercado Pago account, select the purchase in question, click on "Need help," and choose the refund or cancellation option. ## Refunds in Split Payments These are transactions that occur when a specific charge is reversed and the paid amounts are returned to the transaction participants. You can \*\*refund specific participants without affecting the others’ share\*\*, or process a \*\*full refund\*\*. Below you will find the different ways to manage a refund. > WARNING > > In Split Payments 1:N you cannot mix \`transactions\` and \`splits\` in the same refund request. For orders created with split, you must use only the \`splits\` object, indicating, for each participant who receives the refund, their User ID and the amount to be returned. :::AccordionComponent{title="Full order refund"} To refund the total amount to \*\*all\*\* Split Payment participants, send a \*\*POST\*\* to :TagComponent{tag="API" text="Refund an order" href="/developers/en/reference/online-payments/checkout-api/refund-order/post"} with an empty \_body\_ and your :toolTipComponent\[Access Token\]{content="Private key of the application created in Mercado Pago, that must be used in the backend. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."}. \`\`\`curl curl --request POST \\ --url https://api.mercadopago.com/v1/orders/{Order\_id}/refund \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer {{YOUR\_ACCESS\_TOKEN}}' \`\`\` \`\`\`json { "id": "ORD01J49MMW3SSBK5PSV3DFR32959", "status": "processed", "status\_detail": "refunded", "transactions": { "refunds": \[ { "id": "REF01J49MMW3SSBK5PSV3DFR32959", "transaction\_id": "PAY01JEVQM06WDW16MAQ8B5SC0MSC", "reference\_id": "01JEVQM899NWSQC4FYWWW7KTF9", "amount": "24.50", "status": "processed" } \] } } \`\`\` ::: :::AccordionComponent{title="Full refund for one participant"} To refund the total amount to a single participant, send a \*\*POST\*\* to :TagComponent{tag="API" text="Refund an order" href="/developers/en/reference/online-payments/checkout-api/refund-order/post"} and specify only their \*\*User ID\*\*. \`\`\`curl curl --request POST \\ --url https://api.mercadopago.com/v1/orders/{Order\_id}/refund \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer {{YOUR\_ACCESS\_TOKEN}}' \\ --data '{ "splits": \[ { "user\_id": {{SELLER\_1\_USER\_ID}} } \] }' \`\`\` The table below describes the request body parameters. | Parameter | Type | Description | |-----------|------|-------------| | \`splits\` | Array | List of objects with the refund per participant. | | \`splits.user\_id\` | Integer | User ID of the Mercado Pago account of the participant who receives this refund amount. | \`\`\`json { "id": "ORD01J49MMW3SSBK5PSV3DFR32959", "status": "processed", "status\_detail": "refunded", "transactions": { "refunds": \[ { "id": "REF01J49MMW3SSBK5PSV3DFR32959", "transaction\_id": "PAY01JEVQM06WDW16MAQ8B5SC0MSC", "reference\_id": "01JEVQM899NWSQC4FYWWW7KTF9", "amount": "24.50", "status": "processed" } \] } } \`\`\` ::: :::AccordionComponent{title="Partial refund for one participant"} To refund a specific amount to a single participant, send a \*\*POST\*\* to :TagComponent{tag="API" text="Refund an order" href="/developers/en/reference/online-payments/checkout-api/refund-order/post"} with the participant's \*\*User ID\*\* and the \*\*specific amount\*\*. \`\`\`curl curl --request POST \\ --url https://api.mercadopago.com/v1/orders/{Order\_id}/refund \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer {{YOUR\_ACCESS\_TOKEN}}' \\ --data '{ "splits": \[ { "user\_id": {{SELLER\_1\_USER\_ID}}, "amount": "50.00" } \] }' \`\`\` The table below describes the body parameters for the partial refund request. | Parameter | Type | Description | |-----------|------|-------------| | \`splits\` | Array | List of objects with the refund per participant. | | \`splits.user\_id\` | Integer | User ID of the Mercado Pago account of the participant who receives this refund amount. | | \`splits.amount\` | String | Amount to refund to this participant. Monetary value, not percentage. | \`\`\`json { "id": "ORD01J49MMW3SSBK5PSV3DFR32959", "status": "processed", "status\_detail": "refunded", "transactions": { "refunds": \[ { "id": "REF01J49MMW3SSBK5PSV3DFR32959", "transaction\_id": "PAY01JEVQM06WDW16MAQ8B5SC0MSC", "reference\_id": "01JEVQM899NWSQC4FYWWW7KTF9", "amount": "50.00", "status": "processed" } \] } } \`\`\` ::: :::AccordionComponent{title="Multiple refund"} You can use the same pattern as the single participant refund to refund two or more participants at the same time, by including more than one object in the \`splits\` array. Send a \*\*POST\*\* to :TagComponent{tag="API" text="Refund an order" href="/developers/en/reference/online-payments/checkout-api/refund-order/post"} with the \*\*User ID\*\* and \*\*specific amount\*\* for each participant. \`\`\`curl curl --request POST \\ --url https://api.mercadopago.com/v1/orders/{Order\_id}/refund \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer {{YOUR\_ACCESS\_TOKEN}}' \\ --data '{ "splits": \[ { "user\_id": {{SELLER\_1\_USER\_ID}}, "amount": "50.00" }, { "user\_id": {{SELLER\_2\_USER\_ID}}, "amount": "10.00" } \] }' \`\`\` The table below describes the body parameters for the multiple refund request. | Parameter | Type | Description | |-----------|------|-------------| | \`splits\` | Array | List of objects with the refund per participant. | | \`splits.user\_id\` | Integer | User ID of the Mercado Pago account of the participant who receives this refund amount. | | \`splits.amount\` | String | Amount to refund to this participant. Monetary value, not percentage. | \`\`\`json { "id": "ORD01J49MMW3SSBK5PSV3DFR32959", "status": "processed", "status\_detail": "refunded", "transactions": { "refunds": \[ { "id": "REF01J49MMW3SSBK5PSV3DFR32959", "transaction\_id": "PAY01JEVQM06WDW16MAQ8B5SC0MSC", "reference\_id": "01JEVQM899NWSQC4FYWWW7KTF9", "amount": "50.00", "status": "processed" }, { "id": "REF01J49MMW3SSBK5PSV3DFR32960", "transaction\_id": "PAY01JEVQM06WDW16MAQ8B5SC0MSD", "reference\_id": "01JEVQM899NWSQC4FYWWW7KTF8", "amount": "10.00", "status": "processed" } \] } } \`\`\` ::: ## Cancellations Cancellations allow you to void an order before the payment is confirmed. When canceled, the charge is not applied and no amount is debited from the buyer. To cancel an order with Split Payments 1:N, send a \*\*POST\*\* to :TagComponent{tag="API" text="Cancel order" href="/developers/en/reference/orders/online-payments/cancel-order/post"} with an empty body. Cancellations can only be performed if the payment status is \`action\_required\`, and a payment expires automatically after 30 days without confirmation, with a final status of \`cancelled\` or \`expired\`. \`\`\`curl curl --request POST \\ --url https://api.mercadopago.com/v1/orders/{Order\_id}/cancel \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer {{YOUR\_ACCESS\_TOKEN}}' \`\`\` \`\`\`json { "id": "ORD01J49MMW3SSBK5PSV3DFR32959", "status": "cancelled", "status\_detail": "by\_collector" } \`\`\`