# MD for: https://www.mercadopago.com.mx/developers/es/docs/payouts/integration-configuration/money-transfers.md \# Configure money transfers The integration of Payouts is carried out by making a single call to the \[/v1/payouts\](https://www.mercadopago.com.mx/developers/pt/reference/online-payments/payouts/create-bank-transaction/post) API to \*\*configure single transactions (to a single destination account) or multiple (to several destination accounts)\*\*. This means that the transaction is created and processed in a single request, and if the execution is successful, the money will be available to be withdrawn to the destination account, with no need for additional steps. > RED\_MESSAGE > > Destination accounts must be checking accounts, meaning it is not possible to transfer to a savings account. See below how to integrate Payouts to perform the transactions and also how to get information about them, schedule them and, if necessary, cancel them. :::::AccordionComponent{title="Create a batch of transactions for bank accounts"} To configure transactions \*\*with destination to bank accounts or between Mercado Pago accounts\*\*, you must send a \*\*POST\*\* with your :toolTipComponent\[test Access Token\]{content="Private key of the application created in Mercado Pago and used in the \_backend\_. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."} to the endpoint :TagComponent{tag="API" text="/v1/payouts" href="/developers/pt/reference/online-payments/payouts/create-bank-transaction/post"}. You must send the corresponding parameters following the indications in the table below. ::::TabsComponent :::TabComponent{title="Transfers between Mercado Pago accounts"} \`\`\`curl curl --location 'https://api.mercadopago.com/v1/payouts' \\ --header 'X-Idempotency-Key: {{SOME\_UNIQUE\_VALUE}}' \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer ' \\ --header 'X-enforce-signature: false' \\ --header 'X-test-token: true' \\ --header 'X-signature: true' \\ --data-raw '{ "external\_reference": "000197", "config": { "notification\_url": "https://link-your-webhook-notification.com" }, "description": "Payout for seller commissions", "schedule\_date": "2026-12-31T14:30:00", "transactions": \[ { "type": "account", "description": "Payment to seller Beltrano", "account": { "email": "test\_user\_mx@testuser.com" }, "amount": { "currency": "MXN", "value": 1 }, "external\_reference": "000197" } \] }' \`\`\` | Field | Description | Required | Example | |---|---|---|---| | \`Authorization\` | \_Header\_. Refers to your private key, the :toolTipComponent\[test 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\*."}. | Required | - | | \`X-Idempotency-Key\` | \*Header\*. This function allows you to safely repeat requests without the risk of performing the same action more than once by mistake. This is useful to avoid errors, such as creating two identical transactions, for example. To ensure that each request is unique, it is important to use an exclusive value in the \_header\_ of your request. We suggest using a UUID V4 or random strings. It is important to note that, as of 01/01/24, sending this parameter will become mandatory in all requests. | Required | 0d5020ed-1af6-469c-ae06-c3bec19954bb | | \`X-signature\` | \*Header\*. Request signature with the \_body\_ encrypted in base64 using the integrator's public and private keys. It is required only in the production environment. | Required \*\*only in the production environment\*\*. | - | | \`X-enforce-signature\` | \*Header\*. Boolean to indicate whether the integrator will send the signature or not. Must be \`false\` for test environment or \`true\` for production environment, which is when sending the signature is mandatory. | Required \*\*only in the production environment\*\*. | \`false\` | | \`X-test-token\` | \*Header\*. Boolean to indicate whether the request will be a test (\`true\`) or not (\`false\`). You must use it for the request to be sent to the test environment. When using this header, you can set \`X-enforce-signature\` to \`true\` and use \`X-signature\` to test validation of the encrypted body. | Required as \`true\` when it is a test. | \`true\` | | \`external\_reference\` | \*Body\*. Reference used to identify the payout. It is generated by the integrator and can be any numeric value (1234) that allows tracking the transaction, as long as it does not exceed 7 characters and is not duplicated. You cannot use special characters (" ", \[ \], ( ), @), letters (abcde), hyphens (-), or underscores (\_). | Required | 000197 | | \`config\` | \*Body\*. Object containing user configurations for the transaction. | Optional | - | | \`config.notification\_url\` | \*Body\*. URL where you will receive event notifications related to the transaction, such as status changes. | Optional | https://link-your-webhook-notification.com | | \`description\` | \*Body\*. Short description text of the complete payout operation, with all sent transfers. Limit of 100 characters counting the space between words. | Optional | "Payout for seller commissions" | | \`schedule\_date\` | \*Body\*. Payout execution date. The value must be in the future and in standard ISO 8601 UTC-0 format ("YYYY-MM-DDTHH:MM:SS"), without timezone. The timezone is automatically inferred based on the country of the request. See more information in \[Schedule transactions\](https://www.mercadopago.com.mx/developers/en/docs/payouts/integration-configuration/money-transfers#bookmark\_schedule\_transactions) | Optional | 2026-12-31T14:30:00 | | \`transactions.type\` | \*Body\*. Destination account type. The only possible value is \`account\` (checking account).| Required | \`account\` | | \`transactions.description\` | \*Body\*. Short description text of the complete payout operation, with all transfers sent. Limit of 100 characters counting the space between words.| Optional | "Payment to seller Beltrano" | | \`transactions.account\` | \*Body\*. Details of the destination account. It can be an \*\*e-mail for transfers between Mercado Pago accounts\*\* or the \*\*details of a bank account (holder, account number and bank ID) for transfers to external banks\*\*. | Required and must be filled according to the transfer model. | - | | \`transactions.account.email\` | \*Body\*. E-mail of the destination Mercado Pago account. | Required for transfers between Mercado Pago accounts. | test\_user\_mx@testuser.com | | \`transactions.amount\` | \*Body\*. Transaction value. | Required | - | | \`transactions.amount.currency\` | \*Body\*. Currency identifier used in the transaction. | Required | MXN | | \`transactions.amount.value\` | \*Body\*. Transaction value to be debited from the origin checking account. The minimum value is 0 and the maximum is 10000000000\. | Required | 100 | | \`transactions.external\_reference\` | \*Body\*. Reference to identify the transaction. It is generated by the integrator to allow tracking of the cash-out and can be any numeric value (1234), as long as it does not exceed 7 characters. You cannot use special characters (" ", \[ \], ( ), @), letters (abcde), hyphens (-), or underscores (\_), and it must not be duplicated. | Required | 000156 | > SUCCESS\_MESSAGE > > To see in detail all the parameters sent and returned in this request, consult our \[API Reference\](https://www.mercadopago.com.mx/developers/en/reference/online-payments/payouts/create-bank-transaction/post). Also, if you receive an error when sending the request, consult our \[possible errors\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors) for more information. > SUCCESS\_MESSAGE > > To see in detail all the parameters sent and returned in this request, consult our \[API Reference\](https://www.mercadopago.com.mx/developers/en/reference/online-payments/payouts/create-bank-transaction/post). Also, if you receive an error when sending the request, consult our \[possible errors\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors) for more information. ::: :::TabComponent{title="Transfers to other banks from Mercado Pago"} \`\`\`curl curl --location 'https://api.mercadopago.com/v1/payouts' \\ --header 'X-Idempotency-Key: {{SOME\_UNIQUE\_VALUE}}' \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer ' \\ --header 'X-enforce-signature: false' \\ --header 'X-test-token: true' \\ --header 'X-signature: true' \\ --data '{ "external\_reference": "000197", "config": { "notification\_url": "https://link-your-webhook-notification.com" }, "description": "Payout for seller commissions", "schedule\_date": "2026-12-31T14:30:00", "transactions": \[ { "description": "Payment to seller Beltrano", "type": "account", "account": { "holder": "Miguel Hernández", "number": "646016230131277849", "bank\_id": "646", "branch": "0001", "owner\_value": "95871050", "owner\_type": "CURP" }, "amount": { "currency": "MXN", "value": 10 }, "external\_reference": "000197" } \] }' \`\`\` | Field | Description | Required | Example | |---|---|---|---| | \`Authorization\` | \_Header\_. Refers to your private key, the :toolTipComponent\[test 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\*."}. | Required | - | | \`X-Idempotency-Key\` | \*Header\*. This function allows you to safely repeat requests without the risk of performing the same action more than once by mistake. This is useful to avoid errors, such as creating two identical transactions, for example. To ensure that each request is unique, it is important to use an exclusive value in the \_header\_ of your request. We suggest using a UUID V4 or random strings. It is important to note that, as of 01/01/24, sending this parameter will become mandatory in all requests. | Required | 0d5020ed-1af6-469c-ae06-c3bec19954bb | | \`X-signature\` | \*Header\*. Request signature with the \_body\_ encrypted in base64 using the integrator's public and private keys. It is required only in the production environment. | Required \*\*only in the production environment\*\*. | - | | \`X-enforce-signature\` | \*Header\*. Boolean to indicate whether the integrator will send the signature or not. Must be \`false\` for test environment or \`true\` for production environment, which is when sending the signature is mandatory. | Required \*\*only in the production environment\*\*. | \`false\` | | \`X-test-token\` | \*Header\*. Boolean to indicate whether the request will be a test (\`true\`) or not (\`false\`). You must use it for the request to be sent to the test environment. When using this header, you can set \`X-enforce-signature\` to \`true\` and use \`X-signature\` to test validation of the encrypted body. | Required as \`true\` when it is a test. | \`true\` | | \`external\_reference\` | \*Body\*. Reference used to identify the payout. It is generated by the integrator and can be any numeric value (1234) that allows tracking the transaction, as long as it does not exceed 7 characters and is not duplicated. You cannot use special characters (" ", \[ \], ( ), @), letters (abcde), hyphens (-), or underscores (\_). | Required | 000197 | | \`config\` | \*Body\*. Object containing user configurations for the transaction. | Optional | - | | \`config.notification\_url\` | \*Body\*. URL where you will receive event notifications related to the transaction, such as status changes. | Optional | https://link-your-webhook-notification.com | | \`description\` | \*Body\*. Short description text of the complete payout operation, with all sent transfers. Limit of 100 characters counting the space between words. | Optional | "Payout for seller commissions" | | \`schedule\_date\` | \*Body\*. Payout execution date. The value must be in the future and in standard ISO 8601 UTC-0 format ("YYYY-MM-DDTHH:MM:SS"), without timezone. The timezone is automatically inferred based on the country of the request. See more information in \[Schedule transactions\](https://www.mercadopago.com.mx/developers/en/docs/payouts/integration-configuration/money-transfers#bookmark\_schedule\_transactions) | Optional | 2026-12-31T14:30:00 | | \`transactions.type\` | \*Body\*. Destination account type. The only possible value is \`account\` (checking account).| Required | \`account\` | | \`transactions.description\` | \*Body\*. Short description text of the complete payout operation, with all transfers sent. Limit of 100 characters counting the space between words.| Optional | "Payment to seller Beltrano" | | \`transactions.account\` | \*Body\*. Details of the destination account. It can be an \*\*e-mail for transfers between Mercado Pago accounts\*\* or the \*\*details of a bank account (holder, account number and bank ID) for transfers to external banks\*\*. | Required and must be filled according to the transfer model. | - | | \`transactions.account.holder\` | \*Body\*. First and last name of the holder of the destination account. | Required when the transfer model is from Mercado Pago accounts to outside. | Miguel Hernández | | \`transactions.account.number\` | \*Body\*. Unique number that represents each bank account. In this case, you must send the unique number of the destination account. | Required | 0000001234567876543210 | | \`transactions.account.bank\_id\` | \*Body\*. Identification number of the bank to which the destination checking account belongs. The default value is 3 digits and always will be the first 3 numbers of the CLABE. | Required | 003 | | \`transactions.account.branch\` | \*Body\*. Branch number of the bank to which the destination account belongs. | Optional | 0001 | | \`transactions.account.owner\_value\` | \*Body\*. Identification number of the holder of the destination checking account. | Required for transfers to accounts outside Mercado Pago. | 95871050 | | \`transactions.account.owner\_type\` | \*Body\*. Identification document type. | Required for transfers to accounts outside Mercado Pago. | CURP | | \`transactions.amount\` | \*Body\*. Transaction value. | Required | - | | \`transactions.amount.currency\` | \*Body\*. Currency identifier used in the transaction. | Required | MXN | | \`transactions.amount.value\` | \*Body\*. Transaction value to be debited from the origin checking account. The minimum value is 0 and the maximum is 10000000000\. | Required | 100 | | \`transactions.external\_reference\` | \*Body\*. Reference to identify the transaction. It is generated by the integrator to allow tracking of the cash-out and can be any numeric value (1234), as long as it does not exceed 7 characters. You cannot use special characters (" ", \[ \], ( ), @), letters (abcde), hyphens (-), or underscores (\_), and it must not be duplicated. | Required | 000156 | > SUCCESS\_MESSAGE > > To see in detail all the parameters sent and returned in this request, consult our \[API Reference\](https://www.mercadopago.com.mx/developers/en/reference/online-payments/payouts/create-bank-transaction/post). Also, if you receive an error when sending the request, consult our \[possible errors\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors) for more information. > SUCCESS\_MESSAGE > > To see in detail all the parameters sent and returned in this request, consult our \[API Reference\](https://www.mercadopago.com.mx/developers/en/reference/online-payments/payouts/create-bank-transaction/post). Also, if you receive an error when sending the request, consult our \[possible errors\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors) for more information. ::: :::: If the execution is successful, you will receive as response a \`status code 202\`, indicating that the transaction was accepted, as in the example below. \`\`\`json { "id": "POP01KM145R903TZ06BWK6204DGG1", "external\_reference": "000197", "description": "Payout for seller commissions", "idempotency\_key": "1773859430", "created\_date": "2026-03-18T14:43:50-04:00", "status": "created", "schedule\_date": "2026-12-31T14:30:00", "config": { "notification\_url": "https://link-your-webhook-notification.com" } } \`\`\` | Attribute | Description | |---|---| | \`id\` | Unique transaction identifier, automatically generated. | | \`external\_reference\` | External reference of the transaction, generated by the integrator when creating it. | | \`description\` | Description text of the complete payout operation, with all sent transfers. | | \`idempotency\_key\` | Idempotency key to avoid duplicates. | | \`created\_date\` | Transaction creation date. | | \`status\` | Current transaction status. | | \`schedule\_date\` | Payout execution date. The value will be in the future and in standard ISO 8601 UTC-0 format ("YYYY-MM-DDTHH:MM:SS"). | | \`config.notification\_url\` | URL where you will receive event notifications related to the transaction, such as \_status\_ changes. | > NOTE > > Keep in mind that this response may take a few minutes and that, if your status is \`pending\`, you must execute the call to \[Get list of transactions\](https://www.mercadopago.com.mx/developers/en/docs/payouts/integration-configuration/money-transfers#bookmark\_get\_list\_of\_transactions) or \[Get information about a transaction\](https://www.mercadopago.com.mx/developers/en/docs/payouts/integration-configuration/money-transfers#bookmark\_get\_information\_about\_a\_transaction) to verify its update. ::::: :::AccordionComponent{title="Get list of transactions"} You can get information about all transactions in a payout. This can be useful to confirm that these were created correctly, by checking their \`status\` or verifying the information received in your notifications. To do so, send a \*\*GET\*\* with your :toolTipComponent\[test Access Token\]{content="Private key of the application created in Mercado Pago and used in the \_backend\_. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."} to the endpoint :TagComponent{tag="API" text="/v1/payouts/{id}/transactions" href="/developers/en/reference/online-payments/payouts/get-list-transactions/get"}, replacing \`id\` with the payout ID obtained in the response when creating the batch. \`\`\`curl curl --location 'https://api.mercadopago.com/v1/payouts/{{payout\_id}}/transactions?limit=100&offset=0' \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer ' \\ --header 'X-test-token: true' \`\`\` | Field | Description | Required | Example | |---|---|---|---| | \`payout\_id\` | \*Path\*. \_String\_. Identifier of the payout whose transaction you want to query, returned in the response to its creation within the \`id\` field. | Required | POP01KKYN1QY2SS1MKAY4KP6SSRCT | | \`Authorization\` | \_Header\_. Refers to your private key, the :toolTipComponent\[test Access Token\]{content="Private key of the application created in Mercado Pago and used in the \_backend\_. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."}. | Required | - | | \`X-test-token\` | \*Header\*. Boolean to indicate whether the request will be a test (\`true\`) or not (\`false\`). You must use it for the request to be sent to the test environment. When using this header, you can set \`X-enforce-signature\` to \`true\` and use \`X-signature\` to test validation of the encrypted body. | Required as \`true\` when it is a test. | \`true\` | | \`limit\` | \*Query\*. Maximum number of transactions to return in the list. Limit of 100 transactions. | Optional | 10 | | \`offset\` | \*Query\*. Number of transactions to skip in the list. | Optional | 0 | > SUCCESS\_MESSAGE > > To see in detail all the parameters sent and returned in this request, consult our \[API Reference\](https://www.mercadopago.com.mx/developers/en/reference/online-payments/payouts/get-list-transactions/get). Also, if you receive an error when sending the request, consult our \[possible errors\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors#bookmark\_possible\_request\_errors) for more information. If the data sent in the call is correct, you will receive a response like the following: \`\`\`json { "paging": { "limit": 100, "offset": 0, "total": 1 }, "transactions": \[ { "id": "TOP01KKYN1QY2SS1MKAY4G9DV5NK9", "created\_date": "2026-03-17T15:41:03.632-04:00", "last\_update\_date": "2026-03-23T17:18:29.665-04:00", "external\_reference": "000197", "status": "success", "status\_detail": "accredited", "type": "TRANSACTION", "amount": { "currency": "MXN", "value": 1000 } } \] } \`\`\` | \`paging.limit\` | Maximum number of transactions returned according to the value defined in the \`limit\` parameter of the request. | | \`paging.offset\` | Number of transactions returned according to the value defined in the \`offset\` parameter of the request. | | \`paging.total\` | Total number of transactions performed in the payout. | | \`transactions.id\` | Unique transaction identifier, automatically generated. | | \`transactions.created\_date\` | Transaction creation date. | | \`transactions.last\_update\_date\` | Date of update of the transaction status. | | \`transactions.external\_reference\` | External reference of the transaction, generated by the integrator when creating it. | | \`transactions.status\` | Current transaction status. | | \`transactions.status\_detail\` | Detailed information about the transaction status. | | \`transactions.type\` | Transaction type. The value will always be "TRANSACTION" for bank transfers via Payouts. | | \`transactions.amount.currency\` | Currency identifier used in the transaction. | | \`transactions.amount.value\` | Transaction value to be debited from the origin checking account. The minimum value is 0 and the maximum is 10000000000\. | > NOTE > > For more information about the returned status, access \[Transaction status\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors#statusdeumatransao#bookmark\_transaction\_status). ::: :::AccordionComponent{title="Get information about a transaction"} You will also be able to get information about a specific transaction within a payout. This can be useful to confirm that it was created correctly, by checking its \`status\` or verifying the information received in your notifications. To do so, send a \*\*GET\*\* with your :toolTipComponent\[test Access Token\]{content="Private key of the application created in Mercado Pago and used in the \_backend\_. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."} to the endpoint :TagComponent{tag="API" text="/v1/payouts/{{payout\_id}}/transactions/{{transaction\_id}}" href="/developers/en/reference/online-payments/payouts/get-information-transaction/get"}, replacing \`payout\_id\` with the payout ID and \`transaction\_id\` with the transaction ID obtained previously. \`\`\`curl curl --location 'https://api.mercadopago.com/v1/payouts/{{payout\_id}}/transactions/{{transaction\_id}}' \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer ' \\ --header 'X-test-token: true' \`\`\` | Field | Description | Required | Example | |---|---|---|---| | \`payout\_id\` | \*Path\*. \_String\_. Identifier of the payout whose transaction you want to query, returned in the response to its creation within the \`id\` field. | Required | TOP01KKYN1QY2SS1MKAY4E5KM8WZ6 | | \`transaction\_id\` | \*Path\*. \_String\_. Identifier of the transaction you want to query, returned in the response to its creation within the \`id\` field. | Required | TOP01KKYN1QY2SS1MKAY4E5KM8WZ6 | | \`Authorization\` | \_Header\_. Refers to your private key, the :toolTipComponent\[test Access Token\]{content="Private key of the application created in Mercado Pago and used in the \_backend\_. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."}. | Required | - | | \`X-test-token\` | \*Header\*. Boolean to indicate whether the request will be a test (\`true\`) or not (\`false\`). You must use it for the request to be sent to the test environment. When using this header, you can set \`X-enforce-signature\` to \`true\` and use \`X-signature\` to test validation of the encrypted body. | Required as \`true\` when it is a test. | \`true\` | > SUCCESS\_MESSAGE > > To see in detail all the parameters sent and returned in this request, consult our \[API Reference\](https://www.mercadopago.com.mx/developers/en/reference/online-payments/payouts/get-information-transaction/get). Also, if you receive an error when sending the request, consult our \[possible errors\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors#bookmark\_possible\_request\_errors) for more information. If the data sent in the call is correct, you will receive a response like the following: \`\`\`json { "id": "TOP01KKYN1QY2SS1MKAY4G9DV5NK9", "created\_date": "2026-03-17T15:41:03.632-04:00", "last\_update\_date": "2026-03-23T17:18:29.665-04:00", "external\_reference": "000197", "status": "success", "status\_detail": "accredited", "type": "TRANSACTION", "amount": { "currency": "MXN", "value": 1000 } } \`\`\` > NOTE > > For more information about the returned status, access \[Transaction status\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors#statusdeumatransao#bookmark\_transaction\_status). | \`id\` | Unique transaction identifier, automatically generated. | | \`created\_date\` | Transaction creation date. | | \`last\_update\_date\` | Date of update of the transaction status. | | \`external\_reference\` | External reference of the transaction, generated by the integrator when creating it. | | \`status\` | Current transaction status. | | \`status\_detail\` | Detailed information about the transaction status. | | \`transactions.type\` | Transaction type. The value will always be "TRANSACTION" for bank transfers via Payouts. | | \`amount.currency\` | Currency identifier used in the transaction. | | \`amount.value\` | Transaction value to be debited from the origin checking account. The minimum value is 0 and the maximum is 10000000000\. | ::: :::::AccordionComponent{title="Schedule transactions"} You will also be able to schedule a transfer using the \_Scheduler\_ feature, which automates the execution of scheduled payments, ensuring that each payment occurs exactly on the defined date and time, safely and without duplications, recording all steps to facilitate tracking and auditing. > WARNING > > It is important that transactions are scheduled for a future date/time, outside of weekends or holidays and that, in addition to ensuring that there is available balance at the defined date/time, the transaction is aligned with the financial institution's operational windows. To schedule a payment, send a \*\*POST\*\* with your :toolTipComponent\[test Access Token\]{content="Private key of the application created in Mercado Pago and used in the \_backend\_. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."} to the endpoint :TagComponent{tag="API" text="/v1/payouts" href="/developers/en/reference/online-payments/payouts/create-bank-transaction/post"} including the \`schedule\_date\` field in the \_body\_. ::::TabsComponent :::TabComponent{title="Transfers between Mercado Pago accounts"} \`\`\`curl curl --location 'https://api.mercadopago.com/v1/payouts' \\ --header 'X-Idempotency-Key: {{SOME\_UNIQUE\_VALUE}}' \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer ' \\ --header 'X-enforce-signature: false' \\ --header 'X-test-token: true' \\ --header 'X-signature: true' \\ --data-raw '{ "external\_reference": "000197", "config": { "notification\_url": "https://link-your-webhook-notification.com" }, "description": "Payout for seller commissions", "schedule\_date": "2026-12-31T14:30:00", "transactions": \[ { "type": "account", "description": "Payment to seller Beltrano", "account": { "email": "test\_user\_mx@testuser.com" }, "amount": { "currency": "MXN", "value": 1 }, "external\_reference": "000197" } \] }' \`\`\` | Field | Description | Required | Example | |---|---|---|---| | \`Authorization\` | \_Header\_. Refers to your private key, the :toolTipComponent\[test Access Token\]{content="Private key of the application created in Mercado Pago and used in the \_backend\_. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."}. | Required | - | | \`X-Idempotency-Key\` | \*Header\*. This function allows you to safely repeat requests without the risk of performing the same action more than once by mistake. This is useful to avoid errors, such as creating two identical transactions, for example. To ensure that each request is unique, it is important to use an exclusive value in the \_header\_ of your request. We suggest using a UUID V4 or random strings. It is important to note that, as of 01/01/24, sending this parameter will become mandatory in all requests. | Required | 0d5020ed-1af6-469c-ae06-c3bec19954bb | | \`X-enforce-signature\` | \*Header\*. Boolean to indicate whether the integrator will send the signature or not. Must be \`false\` for test environment or \`true\` for production environment, which is when sending the signature is mandatory. | Required \*\*only in the production environment\*\*. | \`false\` | | \`X-test-token\` | \*Header\*. Boolean to indicate whether the request will be a test (\`true\`) or not (\`false\`). You must use it for the request to be sent to the test environment. When using this header, you can set \`X-enforce-signature\` to \`true\` and use \`X-signature\` to test validation of the encrypted body. | Required as \`true\` when it is a test. | \`true\` | | \`external\_reference\` | \*Body\*. Reference used to identify the payout. It is generated by the integrator and can be any numeric value (1234) that allows tracking the transaction, as long as it does not exceed 7 characters and is not duplicated. You cannot use special characters (" ", \[ \], ( ), @), letters (abcde), hyphens (-), or underscores (\_). | Required | 000197 | | \`schedule\_date\` | \*Body\*. Payout execution date. The value must be in the future and in standard ISO 8601 UTC-0 format ("YYYY-MM-DDTHH:MM:SS"), without timezone. The timezone is automatically inferred based on the country of the request. | Optional | 2026-12-31T14:30:00 | | \`config\` | \*Body\*. Object containing user configurations for the transaction. | Optional | - | | \`config.notification\_url\` | \*Body\*. URL where you will receive event notifications related to the transaction, such as status changes. | Optional | https://link-your-webhook-notification.com | | \`transactions.type\` | \*Body\*. Destination account type. The only possible value is \`account\` (checking account).| Required | \`account\` | | \`transactions.description\` | \*Body\*. Short description text of the complete payout operation, with all transfers sent. Limit of 100 characters counting the space between words.| Optional | "Payment to seller Beltrano" | | \`transactions.account\` | \*Body\*. Details of the destination account. It can be an \*\*e-mail for transfers between Mercado Pago accounts\*\* or the \*\*details of a bank account (holder, account number and bank ID) for transfers to external banks\*\*. | Required and must be filled according to the transfer model. | - | | \`transactions.account.email\` | \*Body\*. E-mail of the destination Mercado Pago account. | Required for transfers between Mercado Pago accounts. | test\_user\_mx@testuser.com | | \`transactions.amount\` | \*Body\*. Transaction value. | Required | - | | \`transactions.amount.currency\` | \*Body\*. Currency identifier used in the transaction. | Required | MXN | | \`transactions.amount.value\` | \*Body\*. Transaction value to be debited from the origin checking account. The minimum value is 0 and the maximum is 10000000000\. | Required | 100 | | \`transactions.external\_reference\` | \*Body\*. Reference to identify the transaction. It is generated by the integrator to allow tracking of the cash-out and can be any numeric value (1234), as long as it does not exceed 7 characters. You cannot use special characters (" ", \[ \], ( ), @), letters (abcde), hyphens (-), or underscores (\_), and it must not be duplicated. | Required | 000156 | > SUCCESS\_MESSAGE > > To see in detail all the parameters sent and returned in this request, consult our \[API Reference\](https://www.mercadopago.com.mx/developers/en/reference/online-payments/payouts/create-bank-transaction/post). Also, if you receive an error when sending the request, consult our \[possible errors\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors#bookmark\_possible\_request\_errors) for more information. ::: :::TabComponent{title="Transfers to other banks from Mercado Pago"} \`\`\`curl curl --location 'https://api.mercadopago.com/v1/payouts' \\ --header 'X-Idempotency-Key: {{SOME\_UNIQUE\_VALUE}}' \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer ' \\ --header 'X-enforce-signature: false' \\ --header 'X-test-token: true' \\ --header 'X-signature: true' \\ --data '{ "external\_reference": "000197", "config": { "notification\_url": "https://link-your-webhook-notification.com" }, "description": "Payout for seller commissions", "schedule\_date": "2026-12-31T14:30:00", "transactions": \[ { "description": "Payment to seller Beltrano", "type": "account", "account": { "holder": "Miguel Hernández", "number": "646016230131277849", "bank\_id": "646", "branch": "0001", "owner\_value": "95871050", "owner\_type": "CURP" }, "amount": { "currency": "MXN", "value": 10 }, "external\_reference": "000197" } \] }' \`\`\` | Field | Description | Required | Example | |---|---|---|---| | \`Authorization\` | \_Header\_. Refers to your private key, the :toolTipComponent\[test Access Token\]{content="Private key of the application created in Mercado Pago and used in the \_backend\_. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."}. | Required | - | | \`X-Idempotency-Key\` | \*Header\*. This function allows you to safely repeat requests without the risk of performing the same action more than once by mistake. This is useful to avoid errors, such as creating two identical transactions, for example. To ensure that each request is unique, it is important to use an exclusive value in the \_header\_ of your request. We suggest using a UUID V4 or random strings. It is important to note that, as of 01/01/24, sending this parameter will become mandatory in all requests. | Required | 0d5020ed-1af6-469c-ae06-c3bec19954bb | | \`X-enforce-signature\` | \*Header\*. Boolean to indicate whether the integrator will send the signature or not. Must be \`false\` for test environment or \`true\` for production environment, which is when sending the signature is mandatory. | Required \*\*only in the production environment\*\*. | \`false\` | | \`X-test-token\` | \*Header\*. Boolean to indicate whether the request will be a test (\`true\`) or not (\`false\`). You must use it for the request to be sent to the test environment. When using this header, you can set \`X-enforce-signature\` to \`true\` and use \`X-signature\` to test validation of the encrypted body. | Required as \`true\` when it is a test. | \`true\` | | \`external\_reference\` | \*Body\*. Reference used to identify the payout. It is generated by the integrator and can be any numeric value (1234) that allows tracking the transaction, as long as it does not exceed 7 characters and is not duplicated. You cannot use special characters (" ", \[ \], ( ), @), letters (abcde), hyphens (-), or underscores (\_). | Required | 000197 | | \`schedule\_date\` | \*Body\*. Payout execution date. The value must be in the future and in standard ISO 8601 UTC-0 format ("YYYY-MM-DDTHH:MM:SS"), without timezone. The timezone is automatically inferred based on the country of the request. | Optional | 2026-12-31T14:30:00 | | \`config\` | \*Body\*. Object containing user configurations for the transaction. | Optional | - | | \`config.notification\_url\` | \*Body\*. URL where you will receive event notifications related to the transaction, such as status changes. | Optional | https://link-your-webhook-notification.com | | \`transactions.type\` | \*Body\*. Destination account type. The only possible value is \`account\` (checking account).| Required | \`account\` | | \`transactions.description\` | \*Body\*. Short description text of the complete payout operation, with all transfers sent. Limit of 100 characters counting the space between words.| Optional | "Payment to seller Beltrano" | | \`transactions.account\` | \*Body\*. Details of the destination account. It can be an \*\*e-mail for transfers between Mercado Pago accounts\*\* or the \*\*details of a bank account (holder, account number and bank ID) for transfers to external banks\*\*. | Required and must be filled according to the transfer model. | - | | \`transactions.account.holder\` | \*Body\*. First and last name of the holder of the destination account. | Required when the transfer model is from Mercado Pago accounts to outside. | Miguel Hernández | | \`transactions.account.number\` | \*Body\*. Unique number that represents each bank account. In this case, you must send the unique number of the destination account. | Required | 0000001234567876543210 | | \`transactions.account.bank\_id\` | \*Body\*. Identification number of the bank to which the destination checking account belongs. The default value is 3 digits and always will be the first 3 numbers of the CLABE. | Required | 003 | | \`transactions.account.branch\` | \*Body\*. Branch number of the bank to which the destination account belongs. | Optional | 0001 | | \`transactions.account.owner\_value\` | \*Body\*. Identification number of the holder of the destination checking account. | Required for transfers to accounts outside Mercado Pago. | 95871050 | | \`transactions.account.owner\_type\` | \*Body\*. Identification document type. | Required for transfers to accounts outside Mercado Pago. | CURP | | \`transactions.amount\` | \*Body\*. Transaction value. | Required | - | | \`transactions.amount.currency\` | \*Body\*. Currency identifier used in the transaction. | Required | MXN | | \`transactions.amount.value\` | \*Body\*. Transaction value to be debited from the origin checking account. The minimum value is 0 and the maximum is 10000000000\. | Required | 100 | | \`transactions.external\_reference\` | \*Body\*. Reference to identify the transaction. It is generated by the integrator to allow tracking of the cash-out and can be any numeric value (1234), as long as it does not exceed 7 characters. You cannot use special characters (" ", \[ \], ( ), @), letters (abcde), hyphens (-), or underscores (\_), and it must not be duplicated. | Required | 000156 | > SUCCESS\_MESSAGE > > To see in detail all the parameters sent and returned in this request, consult our \[API Reference\](https://www.mercadopago.com.mx/developers/en/reference/online-payments/payouts/create-bank-transaction/post). Also, if you receive an error when sending the request, consult our \[possible errors\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors#bookmark\_possible\_request\_errors) for more information. ::: :::: If the execution is successful, you will receive as response a \`status code 202\`, indicating that the transaction was accepted. > NOTE > > Keep in mind that this response may take a few minutes and that, if your status is \`pending\`, you must execute the call to \[Get list of transactions\](https://www.mercadopago.com.mx/developers/en/docs/payouts/integration-configuration/money-transfers#bookmark\_get\_list\_of\_transactions) or \[Get information about a transaction\](https://www.mercadopago.com.mx/developers/en/docs/payouts/integration-configuration/money-transfers#bookmark\_get\_information\_about\_a\_transaction) to verify its update. ::::: :::AccordionComponent{title="Cancel a transaction"} You will be able to cancel a scheduled transaction using the reference ID obtained in the response to its creation. Cancellation is intended to allow the interruption of incorrect or unwanted payment operations before financial completion, being irreversible to preserve operational integrity and ensure complete tracking for auditing. > WARNING > > Only transactions that have not yet been processed (\`pending\` and \`in\_process\`) can be canceled. In addition, cancellation can only be done if there is a previous scheduling. That is, it is not possible to cancel transactions that \*\*have not been scheduled\*\*. To cancel a transaction, send a \*\*PUT\*\* with your :toolTipComponent\[test Access Token\]{content="Private key of the application created in Mercado Pago and used in the \_backend\_. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."} to the endpoint :TagComponent{tag="API" text="/v1/payouts/{{payout\_id}}/transactions/{{transaction\_id}}/cancel" href="/developers/en/reference/online-payments/payouts/cancel-transaction/put"}, replacing \`payout\_id\` with the payout ID and \`transaction\_id\` with the transaction ID. \`\`\`curl curl --location --request PUT 'https://api.mercadopago.com/v1/payouts/{{payout\_id}}/transactions/{{transaction\_id}}/cancel' \\ --header 'X-Idempotency-Key: {{SOME\_UNIQUE\_VALUE}}' \\ --header 'Content-Type: application/json' \\ --header 'Authorization: Bearer ' \\ --header 'X-enforce-signature: false' \\ --header 'X-test-token: true' \\ --header 'X-signature: true' \\ --data '{ "comments": "delete because the payment was canceled", "deleted\_by": "user\_123" }' \`\`\` | Field | Description | Required | Example | |---|---|---|---| | \`payout\_id\` | \*Path\*. \_String\_. Identifier of the payout you want to query the transaction, returned in the response to its creation within the \`id\` field. | Required | POP01KKCFKH9J2C8TQSQZM4R3Z22C | | \`transaction\_id\` | \*Path\*. \_String\_. Identifier of the transaction you want to query, returned in the response to its creation within the \`id\` field. | Required | TOP01KKYN1QY2SS1MKAY4E5KM8WZ6 | | \`Authorization\` | \_Header\_. Refers to your private key, the :toolTipComponent\[test Access Token\]{content="Private key of the application created in Mercado Pago and used in the \_backend\_. You can access it through \*Your integrations > Integration data > Tests > Test credentials\*."}. | Required | - | | \`X-Idempotency-Key\` | \*Header\*. This feature allows you to safely retry requests without the risk of accidentally performing the same action more than once. This is useful for avoiding errors, such as creating two identical transactions, for example. To ensure that each request is unique, it's important to use an exclusive value in the header of your request. We suggest using a UUID V4 or random strings. It is important to note that, starting from 2024/01/01, sending this parameter will become mandatory in all requests. | Required | 0d5020ed-1af6-469c-ae06-c3bec19954bb | | \`X-signature\` | \*Header\*. Request signature with the encrypted body in base 64 with the public and private keys of the integrator. | Required \*\*only in the production environment\*\*. | - | | \`X-enforce-signature\` | \*Header\*. Boolean to indicate whether the integrator will send the signature or not. Must be \`false\` for test environment or \`true\` for production environment, which is when sending the signature is mandatory. | Required \*\*only in the production environment\*\*. | \`false\` | | \`X-test-token\` | \*Header\*. Boolean to indicate whether the request will be a test (\`true\`) or not (\`false\`). You must use it for the request to be sent to the test environment. When using this header, you can set \`X-enforce-signature\` to \`true\` and use \`X-signature\` to test validation of the encrypted body. | Required as \`true\` when it is a test. | \`true\` | | \`comments\` | \*Body\*. \_String\_. Clear and objective justification for the cancellation (avoid including sensitive personal information). This field is fundamental for history and auditing. | Required | "delete because the payment was canceled" | | \`deleted\_by\` | \*Body\*. \_String\_. Unique identification of who performed the cancellation (user, system, etc). This field is fundamental for history and auditing. | Required | user\_123 | > SUCCESS\_MESSAGE > > To see in detail all the parameters sent and returned in this request, consult our \[API Reference\](https://www.mercadopago.com.mx/developers/en/reference/online-payments/payouts/cancel-transaction/put). Also, if you receive an error when sending the request, consult our \[possible errors\](https://www.mercadopago.com.mx/developers/en/docs/payouts/resources/transaction-status-and-errors#bookmark\_possible\_request\_errors) for more information. If the execution is successful, you will receive as response a \`status code 204\`, indicating that the transaction was canceled. > RED\_MESSAGE > > Always review the current state of the transaction before trying to cancel it again. Access \[Get information about a transaction\](https://www.mercadopago.com.mx/developers/en/docs/payouts/integration-configuration/money-transfers#bookmark\_get\_information\_about\_a\_transaction) to verify its update. :::