diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 90fa5f6c05..131884bd2c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/melisource/fury_websec-git-hooks - rev: v1.1.0 + rev: v2.0.0 hooks: - id: pre_commit_hook stages: [pre-commit] diff --git a/guides/additional-content/reports/released-money/api.en.md b/guides/additional-content/reports/released-money/api.en.md index 087fdc6251..89b573cd37 100644 --- a/guides/additional-content/reports/released-money/api.en.md +++ b/guides/additional-content/reports/released-money/api.en.md @@ -18,6 +18,7 @@ Check the fields you can configure to adjust your preferences before starting: |---------------------------|------------|------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `columns` | JSON Array | ``` [{"key": "DATE"}, {"key": "SOURCE_ID"}] ``` | Field with details of the columns to be included in your report. Find all possible values in the [Glossary](/developers/en/docs/checkout-pro/additional-content/reports/released-money/report-use). | | `file_name_prefix` | String | "conciliation-settlement-report" | Prefix that composes the name of the generated and ready-to-download report. | +| `unite_reserve` (optional) | Boolean | true | Transactions that show when the money was reserved and released in the same second. | | `frequency` | JSON | ``` {"hour": 0, "type": "monthly", "value": 1} ``` | Indicates the daily, weekly, or monthly frequency of scheduled reports.
- `frequency`: applies type _monthly_ to the day of the month or _weekly_ to the day of the week.
- `hour`: the time of day the report should be generated.
- `type`: indicates the type of frequency: _daily_, _weekly_, or _monthly_. | | `sftp_info` (optional) | JSON | ``` {"server": "sftp.myserver.com", "password": "mypassword", "remote_dir": "/myfolder", "port": 22, "username": "myusername"} ``` | Provides the necessary connection data to access the server.
- `server`: URL or IP address (public) of the server.
- `password`: password of the user with which we will establish the connection.
- `remote_dir`: folder where we will deposit your reports.
- `port`: port used to establish the connection.
- `username`: user with which we will authenticate on your server.
| | `separator` (optional) | String | ";" | Alternative separator for _csv_ files when a character other than a comma (',') is desired. | diff --git a/guides/additional-content/reports/released-money/api.es.md b/guides/additional-content/reports/released-money/api.es.md index b208f20775..00c0b45e6c 100644 --- a/guides/additional-content/reports/released-money/api.es.md +++ b/guides/additional-content/reports/released-money/api.es.md @@ -18,6 +18,7 @@ Consulta los campos que puedes configurar para ajustar tus preferencias antes de |---------------------------|------------|------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `columns` | JSON Array | ``` [{"key": "DATE"}, {"key": "SOURCE_ID"}] ``` | Campo con los detalles de las columnas que se incluirán en tu reporte. Encuentra todos los valores posibles en la sección [Glossário](/developers/es/docs/checkout-pro/additional-content/reports/released-money/report-use). | | `file_name_prefix` | String | "conciliation-settlement-report" | Prefijo que compone el nombre del reporte generado y listo para descargar. | +| `unite_reserve` (opcional) | Boolean | true | Transacciones que muestran cuando el dinero fue reservado y liberado en el mismo segundo. | | `frequency` | JSON | ``` {"hour": 0, "type": "monthly", "value": 1} ``` | Indica la frecuencia diaria, semanal o mensual de los reportes programados.
- `frequency`: aplica type _monthly_ al día del mes o _weekly_ al día de la semana.
- `hour`: hora del día en que se debe generar el reporte.
- `type`: indica el tipo de frecuencia: _daily_ (diaria), _weekly_ (semanal) y _monthly_ (mensual). | | `sftp_info` (opcional) | JSON | ``` {"server": "sftp.myserver.com", "password": "mypassword", "remote_dir": "/myfolder", "port": 22, "username": "myusername"} ``` | Proporciona los datos de conexión necesarios para acceder al servidor.
- `server`: URL o dirección IP (pública) del servidor.
- `password`: contraseña del usuario con el que estableceremos la conexión.
- `remote_dir`: carpeta donde depositaremos tus reportes.
- `port`: puerto utilizado para establecer la conexión.
- `username`: usuario con el que nos autenticaremos en tu servidor.
| | `separator` (opcional) | String | ";" | Separador alternativo para archivos _csv_ cuando se desea utilizar un carácter diferente de la coma (','). | diff --git a/guides/additional-content/reports/released-money/api.pt.md b/guides/additional-content/reports/released-money/api.pt.md index 50d1ff27d1..8289f5daf0 100644 --- a/guides/additional-content/reports/released-money/api.pt.md +++ b/guides/additional-content/reports/released-money/api.pt.md @@ -18,6 +18,7 @@ Confira os campos que você pode configurar para ajustar as suas preferências a |---------------------------|------------|------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `columns` | JSON Array | ``` [{"key": "DATE"}, {"key": "SOURCE_ID"}] ``` | Campo com os detalhes das colunas a serem incluídas no seu relatório. Encontre todos os valores possíveis na seção [Glossário](/developers/pt/docs/checkout-pro/additional-content/reports/released-money/report-use). | | `file_name_prefix` | String | "conciliation-settlement-report" | Prefixo que compõe o nome do relatório gerado e pronto para download. | +| `unite_reserve` (opcional) | Boolean | true | Transações que mostram quando o dinheiro foi reservado e liberado no mesmo segundo. | | `frequency` | JSON | ``` {"hour": 0, "type": "monthly", "value": 1} ``` | Indica a frequência diária, semanal ou mensal dos relatórios programados.
- `frequency`: aplica type _monthly_ ao dia do mês ou _weekly_ ao dia da semana.
- `hour`: hora do dia que o relatório deve ser gerado.
- `type`: indica o tipo de frequência: _daily_ (diária), _weekly_ (semanal) y _monthly_ (mensal). | | `sftp_info` (opcional) | JSON | ``` {"server": "sftp.myserver.com", "password": "mypassword", "remote_dir": "/myfolder", "port": 22, "username": "myusername"} ``` | Fornece os dados de conexão necessários para acessar o servidor.
- `server`: URL ou endereço IP (pública) do servidor.
- `password`: senha do usuário com o qual estabeleceremos a conexão.
- `remote_dir`: pasta onde depositaremos seus relatórios.
- `port`: porta usada para estabelecer a conexão.
- `username`: usuário com o qual nos autenticaremos no seu servidor.
| | `separator` (opcional) | String | ";" | Separador alternativo para arquivos _csv_ quando se deseja utilizar um caractere diferente da vírgula (','). | diff --git a/guides/money-out/additional-endpoints-map.en.md b/guides/money-out/additional-endpoints-map.en.md index 2bc2452246..46c641fd27 100644 --- a/guides/money-out/additional-endpoints-map.en.md +++ b/guides/money-out/additional-endpoints-map.en.md @@ -3,12 +3,16 @@ Below, you can find the links to all the necessary endpoints to integrate Money Out. ----[mlc]---- -* [Create transaction](/developers/en/reference/money-out/bank-transfer-mlc/post) -* [Get information about a transaction](/developers/en/reference/money-out/get-transaction/get) ------------- - +* [Create transaction to bank account](/developers/en/reference/money-out/bank-transfer-mlc/post) +------------ +----[mla]---- +* [Create transaction to bank account](/developers/en/reference/money-out/bank-transfer-mla/post) +------------ +----[mlm]---- +* [Create transaction to bank account](/developers/en/reference/money-out/bank-transfer-mlm/post) +------------ ----[mlb]---- * [Create transaction to bank account](/developers/en/reference/money-out/bank-transfer-mlb/post) * [Create transaction via Pix](/developers/en/reference/money-out/pix-transfer/post) -* [Get information about a transaction](/developers/en/reference/money-out/get-transaction/get) ------------- \ No newline at end of file +------------ +* [Get information about a transaction](/developers/en/reference/money-out/get-transaction/get) \ No newline at end of file diff --git a/guides/money-out/additional-endpoints-map.es.md b/guides/money-out/additional-endpoints-map.es.md index 1d13db8cd6..ac030fac4a 100644 --- a/guides/money-out/additional-endpoints-map.es.md +++ b/guides/money-out/additional-endpoints-map.es.md @@ -2,14 +2,17 @@ A continuación, te dejamos los enlaces a cada uno de los endpoints necesarios para integrar Money Out. - ----[mlc]---- -* [Crear transacción](/developers/es/reference/money-out/bank-transfer-mlc/post) -* [Obtener información sobre una transacción](/developers/es/reference/money-out/get-transaction/get) ------------- - +* [Crear transacción para cuenta bancaria](/developers/es/reference/money-out/bank-transfer-mlc/post) +------------ +----[mla]---- +* [Crear transacción para cuenta bancaria](/developers/es/reference/money-out/bank-transfer-mla/post) +------------ +----[mlm]---- +* [Crear transacción para cuenta bancaria](/developers/es/reference/money-out/bank-transfer-mlm/post) +------------ ----[mlb]---- * [Crear transacción para cuenta bancaria](/developers/es/reference/money-out/bank-transfer-mlb/post) * [Crear transacción vía Pix](/developers/es/reference/money-out/pix-transfer/post) -* [Obtener información sobre una transacción](/developers/es/reference/money-out/get-transaction/get) ------------- \ No newline at end of file +------------ +* [Obtener información sobre una transacción](/developers/es/reference/money-out/get-transaction/get) \ No newline at end of file diff --git a/guides/money-out/additional-endpoints-map.pt.md b/guides/money-out/additional-endpoints-map.pt.md index 6be632ea5e..2627cf7e0e 100644 --- a/guides/money-out/additional-endpoints-map.pt.md +++ b/guides/money-out/additional-endpoints-map.pt.md @@ -2,14 +2,17 @@ Abaixo, deixamos os links para cada um dos endpoints necessários para integrar o Money Out. - ----[mlc]---- -* [Criar transação](/developers/pt/reference/money-out/bank-transfer-mlc/post) -* [Obter informações sobre uma transação](/developers/pt/reference/money-out/get-transaction/get) ------------- - +* [Criar transação para conta bancária](/developers/pt/reference/money-out/bank-transfer-mlc/post) +------------ +----[mla]---- +* [Criar transação para conta bancária](/developers/pt/reference/money-out/bank-transfer-mla/post) +------------ +----[mlm]---- +* [Criar transação para conta bancária](/developers/pt/reference/money-out/bank-transfer-mlm/post) +------------ ----[mlb]---- * [Criar transação para conta bancária](/developers/pt/reference/money-out/bank-transfer-mlb/post) * [Criar transação via Pix](/developers/pt/reference/money-out/pix-transfer/post) -* [Obter informações sobre uma transação](/developers/pt/reference/money-out/get-transaction/get) ------------- \ No newline at end of file +------------ +* [Obter informações sobre uma transação](/developers/pt/reference/money-out/get-transaction/get) \ No newline at end of file diff --git a/guides/money-out/integration-configuration.en.md b/guides/money-out/integration-configuration.en.md index 80c492c644..d8a80c382c 100644 --- a/guides/money-out/integration-configuration.en.md +++ b/guides/money-out/integration-configuration.en.md @@ -3,7 +3,6 @@ The integration of Money Out is done by making a single API call to [v1/transaction-intents](https://api.mercadopago.com/v1/transaction-intents). This way, the transaction is created and processed in a single request and, if successful, the money will be available to be withdrawn to the destination account, without the need for additional steps. ----[mlb]---- - With Money Out, you can send money in two different ways: via Pix, or by transferring to a money account, whether it's a bank account or a Mercado Pago one. Follow the instructions below to learn how to integrate in each case. > WARNING @@ -85,7 +84,6 @@ curl -X POST \ | `transaction.to.accounts[n].owner.identification.number` | *Body*. Identification number of the holder of the destination account. | Required | 1234567890 | | `transaction.total_amount `| *Body*. Total amount of the transaction. It must be the same value indicated for `from.accounts.amount` and `to.accounts.amount`. | Required | 100,00 | - If the execution was successful, you will automatically receive a response with `status code 202`, indicating that the transaction was accepted, as in the example below: ```json @@ -332,9 +330,9 @@ If the execution was successful, you will automatically receive a response with | `transaction.to.accounts.number` | Unique number that represents the destination bank account. | | `transaction.total_amount` | Total value of the transaction. | | `transaction.statement_descriptor` | Additional message to the transaction. | ------------- -----[mlc]---- +------------ +----[mlc, mla, mlm]---- > WARNING > > Important @@ -348,7 +346,100 @@ To integrate Money Out with destination to bank accounts, you will need to send > Note > > Please note that only one destination account (`transaction.to`) per call is allowed. - +------------ +----[mla]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-4613*********761-11121*********92cd39015*********7bbc3cb-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "external_ref_1234", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.com.ar/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "015", + "number": "0150533701000132688355", + "holder": "Victor Hugo", + "owner": { + "identification": { + "number": "20209642647", + "type": "CUIT" + } + }, + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +}' +``` +------------ +----[mlm]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-6133*********794-11121*********edd13abd8*********82868e9-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "12345", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "646", + "number": "646180110400000007", + "holder": "JUAN JOSE MARIA", + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +}' +``` +------------ +----[mlc]---- ```curl curl -X POST \ 'https://api.mercadopago.com/v1/transaction-intents/process'\ @@ -362,7 +453,7 @@ curl -X POST \ "point_of_interaction": "{"type":"PSP_TRANSFER"}", "seller_configuration": { "notification_info": { - "notification_url": "http://example.cl/notification" + "notification_url": "http://exemplo.cl/notification" } }, "transaction": { @@ -393,7 +484,8 @@ curl -X POST \ } }' ``` - +------------ +----[mlc, mla]---- | Field | Description | Required/Optional | Example | |---|---|---|---| | `x-signature` | *Header*. Request signature with the body encrypted in base64 using the integrator's public and private keys. Check the [End-to-end encryption section](/developers/en/docs/money-out/end-to-end-encryption) if you need more information. | Required **only in the production environment**. | - | @@ -410,6 +502,24 @@ curl -X POST \ | `transaction.to.accounts[n].owner.identification.number` | *Body*. Identification number of the holder of the destination account. | Required | 1234567890 | | `transaction.total_amount `| *Body*.Total amount of the transaction. It must be the same value indicated for `from.accounts.amount` and `to.accounts.amount`. | Required | 100,00 | +------------ +----[mlm]---- +| Field | Description | Required/Optional | Example | +|---|---|---|---| +| `x-signature` | *Header*. Request signature with the body encrypted in base64 using the integrator's public and private keys. Check the [End-to-end encryption section](/developers/en/docs/money-out/end-to-end-encryption) if you need more information. | Required **only in the production environment**. | - | +| `x-enforce-signature` | *Header*. Boolean to indicate whether the integrator will send the signature or not. | **Not required** in the testing environment, and **required** in the production environment, where sending the signature is mandatory. | - | +| `external_reference` | *Body*. String with a reference to identify the transaction. It is generated by the integrator and it can be any value that allows transactions to be tracked as long as it does not have special characters (“”, [ ], (), @) and does not exceed 64 characters. Numbers (1234), letters (abcde) and middle and underscore hyphens (-; _) are allowed. Its value cannot be duplicated with another transaction. | Optional | MP0001 | +| `point_of_interaction.type` | *Body*. Fix value. It must always be `{"type":"PSP_TRANSFER"}` | Required | `{"type":"PSP_TRANSFER"}` | +| `seller_configuration.notification_info.notification_url` | *Body*. URL where notifications of events related to the transaction, such as status changes, will be received. This field has a limit of 500 characters. | Optional | http://example.cl/notification | +| `transaction.from.accounts.amount` | *Body*. Transaction amount, which will be withdrawn from the source account `from`. The minimum value is 0, and the maximum is 10000000000. | Required | 100,00 | +| `transaction.to.accounts.amount` | *Body*. Amount to be sent to the destination account indicated in `to`. It must be the same value indicated for `from.accounts.amount`. | Required | 100,00 | +| `transaction.to.accounts.bank_id` | *Body*. Identification number of the bank to which the destination account belongs. | Required | 99999004 | +| `transaction.to.accounts.type` | *Body*. Destination account type. Possible values are `current`, for bank accounts, and `mercadopago`, for Mercado Pago accounts. | Required | `current` / `mercadopago` | +| `transaction.to.accounts.number` | *Body*. Unique number representing the destination bank account. | Required | `10266732` | +| `transaction.total_amount `| *Body*.Total amount of the transaction. It must be the same value indicated for `from.accounts.amount` and `to.accounts.amount`. | Required | 100,00 | + +------------ + If the execution was successful, you will automatically receive a response with `status code 202`, indicating that the transaction was accepted, as in the example below. > WARNING @@ -418,60 +528,149 @@ If the execution was successful, you will automatically receive a response with > > Please note that this response may take a few seconds, and if its `status` is `pending`, you should make a call to [Get information about a transaction](/developers/en/docs/money-out/integration-configuration#bookmark_get_information_about_a_transaction) to check its update. -```json +----[mla]---- +```curl { - "created_date": "2021-01-01T00:00:00.000Z", - "external_reference": "123456", - "id": "0d5020ed", - "last_updated_date": "2021-01-01T00:00:00.000Z", + "created_date": "2024-11-13T15:04:25.699+00:00", + "external_reference": "external_ref_1234", + "id": "22dvqmseu9m", + "last_updated_date": "2024-11-13T15:04:31.256+00:00", "point_of_interaction": { - "type": "{\"type\":\"PSP_TRANSFER\"}" + "type": "PSP_TRANSFER" }, "seller_configuration": { "notification_info": { - "notification_url": "http://example.cl/notification" + "notification_url": "http://example.ar/notification" } }, - "status": "approved", + "status": "processed", "transaction": { "from": { "accounts": [ { - "amount": "100,00" + "amount": 25, + "status_details": [] } ] }, - "paid_amount": 100, + "paid_amount": 25, "payer": { - "id": 123456543 + "id": 1992483656 }, - "refunded_amount": 1, + "refunded_amount": 0, "to": { "accounts": [ { - "amount": "100,00", - "origin_id": "01AAAM001A1AY43FBR8WCM9CES", + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCK0VSV3TBSAADAGJQKG4GTY", "status_details": [ - {} - ], + "approved" + ] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` +------------ +----[mlm]---- +```curl +{ + "created_date": "2024-11-13T14:18:07.052+00:00", + "external_reference": "12345", + "id": "22dvqmseu6a", + "last_updated_date": "2024-11-13T14:18:07.663+00:00", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "status": "processed", + "transaction": { + "from": { + "accounts": [ + { + "amount": 25, + "status_details": [] + } + ] + }, + "paid_amount": 0, + "payer": { + "id": 1992483662 + }, + "refunded_amount": 0, + "to": { + "accounts": [ + { + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCJY70ACGJ2AP8433JGG0ZRY", + "status_details": [] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` +------------ +----[mlc]---- +```curl +curl -X POST \ + 'https://api.mercadopago.com/v1/transaction-intents/process'\ + -H 'Content-Type: application/json' \ + -H 'X-Idempotency-Key: {{idempotency_key}}' \ + -H 'x-Signature: true' \ + -H 'x-enforce-signature: false' \ + -H 'Authorization: Bearer TEST-7719*********832-03141*********ec9309854*********f1e54b5-1*********' \ + -d '{ + "external_reference": "MP0001", + "point_of_interaction": "{"type":"PSP_TRANSFER"}", + "seller_configuration": { + "notification_info": { + "notification_url": "http://exemplo.cl/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 100 + } + ] + }, + "to": { + "accounts": [ + { + "amount": 100, + "bank_id": "99999004", + "type": "current", + "number": "10266732", "owner": { "identification": { - "number": "1234567890", - "type": "RUT" + "type": "RUT", + "number": "111111111111" } - }, - "bank_id": "0000014", - "type": "checking_account", - "number": "123456" + } } ] }, - "total_amount": 100, - "statement_descriptor": "test" + "total_amount": 100 } -} +}' ``` - +------------ +----[mlc, mla]---- | Attribute | Description | |---|---| | `created_date` | Transaction creation date. It will be in YYYY-MM-DDTHH:MM:SS.SSSZ format. | @@ -496,6 +695,30 @@ If the execution was successful, you will automatically receive a response with | `transaction.total_amount` | Total value of the transaction. | | `transaction.statement_descriptor` | Additional message to the transaction. | +------------ +----[mlm]---- +| Attribute | Description | +|---|---| +| `created_date` | Transaction creation date. It will be in YYYY-MM-DDTHH:MM:SS.SSSZ format. | +| `external_reference` | External reference of the transaction, generated by the integrator when creating it. | +| `id` | Automatically generated unique transaction identifier. | +| `last_updated_date` | Last update of the transaction status. It will be in YYYY-MM-DDTHH:MM:SS.SSSZ format. | +| `point_of_interaction.type` | Point of interaction. It is a fix value, always `{"type":"PSP_TRANSFER"}`. | +| `seller_configuration.notification_info.notification_url` | URL where notifications of events related to the transaction, such as status changes, will be received. | +| `status` | Transaction status. To learn about possible status, go to [Possible transaction status](/developers/en/docs/money-out/integration-configuration#bookmark_possible_transaction_status). | +| `transaction.from.accounts.amount` |Amount debited from the origin Mercado Pago account. | +| `transaction.paid_amount` | Total amount charged to the account holder of the origin account. It will be equal to `from.accounts.amount`, unless there has been a total or partial refund, indicated in `refunded_amount`. | +| `transaction.payer.id` | Identifier of the integrator holding the origin account. | +| `transaction.refunded_amount` | In case of a refund, it will indicate the total amount refunded to the account holder of the origin account. If there was no refund, its value will be 0. | +| `transaction.to.accounts.amount` | Amount transferred to the destination account. Its value will be equal to `from.accounts.amount`, unless there has been a total or partial refund, the latter indicated in the `transaction.refunded_amount` field. | +| `transaction.to.accounts.origin_id` | Identifier that allows the transaction to be tracked within the banking system. | +| `transaction.to.accounts.amount.status_detail` | Detailed information about the transaction status. To learn about possible `status_detail`, refer to [Possible transaction status](/developers/en/docs/money-out/integration-configuration#bookmark_possible_transaction_status). | +| `transaction.to.accounts.bank_id` | Identification number of the bank to which the destination account belongs. | +| `transaction.to.accounts.type` | Destination account type. | +| `transaction.to.accounts.number` | Unique number that represents the destination bank account. | +| `transaction.total_amount` | Total value of the transaction. | +| `transaction.statement_descriptor` | Additional message to the transaction. | + ------------ ## Set up notifications @@ -542,7 +765,6 @@ You can see examples of the messages you will receive when registering an event The `data.id` attribute corresponds to the ID of the transaction being notified to you, the `id` parameter will be the identifier of the notification, and `status` will inform you whether it is the creation of the transaction or the update of its status. - ### Required actions after receiving the notification When you receive a notification on your platform, you should first validate the information of the notified resource. To do this, execute the request for [Get information about a transaction](/developers/en/docs/money-out/integration-configuration#bookmark_get_information_about_a_transaction) using the transaction ID that was notified to you. @@ -560,8 +782,8 @@ In the following table, you can find the main events, deadlines, and waiting tim | Fourth attempt | 48 hours | 5 seconds | | Fifth attempt | 96 hours | 5 seconds | - ## Get information about a transaction + If you wish, you can retrieve information about a transaction. This can be useful to confirm that it was created correctly, to check its `status`, or to verify the information received in your notifications. To do so, send a **GET** request with your Access Token to the endpoint [/v1/transaction-intents/{{transaction_intent_id}}](/developers/pt/reference/money-out/get-transaction/get), replacing `transaction_intent_id` with the ID obtained in the response at the time of creating the transaction. @@ -573,6 +795,104 @@ curl --location --request GET 'https://api.mercadopago.com/v1/transaction-intent If the data sent in the call is correct, you will receive a response like the following: +----[mla]---- +```json +{ + "created_date": "2024-11-13T15:04:25.699+00:00", + "external_reference": "external_ref_1234", + "id": "22dvqmseu9m", + "last_updated_date": "2024-11-13T15:04:31.256+00:00", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.ar/notification" + } + }, + "status": "processed", + "transaction": { + "from": { + "accounts": [ + { + "amount": 25, + "status_details": [] + } + ] + }, + "paid_amount": 25, + "payer": { + "id": 1992483656 + }, + "refunded_amount": 0, + "to": { + "accounts": [ + { + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCK0VSV3TBSAADAGJQKG4GTY", + "status_details": [ + "approved" + ] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` + +------------ +----[mlm]---- +```json +{ + "created_date": "2024-11-13T14:18:07.052+00:00", + "external_reference": "12345", + "id": "22dvqmseu6a", + "last_updated_date": "2024-11-13T14:18:07.663+00:00", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "status": "processed", + "transaction": { + "from": { + "accounts": [ + { + "amount": 25, + "status_details": [] + } + ] + }, + "paid_amount": 0, + "payer": { + "id": 1992483662 + }, + "refunded_amount": 0, + "to": { + "accounts": [ + { + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCJY70ACGJ2AP8433JGG0ZRY", + "status_details": [] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` +------------ +----[mlc]---- ```json { "created_date": "2021-01-01T00:00:00.000Z", @@ -626,6 +946,7 @@ If the data sent in the call is correct, you will receive a response like the fo } } ``` +------------ To know the details of each returned attribute, refer to the response in the [Withdrawals Configuration](/developers/en/docs/money-out/integration-configuration#bookmark_integration_configuration). @@ -649,4 +970,4 @@ Below, you can see all the possible status a transaction can go through during i | `rejected` | `high_risk` | The transaction is rejected due to fraud risk. Please make the request again. | | `rejected` | `insufficient_funds` | Transaction rejected due to insufficient funds in the origin account. Please make the request again. | | `rejected` | `other_reason` | Transaction rejected by default due to internal issues during processing. Please make the request again. | -| `rejected` | `review_manual` | The transaction is rejected and referred to fraud prevention for analysis. Please make the request again. | +| `rejected` | `review_manual` | The transaction is rejected and referred to fraud prevention for analysis. Please make the request again. | \ No newline at end of file diff --git a/guides/money-out/integration-configuration.es.md b/guides/money-out/integration-configuration.es.md index 16d9d3585a..6fdbe0a078 100644 --- a/guides/money-out/integration-configuration.es.md +++ b/guides/money-out/integration-configuration.es.md @@ -3,7 +3,6 @@ La integración de Money Out se realiza mediante la ejecución de un solo llamado a la API [v1/transaction-intents](https://api.mercadopago.com/v1/transaction-intents). Así, la transacción se crea y procesa en un solo *request* y, si la ejecución es exitosa, el dinero estará disponible para ser retirado en la cuenta de destino, sin necesidad de llevar adelante etapas adicionales. ----[mlb]---- - Con Money Out, puedes enviar dinero de dos formas distintas: Pix, o transferencia a cuentas de dinero, sean cuentas bancarias o de Mercado Pago. Sigue las instrucciones a continuación para saber cómo realizar la integración en cada caso. > WARNING @@ -85,7 +84,6 @@ curl -X POST \ | `transaction.to.accounts[n].owner.identification.number` | *Body*. Número de identificación del titular de la cuenta de destino. | Requerido | 1234567890 | | `transaction.total_amount `| *Body*. Monto total de la transacción. Debe ser el mismo valor indicado para `from.accounts.amount` y `to.accounts.amount` | Requerido | 100,00 | - Si la ejecución fue exitosa, recibirás automáticamente una respuesta con `status code 202`, que indica que la transacción fue aceptada. Puedes ver un ejemplo de respuesta exitosa a continuación: ```json @@ -160,7 +158,6 @@ Si la ejecución fue exitosa, recibirás automáticamente una respuesta con `sta | `transaction.total_amount` | Monto total de la transacción. | | `transaction.statement_descriptor` | Mensaje adicional a la transacción. | - ## Configurar retiros para cuentas bancarias Para integrar Money Out con destino a cuentas bancarias, primero obtén el listado de los bancos disponibles para realizar la transacción. Para hacerlo, envía un **GET** con tu Access Token al siguiente endpoint: @@ -333,9 +330,9 @@ Si la ejecución fue exitosa, recibirás una respuesta con `status code 202`, qu | `transaction.to.accounts.number` | Número único que representa la cuenta de destino. | | `transaction.total_amount` | Monto total de la transacción. | | `transaction.statement_descriptor` | Mensaje adicional a la transacción. | ------------- -----[mlc]---- +------------ +----[mlc, mla, mlm]---- > WARNING > > Importante @@ -349,7 +346,100 @@ Para integrar Money Out con destino a cuentas bancarias, deberás enviar un **PO > Nota > > Ten en cuenta que sólo se permite el envío de dinero a una cuenta de destino (`transaction.to`) por llamado. - +------------ +----[mla]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-4613*********761-11121*********92cd39015*********7bbc3cb-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "external_ref_1234", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.com.ar/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "015", + "number": "0150533701000132688355", + "holder": "Victor Hugo", + "owner": { + "identification": { + "number": "20209642647", + "type": "CUIT" + } + }, + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +}' +``` +------------ +----[mlm]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-6133*********794-11121*********edd13abd8*********82868e9-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "12345", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "646", + "number": "646180110400000007", + "holder": "JUAN JOSE MARIA", + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +}' +``` +------------ +----[mlc]---- ```curl curl -X POST \ 'https://api.mercadopago.com/v1/transaction-intents/process'\ @@ -363,7 +453,7 @@ curl -X POST \ "point_of_interaction": "{"type":"PSP_TRANSFER"}", "seller_configuration": { "notification_info": { - "notification_url": "http://ejemplo.cl/notification" + "notification_url": "http://exemplo.cl/notification" } }, "transaction": { @@ -394,7 +484,8 @@ curl -X POST \ } }' ``` - +------------ +----[mlc, mla]---- | Campo | Descripción | Requerido/Opcional | Ejemplo | |---|---|---|---| | `x-signature` | *Header*. Firma de la solicitud con el cuerpo cifrado en base 64 con las claves pública y privada del integrador. Accede a la sección [Cifrado punta a punta](/developers/es/docs/money-out/end-to-end-encryption) si necesitas más información. | Requerido **sólo en el ambiente de producción**. | - | @@ -411,7 +502,25 @@ curl -X POST \ | `transaction.to.accounts[n].owner.identification.number` | *Body*. Número de identificación del titular de la cuenta de destino. | Requerido | 1234567890 | | `transaction.total_amount `| Body. Monto total de la transacción. Debe ser el mismo valor indicado para `from.accounts.amount` y `to.accounts.amount` | Requerido | 100,00 | -Si la ejecución fue exitosa, recibirás una respuesta con `status code 202`, que indica que la transacción fue aceptada, como en el ejemplo a continuación. +------------ +----[mlm]---- +| Campo | Descripción | Requerido/Opcional | Ejemplo | +|---|---|---|---| +| `x-signature` | *Header*. Firma de la solicitud con el cuerpo cifrado en base 64 con las claves pública y privada del integrador. Accede a la sección [Cifrado punta a punta](/developers/es/docs/money-out/end-to-end-encryption) si necesitas más información. | Requerido **sólo en el ambiente de producción**. | - | +| `x-enforce-signature` | *Header*. Booleano para indicar si el integrador enviará o no la firma. | **No requerido** en ambiente de pruebas, y **requerido** en ambiente productivo, que es cuando es obligatorio enviar la firma. | - | +| `external_reference` | *Body*. String con una referencia para identificar la transacción. Es generada por el integrador y puede ser cualquier valor que permita hacer un seguimiento de las transacciones siempre que no tenga caracteres especiales (“”, [ ], (), @) y no exceda los 64 caracteres. Sí están permitidos números (1234), letras (abcde) y guiones medios y bajos (-; _). Su valor no puede ser duplicado con otras transacciones. | Opcional | MP0001 | +| `point_of_interaction.type` | *Body*. Valor fijo. Siempre debe ser `{"type":"PSP_TRANSFER"}` | Requerido | `{"type":"PSP_TRANSFER"}` | +| `seller_configuration.notification_info.notification_url` | *Body*. URL en la que se recibirán las notificaciones de los eventos relacionados a la transacción, como sus cambios de estado. Este campo tiene un límite de 500 caracteres. | Opcional | http://ejemplo.cl/notification | +| `transaction.from.accounts.amount` | *Body*. Valor de la transacción, que será retirado de la cuenta de origen `from`. El valor mínimo es 0, y el máximo, 10000000000. | Requerido | 100,00 | +| `transaction.to.accounts.amount` | *Body*. Monto a enviar a la cuenta destino indicada en el `to`. Debe ser el mismo valor indicado para `from.accounts.amount`. | Requerido | 100,00 | +| `transaction.to.accounts.bank_id` | *Body*. Número identificador del banco al que pertenece la cuenta de destino. | Requerido | 99999004 | +| `transaction.to.accounts.type` | *Body*. Tipo de cuenta de destino. Los valores posibles son `current`, para cuentas bancarias, y `mercadopago`, para cuentas Mercado Pago. | Requerido | `current` / `mercadopago` | +| `transaction.to.accounts.number` | *Body*. Número único que representa la cuenta bancaria de destino. | Requerido | `10266732` | +| `transaction.total_amount `| Body. Monto total de la transacción. Debe ser el mismo valor indicado para `from.accounts.amount` y `to.accounts.amount` | Requerido | 100,00 | + +------------ + +Si la ejecución fue exitosa, recibirás una respuesta con `status code 200`, que indica que la transacción fue aceptada, como en el ejemplo a continuación. > WARNING > @@ -419,60 +528,149 @@ Si la ejecución fue exitosa, recibirás una respuesta con `status code 202`, qu > > Ten en cuenta que esta respuesta puede tardar unos segundos y que, en caso de que su `status` sea `pending`, deberás ejecutar el llamado para [Obtener información sobre una transacción](/developers/es/docs/money-out/integration-configuration#bookmark_obtener_información_sobre_una_transacción) para verificar su actualización. -```json +----[mla]---- +```curl { - "created_date": "2021-01-01T00:00:00.000Z", - "external_reference": "123456", - "id": "0d5020ed", - "last_updated_date": "2021-01-01T00:00:00.000Z", + "created_date": "2024-11-13T15:04:25.699+00:00", + "external_reference": "external_ref_1234", + "id": "22dvqmseu9m", + "last_updated_date": "2024-11-13T15:04:31.256+00:00", "point_of_interaction": { - "type": "{\"type\":\"PSP_TRANSFER\"}" + "type": "PSP_TRANSFER" }, "seller_configuration": { "notification_info": { - "notification_url": "http://example.cl/notification" + "notification_url": "http://example.ar/notification" } }, - "status": "approved", + "status": "processed", "transaction": { "from": { "accounts": [ { - "amount": "100,00" + "amount": 25, + "status_details": [] } ] }, - "paid_amount": 100, + "paid_amount": 25, "payer": { - "id": 123456543 + "id": 1992483656 }, - "refunded_amount": 1, + "refunded_amount": 0, "to": { "accounts": [ { - "amount": "100,00", - "origin_id": "01AAAM001A1AY43FBR8WCM9CES", + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCK0VSV3TBSAADAGJQKG4GTY", "status_details": [ - {} - ], + "approved" + ] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` +------------ +----[mlm]---- +```curl +{ + "created_date": "2024-11-13T14:18:07.052+00:00", + "external_reference": "12345", + "id": "22dvqmseu6a", + "last_updated_date": "2024-11-13T14:18:07.663+00:00", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "status": "processed", + "transaction": { + "from": { + "accounts": [ + { + "amount": 25, + "status_details": [] + } + ] + }, + "paid_amount": 0, + "payer": { + "id": 1992483662 + }, + "refunded_amount": 0, + "to": { + "accounts": [ + { + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCJY70ACGJ2AP8433JGG0ZRY", + "status_details": [] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` +------------ +----[mlc]---- +```curl +curl -X POST \ + 'https://api.mercadopago.com/v1/transaction-intents/process'\ + -H 'Content-Type: application/json' \ + -H 'X-Idempotency-Key: {{idempotency_key}}' \ + -H 'x-Signature: true' \ + -H 'x-enforce-signature: false' \ + -H 'Authorization: Bearer TEST-7719*********832-03141*********ec9309854*********f1e54b5-1*********' \ + -d '{ + "external_reference": "MP0001", + "point_of_interaction": "{"type":"PSP_TRANSFER"}", + "seller_configuration": { + "notification_info": { + "notification_url": "http://exemplo.cl/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 100 + } + ] + }, + "to": { + "accounts": [ + { + "amount": 100, + "bank_id": "99999004", + "type": "current", + "number": "10266732", "owner": { "identification": { - "number": "1234567890", - "type": "RUT" + "type": "RUT", + "number": "111111111111" } - }, - "bank_id": "0000014", - "type": "checking_account", - "number": "123456" + } } ] }, - "total_amount": 100, - "statement_descriptor": "cobro de prueba" + "total_amount": 100 } -} +}' ``` - +------------ +----[mlc, mla]---- | Atributo | Descripción | |---|---| | `created_date` | Fecha de creación de la transacción. Será devuelto en formato AAAA-MM-DDTHH:MM:SS.SSSZ. | @@ -497,6 +695,30 @@ Si la ejecución fue exitosa, recibirás una respuesta con `status code 202`, qu | `transaction.total_amount` | Monto total de la transacción. | | `transaction.statement_descriptor` | Mensaje adicional a la transacción. | +------------ +----[mlm]---- +| Atributo | Descripción | +|---|---| +| `created_date` | Fecha de creación de la transacción. Será devuelto en formato AAAA-MM-DDTHH:MM:SS.SSSZ. | +| `external_reference` | Referencia externa de la transacción, que fue generada por el integrador al momento de crearla. | +| `id` | Identificador único de la transacción, generado automáticamente. | +| `last_updated_date` | Última actualización del estado de la transacción. Será devuelto en formato AAAA-MM-DDTHH:MM:SS.SSSZ. | +| `point_of_interaction.type` | Punto de interacción. Es un valor fijo, siempre `{"type":"PSP_TRANSFER"}`. | +| `seller_configuration.notification_info.notification_url` | URL en la que se recibirán las notificaciones de los eventos relacionados a la transacción, como sus cambios de estado. | +| `status` | Estado de la transacción. Para conocer los posibles estados, dirígete a [Posibles estados de una transacción](/developers/es/docs/money-out/integration-configuration#bookmark_posibles_estados_de_una_transacción). | +| `transaction.from.accounts.amount` | Monto debitado de la cuenta Mercado Pago de origen. | +| `transaction.paid_amount` | Monto total cobrado al titular de la cuenta de origen. Será igual a `from.accounts.amount`, salvo que haya habido un reembolso total o parcial, indicado en `refunded_amount`. | +| `transaction.payer.id` | Identificador del integrador titular de la cuenta de origen. | +| `transaction.refunded_amount` | En caso de un reembolso, indicará el monto total reembolsado al titular de la cuenta de origen. Si no hubo ningún reembolso, su valor será 0. | +| `transaction.to.accounts.amount` | Monto transferido a la cuenta de destino. Su valor será igual a `from.accounts.amount`, salvo que haya habido un reembolso total o parcial, indicado este último en el campo `transaction.refunded_amount`. | +| `transaction.to.accounts.origin_id` | Identificador que permite rastrear la transacción dentro del sistema bancario. | +| `transaction.to.accounts.amount.status_detail` | Información detallada del estado de la transacción. Para conocer los posibles `status_detail`, dirígete a [Posibles estados de una transacción](/developers/es/docs/money-out/integration-configuration#bookmark_posibles_estados_de_una_transacción). | +| `transaction.to.accounts.bank_id` | Número identificador del banco al que pertence la cuenta de destino. | +| `transaction.to.accounts.type` | Tipo de cuenta de destino. | +| `transaction.to.accounts.number` | Número único que representa la cuenta de destino. | +| `transaction.total_amount` | Monto total de la transacción. | +| `transaction.statement_descriptor` | Mensaje adicional a la transacción. | + ------------ ## Configurar notificaciones @@ -543,7 +765,6 @@ Puedes ver ejemplos de los mensajes que recibirás al registrarse un evento a co El atributo `data.id` corresponde al ID de la transacción sobre la que se te está notificando, el parámetro `id` será el identificador de la notificación, y `status` te informará, o bien la creación de la transacción, o bien la actualización del estado de la misma. - ### Acciones necesarias después de recibir la notificación Cuando recibes una notificación en tu plataforma debes, primero, validar la información del recurso notificado. Para eso, ejecuta el request para [Obtener información sobre una transacción](/developers/es/reference/money-out/get-transaction/get) utilizando el ID de la transacción que te fue notificada. @@ -561,8 +782,8 @@ En la siguiente tabla puedes encontrar los principales eventos, plazos y tiempo | Cuarto intento | 48 horas | 5 segundos | | Quinto intento | 96 horas | 5 segundos | - ## Obtener información sobre una transacción + Si lo deseas, puedes obtener información sobre una transacción. Esto puede ser útil para corroborar que la misma fue creada correctamente, para consultar su `status`, o para verificar la información recibida en tus notificaciones. Para hacerlo, envía un **GET** con tu Access Token al endpoint [/v1/transaction-intents//{{transaction_intent_id}}](https://api.mercadopago.com/v1/transaction-intents/{id}), reemplazando `transaction_intent_id` por el ID obtenido en la respuesta al momento de crear la transacción. @@ -574,6 +795,104 @@ curl --location --request GET 'https://api.mercadopago.com/v1/transaction-intent Si los datos enviados en el llamado son correctos, recibirás una respuesta como la siguiente: +----[mla]---- +```json +{ + "created_date": "2024-11-13T15:04:25.699+00:00", + "external_reference": "external_ref_1234", + "id": "22dvqmseu9m", + "last_updated_date": "2024-11-13T15:04:31.256+00:00", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.ar/notification" + } + }, + "status": "processed", + "transaction": { + "from": { + "accounts": [ + { + "amount": 25, + "status_details": [] + } + ] + }, + "paid_amount": 25, + "payer": { + "id": 1992483656 + }, + "refunded_amount": 0, + "to": { + "accounts": [ + { + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCK0VSV3TBSAADAGJQKG4GTY", + "status_details": [ + "approved" + ] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` + +------------ +----[mlm]---- +```json +{ + "created_date": "2024-11-13T14:18:07.052+00:00", + "external_reference": "12345", + "id": "22dvqmseu6a", + "last_updated_date": "2024-11-13T14:18:07.663+00:00", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "status": "processed", + "transaction": { + "from": { + "accounts": [ + { + "amount": 25, + "status_details": [] + } + ] + }, + "paid_amount": 0, + "payer": { + "id": 1992483662 + }, + "refunded_amount": 0, + "to": { + "accounts": [ + { + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCJY70ACGJ2AP8433JGG0ZRY", + "status_details": [] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` +------------ +----[mlc]---- ```json { "created_date": "2021-01-01T00:00:00.000Z", @@ -627,10 +946,10 @@ Si los datos enviados en el llamado son correctos, recibirás una respuesta como } } ``` +------------ Para conocer los detalles de cada atributo devuelto, consulta la respuesta a [Configurar retiros](/developers/es/docs/money-out/integration-configuration#bookmark_integration_configuration). - ### Posibles estados de una transacción Cuando creas una transacción, o bien cuando consultas información relativa a ella, las respuestas te devolverán dos campos que te permitirán conocer el estado en el que se encuentra. @@ -651,4 +970,4 @@ A continuación puedes ver todos los estados por los que puede pasar una transac | `rejected` | `high_risk` | La transacción es rechazada por riesgo de fraude. Realiza nuevamente el llamado. | | `rejected` | `insufficient_funds` | Transacción rechazada por fondos insuficientes en la cuenta de origen. Realiza nuevamente el llamado. | | `rejected` | `other_reason` | Transacción rechazada por defecto debido a problemas internos durante su procesamiento. Realiza nuevamente el llamado. | -| `rejected` | `review_manual` | La transacción es rechazada y encaminada a prevención al fraude para análisis. Realiza nuevamente el llamado. | +| `rejected` | `review_manual` | La transacción es rechazada y encaminada a prevención al fraude para análisis. Realiza nuevamente el llamado. | \ No newline at end of file diff --git a/guides/money-out/integration-configuration.pt.md b/guides/money-out/integration-configuration.pt.md index abd4e1fdd2..13896cf688 100644 --- a/guides/money-out/integration-configuration.pt.md +++ b/guides/money-out/integration-configuration.pt.md @@ -3,7 +3,6 @@ A integração de Money Out é realizada executando uma única chamada à API [v1/transaction-intents](https://api.mercadopago.com/v1/transaction-intents). Isso significa que a transação é criada e processada em uma única solicitação e, se a execução for bem-sucedida, o dinheiro estará disponível para ser retirado na conta de destino, sem a necessidade de etapas adicionais. ----[mlb]---- - Com o Money Out, é possível enviar dinheiro de duas formas distintas: Pix ou transferência entre contas, sejam elas contas do Mercado Pago ou bancárias. Siga as instruções abaixo para saber como realizar a integração em cada caso. > WARNING @@ -22,7 +21,6 @@ Para integrar o Money Out e permitir retiradas de dinheiro via Pix, é necessár > > Tenha em mente que cada chamada permite o envio de dinheiro para apenas uma conta de destino (`transaction.to`). A chave Pix do integrador deve ter sido previamente cadastrada, e a chave Pix da conta destino precisa estar ativa. - ```curl curl -X POST \ 'https://api.mercadopago.com/v1/transaction-intents/process'\ @@ -86,7 +84,6 @@ curl -X POST \ | `transaction.to.accounts[n].owner.identification.number` | *Body*. Número de identificação do titular da conta de destino. | Obrigatório | 1234567890 | | `transaction.total_amount `| *Body*. Montante total da transação. Deve ser o mesmo valor indicado para `from.accounts.amount` e `to.accounts.amount` | Obrigatório | 100,00 | - Se a execução for bem-sucedida, você receberá automaticamente uma resposta com o `status code 202`, indicando que a transação foi aceita, como no exemplo a seguir: ```json @@ -173,7 +170,6 @@ curl --request GET \ Em seguida, se o banco ao qual a conta de destino pertence estiver disponível para realizar a transação, envie um **POST**, com seu **Access Token** no *header* `Authorization` e sua **chave de idempotencia** no *header* `X-Idempotency-Key`, para o endpoint [/v1/transaction-intents/process](/developers/pt/reference/money-out/bank-transfer-mlb/post). Os parâmetros correspondentes devem ser enviados conforme as especificações detalhadas na tabela a seguir. - > NOTE > > Nota @@ -335,9 +331,8 @@ Se a execução for bem-sucedida, você receberá como resposta um `status code | `transaction.total_amount` | Valor total da transação. | | `transaction.statement_descriptor` | Mensagem adicional para a transação. | ------------- - -----[mlc]---- +------------ +----[mlc, mla, mlm]---- > WARNING > > Importante @@ -346,13 +341,105 @@ Se a execução for bem-sucedida, você receberá como resposta um `status code Para integrar Money Out e permitir retiradas de dinheiro para contas bancárias, é necessário enviar um **POST**, com seu **Access Token** no *header* `Authorization` e sua **chave de idempotencia** no *header* `X-Idempotency-Key`, para o endpoint [/v1/transaction-intents/process](/developers/pt/reference/money-out/bank-transfer-mlc/post). Os parâmetros correspondentes devem ser enviados conforme as especificações detalhadas na tabela a seguir. - > NOTE > > Nota > > Tenha em mente que cada chamada permite o envio de dinheiro para apenas uma conta de destino (`transaction.to`). - +------------ +----[mla]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-4613*********761-11121*********92cd39015*********7bbc3cb-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "external_ref_1234", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.com.ar/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "015", + "number": "0150533701000132688355", + "holder": "Victor Hugo", + "owner": { + "identification": { + "number": "20209642647", + "type": "CUIT" + } + }, + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +}' +``` +------------ +----[mlm]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-6133*********794-11121*********edd13abd8*********82868e9-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "12345", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "646", + "number": "646180110400000007", + "holder": "JUAN JOSE MARIA", + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +}' +``` +------------ +----[mlc]---- ```curl curl -X POST \ 'https://api.mercadopago.com/v1/transaction-intents/process'\ @@ -397,7 +484,8 @@ curl -X POST \ } }' ``` - +------------ +----[mlc, mla]---- | Campo | Descrição | Obrigatório/Opcional | Exemplo | |---|---|---|---| | `x-signature` | *Header*. Assinatura da solicitação com o corpo criptografado em base 64 usando as chaves pública e privada do integrador. Acesse a seção [Criptografia Ponta a Ponta](/developers/pt/docs/money-out/end-to-end-encryption) se precisar de mais informações. | Obrigatório **apenas no ambiente de produção**. | - | @@ -414,7 +502,25 @@ curl -X POST \ | `transaction.to.accounts[n].owner.identification.number` | *Body*. Número de identificação do titular da conta de destino. | Obrigatório | 1234567890 | | `transaction.total_amount `| Body. Montante total da transação. Deve ser o mesmo valor indicado para `from.accounts.amount` e `to.accounts.amount` | Obrigatório | 100,00 | -Se a execução for bem-sucedida, você receberá como resposta um `status code 202`, indicando que a transação foi aceita, como no exemplo a seguir. +------------ +----[mlm]---- +| Campo | Descrição | Obrigatório/Opcional | Exemplo | +|---|---|---|---| +| `x-signature` | *Header*. Assinatura da solicitação com o corpo criptografado em base 64 usando as chaves pública e privada do integrador. Acesse a seção [Criptografia Ponta a Ponta](/developers/pt/docs/money-out/end-to-end-encryption) se precisar de mais informações. | Obrigatório **apenas no ambiente de produção**. | - | +| `x-enforce-signature` | *Header*. Booleano que indica se o integrador enviará ou não a assinatura. | **Opcional** em ambiente de testes, e **obrigatório** em ambiente produtivo, que é quando é obrigatório o envio da assinatura. | - | +| `external_reference` | *Body*. String com uma referência para identificar a transação. Essa referência é gerada pelo integrador e pode ser qualquer valor que permita rastrear as transações, desde que não possua caracteres especiais (“”, [ ], (), @) e não exceda 64 caracteres. São permitidos números (1234), letras (abcde), hífens (-) e underlines (_), e não pode ser duplicada. | Opcional | MP0001 | +| `point_of_interaction.type` | *Body*. Valor fixo. Sempre deve ser `{"type":"PSP_TRANSFER"}` | Obrigatório | `{"type":"PSP_TRANSFER"}` | +| `seller_configuration.notification_info.notification_url` | *Body*. URL onde receberá as notificações de eventos relacionados à transação, como mudanças de status. Este campo tem um limite de 500 caracteres. | Opcional | http://exemplo.cl/notification | +| `transaction.from.accounts.amount` | *Body*. Valor da transação, que será retirado da conta de origem `from`. O valor mínimo é 0, e o valor máximo é 10000000000. | Obrigatório | 100,00 | +| `transaction.to.accounts.amount` | *Body*. Valor a ser enviado para a conta de destino indicado no `to`. Deve ser o mesmo valor indicado para `from.accounts.amount`. | Obrigatório | 100,00 | +| `transaction.to.accounts.bank_id` | *Body*. Número identificador do banco ao qual pertence a conta de destino. | Obrigatório | 99999004 | +| `transaction.to.accounts.type` | *Body*. Tipo de conta de destino. Os valores possíveis são `current`, para contas bancárias, e `mercadopago`, para contas do Mercado Pago. | Obrigatório | `current` / `mercadopago` | +| `transaction.to.accounts.number` | *Body*. Número único que representa cada conta bancária. Neste caso, o número único da conta de destino. | Obrigatório | `10266732` | +| `transaction.total_amount `| Body. Montante total da transação. Deve ser o mesmo valor indicado para `from.accounts.amount` e `to.accounts.amount` | Obrigatório | 100,00 | + +------------ + +Se a execução for bem-sucedida, você receberá como resposta um `status code 200`, indicando que a transação foi aceita, como no exemplo a seguir. > WARNING > @@ -422,6 +528,103 @@ Se a execução for bem-sucedida, você receberá como resposta um `status code > > Esta resposta pode demorar alguns segundos. Se seu `status` for `pending`, deve-se executar a requisição para [Obter informações sobre uma transação](/developers/pt/docs/money-out/integration-configuration#bookmark_obter_informações_sobre_uma_transação) para verificar sua atualização. +----[mla]---- +```curl +{ + "created_date": "2024-11-13T15:04:25.699+00:00", + "external_reference": "external_ref_1234", + "id": "22dvqmseu9m", + "last_updated_date": "2024-11-13T15:04:31.256+00:00", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.ar/notification" + } + }, + "status": "processed", + "transaction": { + "from": { + "accounts": [ + { + "amount": 25, + "status_details": [] + } + ] + }, + "paid_amount": 25, + "payer": { + "id": 1992483656 + }, + "refunded_amount": 0, + "to": { + "accounts": [ + { + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCK0VSV3TBSAADAGJQKG4GTY", + "status_details": [ + "approved" + ] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` +------------ +----[mlm]---- +```curl +{ + "created_date": "2024-11-13T14:18:07.052+00:00", + "external_reference": "12345", + "id": "22dvqmseu6a", + "last_updated_date": "2024-11-13T14:18:07.663+00:00", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "status": "processed", + "transaction": { + "from": { + "accounts": [ + { + "amount": 25, + "status_details": [] + } + ] + }, + "paid_amount": 0, + "payer": { + "id": 1992483662 + }, + "refunded_amount": 0, + "to": { + "accounts": [ + { + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCJY70ACGJ2AP8433JGG0ZRY", + "status_details": [] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` +------------ +----[mlc]---- ```json { "created_date": "2021-01-01T00:00:00.000Z", @@ -476,6 +679,8 @@ Se a execução for bem-sucedida, você receberá como resposta um `status code } ``` +------------ +----[mlc, mla]---- | Atributo | Descrição | |---|---| | `created_date` | Data de criação da transação. Será retornada no formato YYYY-MM-DDTHH:MM:SS.SSSZ. | @@ -500,6 +705,30 @@ Se a execução for bem-sucedida, você receberá como resposta um `status code | `transaction.total_amount` | Valor total da transação. | | `transaction.statement_descriptor` | Mensagem adicional para a transação. | +------------ +----[mlm]---- +| Atributo | Descrição | +|---|---| +| `created_date` | Data de criação da transação. Será retornada no formato YYYY-MM-DDTHH:MM:SS.SSSZ. | +| `external_reference` | Referência externa da transação, gerada pelo integrador na hora da criação. | +| `id` | Identificador único da transação, gerado automaticamente. | +| `last_updated_date` | Última atualização do status da transação. Será retornada no formato YYYY-MM-DDTHH:MM:SS.SSSZ. | +| `point_of_interaction.type` | Ponto de interação. Valor fixo. Sempre deve ser `{"type":"PSP_TRANSFER"}`. | +| `seller_configuration.notification_info.notification_url` | URL onde receberá as notificações de eventos relacionados à transação, como mudanças de status. | +| `status` | Status da transação. Para verificar os possíveis status, consulte a seção [Possíveis status de uma transação](/developers/pt/docs/money-out/integration-configuration#bookmark_possíveis_status_de_uma_transação). | +| `transaction.from.accounts.amount` | Valor debitado da conta Mercado Pago de origem. | +| `transaction.paid_amount` | Valor total cobrado ao titular da conta de origem. Será igual a `from.accounts.amount`, a menos que tenha havido reembolso total ou parcial, indicado em `refunded_amount` | +| `transaction.payer.id` | Identificador do integrador titular da conta de origem. | +| `transaction.refunded_amount` | No caso de reembolso, indicará o valor total reembolsado ao titular da conta de origem. Se não houve reembolso, seu valor será 0. | +| `transaction.to.accounts.amount` | Valor transferido para a conta de destino. O valor será igual a `from.accounts.amount`, a menos que tenha havido reembolso total ou parcial indicado no campo `transaction.refunded_amount`. | +| `transaction.to.accounts.origin_id` | Identificador que permite rastrear a transação dentro do sistema bancário. | +| `transaction.to.accounts.amount.status_detail` | Informação detalhada do status da operação. Para verificar os possíveis `status_detail`, consulte a seção [Possíveis status de uma transação](/developers/pt/docs/money-out/integration-configuration#bookmark_possíveis_status_de_uma_transação). | +| `transaction.to.accounts.bank_id` | Número identificador do banco ao qual pertence a conta de destino. | +| `transaction.to.accounts.type` | Tipo de conta de destino. | +| `transaction.to.accounts.number` | Número único que representa a conta de destino. | +| `transaction.total_amount` | Valor total da transação. | +| `transaction.statement_descriptor` | Mensagem adicional para a transação. | + ------------ ## Configurar notificações @@ -510,7 +739,6 @@ Você pode **configurar as notificações Webhooks ao fazer a chamada para criar Veja abaixo exemplos que ilustram as mensagens retornadas quando ocorre um evento. - #### - Mensagem ao criar uma transação ```json @@ -547,7 +775,6 @@ Veja abaixo exemplos que ilustram as mensagens retornadas quando ocorre um event O atributo `data.id` corresponde ao ID da transação sobre a qual você está sendo notificado, o parâmetro `id` será o identificador da notificação e o `status` informará sobre a criação da transação ou sua atualização. - ### Ações necessárias após receber uma notificação Ao receber uma notificação na sua plataforma, é necessário, primeiramente, validar as informações do recurso notificado. Para realizar isso, execute a requisição [Obter informações sobre uma transação](/developers/pt/docs/money-out/integration-configuration#bookmark_obter_informações_sobre_uma_transação) utilizando o ID da transação que foi notificada. @@ -565,7 +792,6 @@ Na tabela abaixo listamos os principais eventos, prazos e tempo de espera para o | Quarta tentativa | 48 horas | 5 segundos | | Quinta tentativa | 96 horas | 5 segundos | - ## Obter informações sobre uma transação Após criar uma transação, é possível obter informações detalhadas sobre ela. Isso permite verificar se ela foi criada corretamente, consultar seu status ou confirmar as informações recebidas em suas notificações. @@ -579,6 +805,104 @@ curl --location --request GET 'https://api.mercadopago.com/v1/transaction-intent Se os dados enviados na chamada estiverem corretos, você receberá uma resposta como a seguinte: +----[mla]---- +```json +{ + "created_date": "2024-11-13T15:04:25.699+00:00", + "external_reference": "external_ref_1234", + "id": "22dvqmseu9m", + "last_updated_date": "2024-11-13T15:04:31.256+00:00", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.ar/notification" + } + }, + "status": "processed", + "transaction": { + "from": { + "accounts": [ + { + "amount": 25, + "status_details": [] + } + ] + }, + "paid_amount": 25, + "payer": { + "id": 1992483656 + }, + "refunded_amount": 0, + "to": { + "accounts": [ + { + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCK0VSV3TBSAADAGJQKG4GTY", + "status_details": [ + "approved" + ] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` + +------------ +----[mlm]---- +```json +{ + "created_date": "2024-11-13T14:18:07.052+00:00", + "external_reference": "12345", + "id": "22dvqmseu6a", + "last_updated_date": "2024-11-13T14:18:07.663+00:00", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "status": "processed", + "transaction": { + "from": { + "accounts": [ + { + "amount": 25, + "status_details": [] + } + ] + }, + "paid_amount": 0, + "payer": { + "id": 1992483662 + }, + "refunded_amount": 0, + "to": { + "accounts": [ + { + "amount": 25, + "description": "envio de 25", + "origin_id": "01JCJY70ACGJ2AP8433JGG0ZRY", + "status_details": [] + } + ] + }, + "total_amount": 25, + "statement_descriptor": "", + "binary_mode": false + } +} +``` +------------ +----[mlc]---- ```json { "created_date": "2021-01-01T00:00:00.000Z", @@ -590,7 +914,7 @@ Se os dados enviados na chamada estiverem corretos, você receberá uma resposta }, "seller_configuration": { "notification_info": { - "notification_url": "http://example.com.br/notification" + "notification_url": "http://example.cl/notification" } }, "status": "approved", @@ -618,7 +942,7 @@ Se os dados enviados na chamada estiverem corretos, você receberá uma resposta "owner": { "identification": { "number": "1234567890", - "type": "CPF" + "type": "RUT" } }, "bank_id": "0000014", @@ -632,10 +956,10 @@ Se os dados enviados na chamada estiverem corretos, você receberá uma resposta } } ``` +------------ Para obter detalhes sobre cada atributo retornado, consulte a resposta à [Configurar retiradas de dinheiro](/developers/pt/docs/money-out/integration-configuration#bookmark_integration_configuration). - ### Possíveis status de uma transação Quando uma transação é criada, ou quando informações relacionadas à ela são consultadas, as respostas retornarão dois campos com o detalhamento do status em que ela se encontra. @@ -656,4 +980,4 @@ Veja abaixo todos os status pelos quais uma transação pode passar durante seu | `rejected` | `high_risk` | A transação é rejeitada devido ao risco de fraude. Execute novamente a solicitação. | | `rejected` | `insufficient_funds` | A transação foi rejeitada devido a fundos insuficientes na conta de origem. Execute novamente a solicitação. | | `rejected` | `other_reason` | A transação foi rejeitada por padrão devido a problemas internos durante o processamento. Execute novamente a solicitação. | -| `rejected` | `review_manual` | A transação é rejeitada e enviada para análise de prevenção de fraudes. Execute novamente a solicitação. | +| `rejected` | `review_manual` | A transação é rejeitada e enviada para análise de prevenção de fraudes. Execute novamente a solicitação. | \ No newline at end of file diff --git a/guides/money-out/integration-test.en.md b/guides/money-out/integration-test.en.md index 1a62b7b700..9a2d7aa54a 100644 --- a/guides/money-out/integration-test.en.md +++ b/guides/money-out/integration-test.en.md @@ -1,4 +1,4 @@ -# Integration Test +# Integration test Before going live, we recommend testing the proper functioning of your integration and transaction processing. This will allow you to verify if the integration was done correctly and if payments are being processed without errors. @@ -139,7 +139,99 @@ curl --location 'https://api.mercadopago.com/v1/transaction-intents/process' \ | Any other value | New resources will be generated with a `status` of `processed`. | ------------ +----[mla]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-461396*********1-111215-*********cd39015a8*********bc3cb-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "external_ref_1234", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.com.ar/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "015", + "number": "0150533701000132688355", + "holder": "Victor Hugo", + "owner": { + "identification": { + "number": "20209642647", + "type": "CUIT" + } + }, + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +}' +``` +------------ +----[mlm]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-6133*********794-11121*********edd13abd8*********82868e9-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data ' { + "external_reference": "12345", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "646", + "number": "646180110400000007", + "holder": "JUAN JOSE MARIA", + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } + +``` +------------ ----[mlc]---- ```curl curl --location 'https://api.mercadopago.com/v1/transaction-intents/process' \ @@ -186,6 +278,8 @@ curl --location 'https://api.mercadopago.com/v1/transaction-intents/process' \ }' ``` +------------ +----[mla, mlm, mlc]---- > WARNING > > Important diff --git a/guides/money-out/integration-test.es.md b/guides/money-out/integration-test.es.md index 226471cbb3..ec2d6f2af1 100644 --- a/guides/money-out/integration-test.es.md +++ b/guides/money-out/integration-test.es.md @@ -139,7 +139,98 @@ curl --location 'https://api.mercadopago.com/v1/transaction-intents/process' \ | Cualquier otro valor | Se generarán nuevos recursos con `status` `processed`. | ------------ +----[mla]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-461396*********1-111215-*********cd39015a8*********bc3cb-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "external_ref_1234", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.com.ar/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "015", + "number": "0150533701000132688355", + "holder": "Victor Hugo", + "owner": { + "identification": { + "number": "20209642647", + "type": "CUIT" + } + }, + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +}' +``` +------------ +----[mlm]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-6133*********794-11121*********edd13abd8*********82868e9-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "12345", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "646", + "number": "646180110400000007", + "holder": "JUAN JOSE MARIA", + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +``` +------------ ----[mlc]---- ```curl curl --location 'https://api.mercadopago.com/v1/transaction-intents/process' \ @@ -186,6 +277,8 @@ curl --location 'https://api.mercadopago.com/v1/transaction-intents/process' \ }' ``` +------------ +----[mla, mlm, mlc]---- > WARNING > > Importante diff --git a/guides/money-out/integration-test.pt.md b/guides/money-out/integration-test.pt.md index 06de5de17d..a92c9a6a1c 100644 --- a/guides/money-out/integration-test.pt.md +++ b/guides/money-out/integration-test.pt.md @@ -139,7 +139,98 @@ curl --location 'https://api.mercadopago.com/v1/transaction-intents/process' \ | Qualquer outro valor | Serão gerados novos recursos com status `status` e `processed`. | ------------ +----[mla]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-461396*********1-111215-*********cd39015a8*********bc3cb-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "external_ref_1234", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.com.ar/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "015", + "number": "0150533701000132688355", + "holder": "Victor Hugo", + "owner": { + "identification": { + "number": "20209642647", + "type": "CUIT" + } + }, + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +}' +``` +------------ +----[mlm]---- +```curl +curl --request POST \ + --url https://api.mercadopago.com/v1/transaction-intents/process \ + --header 'Authorization: Bearer TEST-6133*********794-11121*********edd13abd8*********82868e9-1*********' \ + --header 'content-type: application/json' \ + --header 'x-enforce-signature: false' \ + --data '{ + "external_reference": "12345", + "point_of_interaction": { + "type": "PSP_TRANSFER" + }, + "seller_configuration": { + "notification_info": { + "notification_url": "http://example.mx/notification" + } + }, + "transaction": { + "from": { + "accounts": [ + { + "amount": 25 + } + ] + }, + "to": { + "total_amount": 25, + "accounts": [ + { + "amount": 25, + "bank_id": "646", + "number": "646180110400000007", + "holder": "JUAN JOSE MARIA", + "type": "savings_account", + "description": "envio de 25" + } + ] + }, + "total_amount": 25 + } +``` +------------ ----[mlc]---- ```curl curl --location 'https://api.mercadopago.com/v1/transaction-intents/process' \ @@ -186,6 +277,8 @@ curl --location 'https://api.mercadopago.com/v1/transaction-intents/process' \ }' ``` +------------ +----[mla, mlm, mlc]---- > WARNING > > Importante @@ -217,4 +310,4 @@ curl --location 'https://api.mercadopago.com/v1/transaction-intents/process' \ > > Importante > -> Uma vez testados todos os cenários possíveis, [ative as credenciais de produção](/developers/pt/docs/money-out/additional-content/your-integrations/credentials) e substitua as de teste para começar a realizar transações reais. +> Uma vez testados todos os cenários possíveis, [ative as credenciais de produção](/developers/pt/docs/money-out/additional-content/your-integrations/credentials) e substitua as de teste para começar a realizar transações reais. \ No newline at end of file diff --git a/guides/money-out/landing.en.md b/guides/money-out/landing.en.md index 68029ac73f..172c3bdce4 100644 --- a/guides/money-out/landing.en.md +++ b/guides/money-out/landing.en.md @@ -9,7 +9,7 @@ content_section_with_media: >>>> Availability by country <<<< --- -available_countries: mlb, mlc +available_countries: mlb, mlc, mla, mlm --- --- bullet_section_with_media: diff --git a/guides/money-out/landing.es.md b/guides/money-out/landing.es.md index 53ef33e5da..de66cb4669 100644 --- a/guides/money-out/landing.es.md +++ b/guides/money-out/landing.es.md @@ -9,7 +9,7 @@ content_section_with_media: >>>> Disponibilidad por país <<<< --- -available_countries: mlb, mlc +available_countries: mlb, mlc, mla, mlm --- --- bullet_section_with_media: diff --git a/guides/money-out/landing.pt.md b/guides/money-out/landing.pt.md index 31e153f221..6a49ef713c 100644 --- a/guides/money-out/landing.pt.md +++ b/guides/money-out/landing.pt.md @@ -9,7 +9,7 @@ content_section_with_media: >>>> Disponibilidade por país <<<< --- -available_countries: mlb, mlc +available_countries: mlb, mlc, mla, mlm --- --- bullet_section_with_media: diff --git a/reference/api-json/payouts_bank_transfer_mla.json b/reference/api-json/payouts_bank_transfer_mla.json new file mode 100644 index 0000000000..12c60e04c0 --- /dev/null +++ b/reference/api-json/payouts_bank_transfer_mla.json @@ -0,0 +1,905 @@ +{ + "url": "https://api.mercadopago.com", + "paths": { + "/v1/transaction-intents/process": { + "post": { + "tags": [ + "money-out" + ], + "description": { + "en": "Generate money out operations from a Mercado Pago account to other accounts (internal or external), as long as the withdrawal account has funds. In case of success, the request will return a response with status 200", + "pt": "Gera operações de saída de dinheiro desde uma conta do Mercado Pago a outras contas (internas ou externas), desde que a conta de retirada tenha fundos. Em caso de sucesso, a requisição retornará uma resposta com o status 200", + "es": "Genera operaciones de salida de dinero desde una cuenta de Mercado Pago a otras cuentas (internas o externas), siempre que la cuenta de retiro tenga fondos. En caso de éxito, la solicitud devolverá una respuesta con el estado 200" + }, + "parameters": [ + { + "in": "header", + "name": "Authorization", + "required": true, + "schema": { + "type": "string", + "example": "Bearer TEST-123456-78910-abcdefg-12345678910" + }, + "description": { + "en": "Access Token obtained through the developer panel. Must be sent in all requests.", + "pt": "Access Token obtido através do painel de desenvolvedores. Obrigatório ser enviado em todas requisições.", + "es": "Access Token obtenido a través del panel de desarrollador. Obligatorio ser enviado en todas las solicitudes." + } + }, + { + "in": "header", + "name": "X-Idempotency-Key", + "required": true, + "schema": { + "type": "string", + "example": "0d5020ed-1af6-469c-ae06-c3bec19954bb" + }, + "description": { + "en": "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.", + "pt": "Esta função permite repetir solicitações de forma segura, sem o risco de realizar a mesma ação mais de uma vez por engano. Isso é útil para evitar erros, como a criação de dois transações idênticas, por exemplo. Para garantir que cada solicitação seja única, é importante usar um valor exclusivo no header da sua solicitação. Sugerimos o uso de um UUID V4 ou strings randômicas. É importante salientar que, a partir de 01/01/24, o envio deste parâmetro passará a ser obrigatório em todas as requisições.", + "es": "Esta función permite repetir solicitudes de manera segura, sin el riesgo de realizar la misma acción más de una vez por error. Esto es útil para evitar errores, como la creación de dos transacciones idénticas, por ejemplo. Para garantizar que cada solicitud sea única, es importante utilizar un valor exclusivo en el header de tu solicitud. Sugerimos el uso de un UUID V4 o strings aleatorias. Es importante destacar que, a partir del 01/01/24, el envío de este parámetro se volverá obligatorio en todas las solicitudes." + } + }, + { + "name": "x-Signature", + "in": "header", + "required": true, + "schema": { + "type": "boolean", + "example": "true" + }, + "description": { + "en": "Request signature with the encrypted body in base 64 with the public and private keys of the integrator. It is required only in a productive environment.", + "pt": "Assinatura da requisição com o body criptografado na base 64 com as chaves pública e privada do integrador. É obrigatório apenas no ambiente de produção.", + "es": "Firma de la solicitud con el cuerpo cifrado en base 64 con las claves pública y privada del integrador. Es obligatorio sólo en el ambiente de producción." + } + }, + { + "in": "header", + "name": "x-enforce-signature", + "required": false, + "schema": { + "type": "boolean", + "example": "false" + }, + "description": { + "en": "Boolean to indicate whether the integrator will or will not send the signature. It must be \"false\" for test environements, and \"true\" for production environments, when the signature is mandatory. ", + "pt": "Booleano para indicar se o integrador irá ou não enviar a assinatura. Deve ser \"false\" para ambiente de teste, \"true\" para ambiente produtivo, que é quando é obrigatório o envio da assinatura. ", + "es": "Booleano para indicar si el integrador enviará o no la firma. Debe ser \"false\" en ambiente de pruebas y \"true\" en ambiente productivo, que es cuando es obligatorio enviar la firma." + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "external_reference": { + "required": false, + "type": "string", + "description": { + "en": "Reference to identify the transaction. It is generated by the integrator and it can be any value that allows transactions to be tracked as long as it does not have special characters (“”, [ ], (), @) and does not exceed 64 characters. Numbers (1234), letters (abcde) and middle and underscore hyphens (-; _) are allowed. Its value cannot be duplicated with another transaction.", + "pt": "Referência para identificar a transação. É gerada pelo integrador e pode ser qualquer valor que permita o rastreamento das transações, desde que não possua caracteres especiais (“”, [ ], (), @) e não exceda 64 caracteres. São permitidos números (1234), letras (abcde), hífens (-) e underlines (_), e não pode ser duplicada.", + "es": "Referencia para identificar la transacción. Es generada por el integrador y puede ser cualquier valor que permita hacer un seguimiento de las transacciones siempre que no tenga caracteres especiales (“”, [ ], (), @) y no exceda los 64 caracteres. Sí están permitidos números (1234), letras (abcde) y guiones medios y bajos (-; _). Su valor no puede ser duplicado con otras transacciones." + }, + "example": "MP0001" + }, + "seller_configuration": { + "required": false, + "type": "object", + "description": { + "en": "Object containing settings of the user performing the transaction.", + "pt": "Objeto contendo configurações do usuário que realiza a transação.", + "es": "Objeto que contiene configuraciones del usuario que realiza la transacción. " + }, + "properties": { + "notification_info": { + "type": "object", + "properties": { + "notification_url": { + "required": false, + "type": "string", + "description": { + "en": "URL available to receive notifications of events related to the transaction, such as changes in its status. This field has a 500 character limit.", + "pt": "URL onde receberá as notificações de eventos relacionados à transação, como mudanças de status. Este campo tem um limite de 500 caracteres.", + "es": "URL en la que se recibirán las notificaciones de los eventos relacionados a la transacción, como sus cambios de estado. Este campo tiene un límite de 500 caracteres. " + }, + "example": "http://example.cl/notification" + } + } + } + } + }, + "transaction": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction.", + "pt": "Objeto que contém informações sobre a transação.", + "es": "Objeto que contiene la información sobre la transacción." + }, + "properties": { + "from": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction's origin account.", + "pt": "Objeto que contém informações sobre a conta de origem que realiza a transação.", + "es": "Objeto que contiene la información sobre la cuenta de origen que efectúa la transacción." + }, + "properties": { + "accounts": { + "type": "array", + "properties": { + "amount": { + "type": "number", + "required": true, + "description": { + "en": "Transaction amount, which will be withdrawn from the source account \"from\". The minimum value is 0, and the maximum is 10000000000.", + "pt": "Valor da transação, que será retirado da conta de origem \"from\". O valor mínimo é 0, e o valor máximo é 10000000000.", + "es": "Valor de la transacción, que será retirado de la cuenta de origen \"from\". El valor mínimo es 0, y el máximo, 10000000000." + }, + "example": "100,00" + } + } + } + } + }, + "to": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction's destination account.", + "pt": "Objeto que contém informações sobre a conta de destino que recebe a transação.", + "es": "Objeto que contiene la información sobre la cuenta de destino que recibe la transacción." + }, + "properties": { + "accounts": { + "type": "array", + "properties": { + "amount": { + "type": "number", + "required": true, + "description": { + "en": "Amount to send to the destination account, indicated in the \"to\". It must be the same value as in \"from.accounts.amount\" ", + "pt": "Valor a enviar para a conta de destino indicado no \"to\". Deve ser o mesmo valor indicado para \"from.accounts.amount\"", + "es": "Monto a enviar a la cuenta destino indicada en el \"to\". Debe ser el mismo valor indicado para \"from.accounts.amount\"" + }, + "example": "100.00" + }, + "bank_id": { + "type": "string", + "required": true, + "description": { + "en": "Identification number of the bank to which the destination account belongs.", + "pt": "Número identificador do banco ao qual pertence a conta de destino.", + "es": "Número identificador del banco al que pertenece la cuenta de destino." + }, + "example": "99999004" + }, + "number": { + "type": "string", + "required": true, + "description": { + "en": "Unique number that represents a bank account. In this case, you must send the unique number that identifies the destination account.", + "pt": "Número único que representa cada conta bancária. Neste caso, você deve enviar o número único da conta de destino.", + "es": "Número único que representa cada cuenta bancaria. En este caso, debes enviar el número único de la cuenta de destino." + }, + "example": "10266732" + }, + "holder": { + "type": "string", + "required": true, + "description": { + "en": "First and last name of the destination account holder", + "pt": "Nome e sobrenome do titular da conta de destino", + "es": "Nombre y apellido del titular de la cuenta objetivo." + }, + "example": "Victor Hugo" + }, + "owner": { + "type": "object", + "required": true, + "description": { + "en": "Destination account holder information.", + "pt": "Informação do titular da conta de destino.", + "es": "Información del titular de la cuenta de destino." + }, + "properties": { + "identification": { + "type": "object", + "description": { + "en": "Information corresponding to the identification documentation of the destination account holder.", + "pt": "Informação correspondente à documentação de identificação do titular da conta de destino.", + "es": "Información correspondiente a la documentación identificatoria del titular de la cuenta de destino." + }, + "properties": { + "type": { + "type": "string", + "required": true, + "description": { + "en": "Refers to the type of identification. It must be \"CUIT\".", + "pt": "Refere-se ao tipo de identificação. Deve ser \"CUIT\".", + "es": "Se refiere al tipo de identificación. Debe ser \"CUIT\"." + }, + "example": "CUIT" + }, + "number": { + "type": "string", + "required": true, + "description": { + "en": "The number refers to the identifier of the destination account holder.", + "pt": "O número se refere ao identificador do titular da conta de destino.", + "es": "El número hace referencia al identificador del titular de la cuenta de destino." + }, + "example": "111111111111" + } + } + } + } + }, + "type": { + "type": "string", + "required": true, + "description": { + "en": "Destination account type. The possible values are \"checking_account\" (bank accounts), \"mercadopago\" (Mercado Pago accounts), \"cvu\" (CVU accounts) e \"savings_account\" (savings account).", + "pt": "Tipo de conta de destino. Os valores possíveis são \"checking_account\" (contas bancárias), \"mercadopago\" (contas do Mercado Pago), \"cvu\" (contas CVU) e \"savings_account\" (poupança).", + "es": "Tipo de cuenta de destino. Los valores posibles son \"checking_account\" (cuentas bancarias), \"mercadopago\" (cuentas Mercado Pago), \"cvu\" (cuentas CVU) e \"savings_account\" (ahorro)." + }, + "example": "checking_account" + }, + "description": { + "type": "string", + "required": false, + "description": { + "en": "Short text describing the operation.", + "pt": "Texto curto de descrição da operação.", + "es": "Texto breve que describe la operación." + }, + "example": "Victor Hugo" + } + } + } + } + }, + "total_amount": { + "type": "number", + "required": true, + "description": { + "en": "Total amount of the transaction. It must be the same value as in \"from.accounts.amount\" and \"to.accounts.amount\".", + "pt": "Montante total da transação. Deve ser o mesmo valor indicado para \"from.accounts.amount\" e \"to.accounts.amount\". ", + "es": "Monto total de la transacción. Debe ser el mismo valor indicado para \"from.accounts.amount\" y \"to.accounts.amount\"." + }, + "example": "100.00" + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": { + "en": "Success", + "pt": "Success", + "es": "Success" + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "created_date": { + "type": "string", + "description": { + "es": "Fecha de creación de la transacción.", + "pt": "Data de criação da transação.", + "en": "Transaction creation date." + }, + "example": "2021-01-01T00:00:00.000Z" + }, + "external_reference":{ + "type": "string", + "description": { + "es": "Referencia externa de la transacción, que fue generada por el integrador al momento de crearla.", + "pt": "Referência externa da transação, gerada pelo integrador na hora da criação.", + "en": "Transaction external reference, generated by the integrator when it was created." + }, + "example": "123456" + }, + "id": { + "type": "string", + "description": { + "en": "Unique transaction identifier, automatically generated.", + "pt": "Identificador único da transação, gerado automaticamente", + "es": "Identificador único de la transacción, generado automáticamente." + }, + "example": "0d5020ed" + }, + "last_updated_date": { + "type": "string", + "description": { + "es": "Fecha de actualización del estado de la transacción.", + "pt": "Data de atualização do status da transação.", + "en": "Transaction's status update date." + }, + "example": "2021-01-01T00:00:00.000Z" + }, + "point_of_interaction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": { + "en": "Point of interaction. It is a fix value, always {\"type\":\"PSP_TRANSFER\"}.", + "pt": "Ponto de interação. É um valor fixo, sempre {\"type\":\"PSP_TRANSFER\"}.", + "es": "Punto de interacción. Es un valor fijo, siempre {\"type\":\"PSP_TRANSFER\"}." + }, + "example": "PSP_TRANSFER" + } + } + }, + "seller_configuration": { + "type": "object", + "description": { + "en": "Object containing settings of the user performing the transaction.", + "pt": "Objeto contendo configurações do usuário que realiza a transação.", + "es": "Objeto que contiene configuraciones del usuario que realiza la transacción. " + }, + "properties": { + "notification_info": { + "type": "object", + "properties": { + "notification_url": { + "type": "string", + "description": { + "en": "URL available to receive notifications of events related to the transaction, such as changes in its status.", + "pt": "URL onde receberá as notificações de eventos relacionados à transação, como mudanças de status. ", + "es": "URL en la que se recibirán las notificaciones de los eventos relacionados a la transacción, como sus cambios de estado." + }, + "example": "http://example.ar/notification" + } + } + } + } + }, + "status": { + "type": "string", + "example": "processed", + "description": { + "es": "Estado actual de la transacción", + "pt": "Status atual da transação", + "en": "Transaction's current status" + }, + "enum": [ + { + "title": "approved", + "description": { + "en": "The transaction processing was made successfully.", + "es": "El procesamiento de la transacción se realizó de manera exitosa.", + "pt": "O processamento da transação foi bem-sucedido." + } + }, + { + "title": "transaction_in_process", + "description": { + "en": "The transaction is in process, pending final status, and awaiting authorization.", + "es": "La transacción está en proceso, pendiente de estado final, y aguarda autorización.", + "pt": "A transação está em andamento, com status final pendente e aguardando autorização." + } + }, + { + "title": "refunded", + "description": { + "en": "The transaction was refunded by the destination bank.", + "es": "La transacción fue reembolsada por el banco de destino.", + "pt": "A transação foi reembolsada pelo banco de destino." + } + }, + { + "title": "rejected", + "description": { + "en": "The transaction was rejected. You can check the reasons in the \"to.accounts.status_detail\" field.", + "es": "La transacción fue rechazada. Puedes encontrar los motivos en el campo \"to.accounts.status_detail\". ", + "pt": "A transação foi rejeitada. Você pode ver os motivos no campo \"to.accounts.status_detail\"" + } + } + ] + }, + "transaction": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction.", + "pt": "Objeto que contém informações sobre a transação.", + "es": "Objeto que contiene la información sobre la transacción." + }, + "properties": { + "from": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction's origin account.", + "pt": "Objeto que contém informações sobre a conta de origem que realiza a transação.", + "es": "Objeto que contiene la información sobre la cuenta de origen que efectúa la transacción." + }, + "properties": { + "accounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "example": "100,00", + "description": { + "es": "Monto debitado de la cuenta Mercado Pago de origen.", + "pt": "Valor debitado da conta Mercado Pago de origem.", + "en": "Amount debited from the Mercado Pago origin account." + } + } + } + } + } + } + }, + "paid_amount": { + "type": "number", + "description": { + "es": "Monto total cobrado al titular de la cuenta de origen. Será igual a \"from.accounts.amount\", salvo que haya habido un reembolso total o parcial, indicado en \"refunded_amount\".", + "pt": "Valor total cobrado ao titular da conta de origem. Será igual a \"from.accounts.amount\", a menos que tenha havido reembolso total ou parcial, indicado em \"refunded_amount\".", + "en": "Total amount charged to the origin account holder. Its value will be equal to \"from.accounts.amount\", unless there has been a full or partial refund, indicated in \"refunded_amount\"." + }, + "example": 100.00 + } , + "payer": { + "type": "object", + "description": { + "en": "Information corresponding to the origin account holder.", + "pt": "Informação correspondente ao titular da conta de origem.", + "es": "Información correspondiente al titular de la cuenta de origen." + }, + "properties": { + "id": { + "type": "number", + "description": { + "es": "Identificador del integrador titular de la cuenta de origen.", + "pt": "Identificador do integrador titular da conta de origem.", + "en": "Identifier of the integrator holder of the origin account." + }, + "example": 123456543 + } + } + }, + "refunded_amount": { + "type": "number", + "description": { + "es": "En caso de un reembolso, indicará el monto total reembolsado al titular de la cuenta de origen. Si no hubo ningún reembolso, su valor será 0.", + "pt": "No caso de reembolso, indicará o valor total reembolsado ao titular da conta de origem. Se não houve reembolso, seu valor será 0.", + "en": "In case of a refund, it will indicate the total amount refunded to the holder of the origin account. If there was no refund, its value will be 0." + }, + "example": 1.00 + }, + "to": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction's destination account.", + "pt": "Objeto que contém informações sobre a conta de destino que recebe a transação.", + "es": "Objeto que contiene la información sobre la cuenta de destino que recibe la transacción." + }, + "properties": { + "accounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amount": { + "type":"number", + "description": { + "es": "Monto transferido a la cuenta de destino. Su valor será igual a \"from.accounts.amount\", salvo que haya habido un reembolso total o parcial, indicado en el campo \"to.accounts.status_detail\".", + "pt": "Valor transferido para a conta de destino. O valor será igual a \"from.accounts.amount\", a menos que tenha havido reembolso total ou parcial indicado no campo \"to.accounts.status_detail\".", + "en": "Amount transferred to the destination account. Its value will be equal to \"from.accounts.amount\", unless there has been a full or partial refund indicated in the \"to.accounts.status_detail\" field." + }, + "example": "100,00" + }, + "origin_id": { + "type":"string", + "description": { + "es": "Identificador que permite rastrear la transacción dentro del sistema bancario.", + "pt": "Identificador que permite rastrear a transação dentro do sistema bancário.", + "en": "Identifier that allows the transaction to be tracked within the banking system." + }, + "example": "01AAAM001A1AY43FBR8WCM9CES" + }, + "status_details": { + "type":"array", + "example": "approved", + "description": { + "es": "Información detallada del estado de la operación.", + "pt": "Informação detalhada do status da operação.", + "en": "Detailed information about the status of the operation." + }, + "items": { + "type": "object", + "properties": { + "approved": { + "type":"string", + "description": { + "en": "The transaction processing was made successfully", + "es": "El procesamiento de la transacción se realizó de manera exitosa.", + "pt": "O processamento da transação foi bem-sucedido." + } + }, + "partially_refunded": { + "type":"string", + "description": { + "en": "The transaction was partially refunded by the destination bank.", + "es": "La transacción fue reembolsada parcialmente por el banco de destino.", + "pt": "A transação foi parcialmente reembolsada pelo banco de destino." + } + }, + "pending_authorized": { + "type":"string", + "description": { + "en": "The transaction is in process, pending authorization.", + "es": "La transacción está en proceso, pendiente de autorización.", + "pt": "A transação está em andamento, aguardando autorização." + } + }, + "pending_bank": { + "type":"string", + "description": { + "en": "The transaction is in process, pending by bank.", + "es": "La transacción está en proceso, pendiente de respuesta del banco.", + "pt": "A transação está em andamento, aguardando autorização do banco." + } + }, + "refunded": { + "type":"string", + "description": { + "en": "The transaction was totally refunded by the destination bank.", + "es": "La transacción fue reembolsada totalmente por el banco de destino.", + "pt": "A transação foi totalmente reembolsada pelo banco de destino." + } + }, + "by_bank": { + "type":"string", + "description": { + "en": "The transaction was rejected by the destination bank.", + "es": "El banco de destino rechazó la transferencia.", + "pt": "A transação foi rejeitada pelo banco de destino." + } + }, + "by_provider": { + "type":"string", + "description": { + "en": "The transaction was rejected by the provider.", + "es": "La transacción fue rechazada por el proveedor. ", + "pt": "A transação foi rejeitada pelo provedor. " + } + }, + "high_risk": { + "type":"string", + "description": { + "en": "The transaction is rejected due to risk of fraud.", + "es": "La transacción es rechazada por riesgo de fraude.", + "pt": "A transação é rejeitada devido ao risco de fraude." + } + }, + "insufficient_funds": { + "type":"string", + "description": { + "en": "The transaction is rejected due to insufficient funds in the origin account.", + "es": "La transacción es rechazada por fondos insuficientes en la cuenta de origen.", + "pt": "A transação é rejeitada devido a fundos insuficientes na conta de origem." + } + }, + "other_reason": { + "type":"string", + "description": { + "en": "The transaction is rejected by default due to internal problems during processing.", + "es": "La transacción es rechazada por defecto debido a problemas internos durante su procesamiento.", + "pt": "A transação é rejeitada por padrão devido a problemas internos durante o processamento." + } + }, + "review_manual": { + "type":"string", + "description": { + "en": "The transaction is rejected and sent to fraud prevention for analysis.", + "es": "La transacción es rechazada y encaminada a prevención al fraude para análisis.", + "pt": "A transação é rejeitada e enviada para análise de prevenção de fraudes." + } + } + } + } + } + } + } + } + } + }, + "total_amount": { + "type": "number", + "description": { + "es": "Monto total de la transacción.", + "pt": "Valor total da transação.", + "en": "Total amount of the transaction." + }, + "example": 100.00 + }, + "statement_descriptor": { + "type": "string", + "description": { + "es": "Mensaje adicional que se quiera sumar en la transacción.", + "pt": "Mensagem adicional para adicionar na transação.", + "en": "Additional message to add to the transaction." + }, + "example": "test" + } + } + } + } + } + } + } + }, + "400":{ + "description":{ + "en":"Bad Request", + "pt":"Bad Request", + "es":"Bad Request" + }, + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "errorKey":{ + "type":"string", + "enum":[ + { + "title":"Invalid external_reference", + "description":{ + "en":"Invalid type for field \"external_reference\". Verify the available values for this field.", + "pt":"Valor inválido para o campo \"external_reference\". Verifique os valores permitidos para esse campo.", + "es":"Valor inválido para el campo \"external_reference\". Verifica los valores permitidos para este campo." + } + }, + { + "title":"Invalid type point_of_interaction", + "description":{ + "en":"Invalid value for field \"point_of_interaction.type\". Remember that it is a fix value, always {\"type\":\"PSP_TRANSFER\"}.", + "es":"Valor inválido para el campo \"point_of_interaction.type\". Recuerda que es un valor fijo y siempre debe ser {\"type\":\"PSP_TRANSFER\"}.", + "pt":"Valor inválido para o campo \"point_of_interaction.type\". Lembre-se que é um um valor fixo, sempre {\"type\":\"PSP_TRANSFER\"}." + } + }, + { + "title":"Invalid amount", + "description":{ + "en":"Invalid value for field \"transaction.from.accounts[0].amount\". Verify the amounts allowed for the transaction. ", + "es":"Valor inválido para el campo \"transaction.from.accounts[0].amount\". Verifica los montos permitidos para la transacción.", + "pt":"Valor inválido para o campo \"transaction.from.accounts[0].amount\". Verifique os valores permitidos para a transação." + } + }, + { + "title":"Invalid identification number", + "description":{ + "en":"Invalid value for field \"transaction.to.accounts[0].identification.number\". Verify the allowed values.", + "es":"Valor inválido para el campo \"transaction.to.accounts[0].identification.number\". Verifica los valores permitidos. ", + "pt":"Valor inválido para o campo \"transaction.to.accounts[0].identification.number\". Verifique os valores permitidos." + } + }, + { + "title":"Invalid identification type", + "description":{ + "en":"Invalid value for field \"transaction.to.accounts[0].owner.identification.type\". Verify the allowed values.", + "es":"Valor inválido para el campo \"transaction.to.accounts[0].owner.identification.type\". Verifica los valores permitidos", + "pt":"Valor inválido para o campo \"transaction.to.accounts[0].owner.identification.type\". Verifique os valores permitidos." + } + }, + { + "title":"Account is disabled", + "description":{ + "en":"The Mercado Pago account is disabled", + "es":"La cuenta de Mercado Pago está desactivada", + "pt":"A conta do Mercado Pago está desativada" + } + }, + { + "title":"Participant is not available", + "description":{ + "en":"Participant is not available to make this transaction.", + "es":"El participante no está habilitado para realizar esta transacción.", + "pt":"O participante não está habilitado para o fluxo transacional." + } + }, + { + "title":"Invalid identity source", + "description":{ + "en":"The header X-Flow-id only supports \"dict\" or \"ted\".", + "es":"El header X-Identity-Source acepta solo \"dict\" o \"ted\".", + "pt":"O header X-Identity-Source suporta apenas \"dict\" ou \"ted\"." + } + }, + { + "title":"Flow not specified", + "description":{ + "en":"The header X-Flow-id only supports \"transfer\" or \"management\"", + "es":"El header X-Flow-id acepta solo \"transfer\" o \"management\"", + "pt":"O header X-Flow-id suporta apenas \"transfer\" ou \"management\"" + } + }, + { + "title":"Compliance not processed", + "description":{ + "en":"The conformity check was not completed for the user.", + "es":"La verificación de conformidad no fue concluída para el usuario.", + "pt":"A verificação de conformidade não foi concluída para o usuário." + } + }, + { + "title":"Key PSP error", + "description":{ + "en":"Attempt to consult an external PSP key that is already registered in Mercado Pago", + "es":"Intento de consultar una clave PSP externa que ya está registrada en Mercado Pago", + "pt":"Tentativa de consultar uma chave PSP externa que já está cadastrada no MercadoPago" + } + }, + { + "title":"Invalid Body", + "description":{ + "en":"The request body has an invalid format", + "es":"El cuerpo de la llamada tiene un formato inválido.", + "pt":"O body da requisição tem um formato inválido" + } + }, + { + "title":"Client not allowed", + "description":{ + "en":"The client ID associated with the credentials is not allowed to make the request.", + "es":"El client ID asociado con las credenciales no tiene permitido realizar la llamada.", + "pt":"O client ID associado às credenciais não tem permissão para fazer a requisição." + } + }, + { + "title":"Financial identity not found", + "description":{ + "en":"Financial identity not found. Check the \"to.accounts.bank_id\" field.", + "es":"La institución financiera no fue encontrada. Revisa el campo \"to.accounts.bank_id\".", + "pt":"A instituição financeira não foi localizada. Verifique o campo \"to.accounts.bank_id\"" + } + }, + { + "title":"Many Requests", + "description":{ + "en":"Too many requests has been made. Wait and try again.", + "es":"Se realizaron demasiadas llamadas. Espera y vuelve a intentarlo.", + "pt":"Muitas requisições foram feitas. Espere e tente novamente." + } + }, + { + "title":"Rate Limit", + "description":{ + "en":"The consultation service reached the rpm limit in order not to exceed the limit allowed by Banco Central and not receive fines.", + "es":"El servicio de consulta alcanzó el límite de rpm para no exceder el límite permitido por el Banco Central y no recibir multas.", + "pt":"O serviço de consulta atingiu o limite de rpm para não ultrapassar o limite permitido pelo Banco Central e não receber multas." + } + }, + { + "title":"Unauthorized", + "description":{ + "en":"The request is unauthorized.", + "es":"La llamada no está autorizada.", + "pt":"A requisição não está autorizada." + } + }, + { + "title":"Invalid Payload", + "description":{ + "en": "Invalid request payload", + "es": "Payload inválido.", + "pt": "Payload inválido." + } + } + ] + } + } + } + } + } + }, + "424":{ + "description":{ + "en":"Failed Dependency", + "pt":"Failed Dependency", + "es":"Failed Dependency" + }, + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "errorKey":{ + "type":"string", + "enum":[ + { + "title":"Resource locked", + "description":{ + "en":"The rate limit service is processing the integrator's consumption of our API.", + "es":"El servicio de rate limit está procesando el consumo que el integrador hace de nuestra API.", + "pt":"O serviço de rate limit está processando o consumo de nossa API pelo integrador." + } + } + ] + } + } + } + } + } + }, + "500":{ + "description":{ + "en":"Internal server error.", + "pt":"Erro interno do servidor.", + "es":"Error interno del servidor." + }, + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "errorKey":{ + "type":"string", + "enum":[ + { + "title":"internal_server_error", + "description":{ + "en":"There was an error communicating with transaction_intent", + "es":"Hubo un error en la comunicación con transaction_intent", + "pt":"Houve um erro na comunicação com transaction_intent" + } + } + ] + } + } + } + } + } + }, + "502":{ + "description":{ + "en":"Bad Gateway", + "pt":"Bad Gateway", + "es":"Bad Gateway" + }, + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "errorKey":{ + "type":"string", + "enum":[ + { + "title":"bad_gateway", + "description":{ + "en":"Error processing request", + "es":"Error procesando la llamada", + "pt":"Erro de processamento na requisição" + } + } + ] + } + } + } + } + } + } + }, + "title": { + "en": "Create transaction to bank account", + "pt": "Criar transação para conta bancária", + "es": "Crear transacción para cuenta bancaria" + } + } + } + } +} \ No newline at end of file diff --git a/reference/api-json/payouts_bank_transfer_mlb.json b/reference/api-json/payouts_bank_transfer_mlb.json index 46c46b5b55..e5f733c01b 100644 --- a/reference/api-json/payouts_bank_transfer_mlb.json +++ b/reference/api-json/payouts_bank_transfer_mlb.json @@ -7,9 +7,9 @@ "money-out" ], "description": { - "en": "Generate money out operations from a Mercado Pago account to other accounts (internal or external), as long as the withdrawal account has funds", - "pt": "Gera operações de saída de dinheiro desde uma conta do Mercado Pago a outras contas (internas ou externas), desde que a conta de retirada tenha fundos", - "es": "Genera operaciones de salida de dinero desde una cuenta de Mercado Pago a otras cuentas (internas o externas), siempre que la cuenta de retiro tenga fondos" + "en": "Generate money out operations from a Mercado Pago account to other accounts (internal or external), as long as the withdrawal account has funds. In case of success, the request will return a response with status 200", + "pt": "Gera operações de saída de dinheiro desde uma conta do Mercado Pago a outras contas (internas ou externas), desde que a conta de retirada tenha fundos. Em caso de sucesso, a requisição retornará uma resposta com o status 200", + "es": "Genera operaciones de salida de dinero desde una cuenta de Mercado Pago a otras cuentas (internas o externas), siempre que la cuenta de retiro tenga fondos. En caso de éxito, la solicitud devolverá una respuesta con el estado 200" }, "parameters": [ { @@ -155,9 +155,9 @@ "type": "string", "required": true, "description": { - "en": "Destination account type. The possible values are \"current\", for bank accounts, and \"mercadopago\", for Mercado Pago accounts.", - "pt": "Tipo de conta de destino. Os valores possíveis são \"current\", para contas bancárias, e \"mercadopago\", para contas do Mercado Pago.", - "es": "Tipo de cuenta de destino. Los valores posibles son \"current\", para cuentas bancarias, y \"mercadopago\", para cuentas Mercado Pago." + "en": "Destination account type. The possible values are \"current\" (bank accounts) and \"mercadopago\" (Mercado Pago accounts).", + "pt": "Tipo de conta de destino. Os valores possíveis são \"current\" (contas bancárias) e \"mercadopago\" (contas do Mercado Pago).", + "es": "Tipo de cuenta de destino. Los valores posibles son \"current\" (cuentas bancarias) y \"mercadopago\" (cuentas Mercado Pago)." }, "example": "current" }, @@ -545,7 +545,8 @@ "example": "01AAAM001A1AY43FBR8WCM9CES" }, "status_details": { - "type":"array", + "type":"string", + "example": "approved", "description": { "es": "Información detallada del estado de la operación.", "pt": "Informação detalhada do status da operação.", @@ -640,8 +641,7 @@ "pt": "A transação é rejeitada e enviada para análise de prevenção de fraudes." } } - ], - "example": "approved" + ] }, "owner": { "type": "object", @@ -690,14 +690,15 @@ }, "example": "0000014" }, - "type":{ + "type": { "type": "string", - "description":{ - "en": "Destination account type.", - "es": "Tipo de cuenta de destino.", - "pt": "Tipo de conta de destino" + "required": true, + "description": { + "en": "Destination account type. The possible values are \"current\" (bank accounts) and \"mercadopago\" (Mercado Pago accounts).", + "pt": "Tipo de conta de destino. Os valores possíveis são \"current\" (contas bancárias) e \"mercadopago\" (contas do Mercado Pago).", + "es": "Tipo de cuenta de destino. Los valores posibles son \"current\" (cuentas bancarias) y \"mercadopago\" (cuentas Mercado Pago)." }, - "example": "checking_account" + "example": "current" }, "number":{ "type": "number", @@ -867,9 +868,9 @@ { "title":"Rate Limit", "description":{ - "en":"The consultation service reached the rpm limit in order not to exceed the limit allowed by Bacen and not receive fines.", - "es":"El servicio de consulta alcanzó el límite de rpm para no exceder el límite permitido por el Bacen y no recibir multas.", - "pt":"O serviço de consulta atingiu o limite de rpm para não ultrapassar o limite permitido pelo Bacen e não receber multas." + "en":"The consultation service reached the rpm limit in order not to exceed the limit allowed by Banco Central and not receive fines.", + "es":"El servicio de consulta alcanzó el límite de rpm para no exceder el límite permitido por el Banco Central y no recibir multas.", + "pt":"O serviço de consulta atingiu o limite de rpm para não ultrapassar o limite permitido pelo Banco Central e não receber multas." } }, { @@ -1249,104 +1250,107 @@ }, "example": "01AAAM001A1AY43FBR8WCM9CES" }, - "status_details": { + "status_details": { "type":"array", + "example": "approved", "description": { "es": "Información detallada del estado de la operación.", "pt": "Informação detalhada do status da operação.", "en": "Detailed information about the status of the operation." }, - "enum": [ - { - "title": "approved", - "description": { - "en": "The transaction processing was made successfully", - "es": "El procesamiento de la transacción se realizó de manera exitosa.", - "pt": "O processamento da transação foi bem-sucedido." - } - }, - { - "title": "partially_refunded", - "description": { - "en": "The transaction was partially refunded by the destination bank.", - "es": "La transacción fue reembolsada parcialmente por el banco de destino.", - "pt": "A transação foi parcialmente reembolsada pelo banco de destino." - } - }, - { - "title": "pending_authorized", - "description": { - "en": "The transaction is in process, pending authorization.", - "es": "La transacción está en proceso, pendiente de autorización.", - "pt": "A transação está em andamento, aguardando autorização." - } - }, - { - "title": "pending_bank", - "description": { - "en": "The transaction is in process, pending by bank.", - "es": "La transacción está en proceso, pendiente de respuesta del banco.", - "pt": "A transação está em andamento, aguardando autorização do banco." - } - }, - { - "title": "refunded", - "description": { - "en": "The transaction was totally refunded by the destination bank.", - "es": "La transacción fue reembolsada totalmente por el banco de destino.", - "pt": "A transação foi totalmente reembolsada pelo banco de destino." - } - }, - { - "title": "by_bank", - "description": { - "en": "The transaction was rejected by the destination bank.", - "es": "El banco de destino rechazó la transferencia.", - "pt": "A transação foi rejeitada pelo banco de destino." - } - }, - { - "title": "by_provider", - "description": { - "en": "The transaction was rejected by the provider.", - "es": "La transacción fue rechazada por el proveedor. ", - "pt": "A transação foi rejeitada pelo provedor. " - } - }, - { - "title": "high_risk", - "description": { - "en": "The transaction is rejected due to risk of fraud.", - "es": "La transacción es rechazada por riesgo de fraude.", - "pt": "A transação é rejeitada devido ao risco de fraude." - } - }, - { - "title": "insufficient_funds", - "description": { - "en": "The transaction is rejected due to insufficient funds in the origin account.", - "es": "La transacción es rechazada por fondos insuficientes en la cuenta de origen.", - "pt": "A transação é rejeitada devido a fundos insuficientes na conta de origem." - } - }, - { - "title": "other_reason", - "description": { - "en": "The transaction is rejected by default due to internal problems during processing.", - "es": "La transacción es rechazada por defecto debido a problemas internos durante su procesamiento.", - "pt": "A transação é rejeitada por padrão devido a problemas internos durante o processamento." - } - }, - { - "title": "review_manual", - "description": { - "en": "The transaction is rejected and sent to fraud prevention for analysis.", - "es": "La transacción es rechazada y encaminada a prevención al fraude para análisis.", - "pt": "A transação é rejeitada e enviada para análise de prevenção de fraudes." + "items": { + "type": "object", + "properties": { + "approved": { + "type":"string", + "description": { + "en": "The transaction processing was made successfully", + "es": "El procesamiento de la transacción se realizó de manera exitosa.", + "pt": "O processamento da transação foi bem-sucedido." + } + }, + "partially_refunded": { + "type":"string", + "description": { + "en": "The transaction was partially refunded by the destination bank.", + "es": "La transacción fue reembolsada parcialmente por el banco de destino.", + "pt": "A transação foi parcialmente reembolsada pelo banco de destino." + } + }, + "pending_authorized": { + "type":"string", + "description": { + "en": "The transaction is in process, pending authorization.", + "es": "La transacción está en proceso, pendiente de autorización.", + "pt": "A transação está em andamento, aguardando autorização." + } + }, + "pending_bank": { + "type":"string", + "description": { + "en": "The transaction is in process, pending by bank.", + "es": "La transacción está en proceso, pendiente de respuesta del banco.", + "pt": "A transação está em andamento, aguardando autorização do banco." + } + }, + "refunded": { + "type":"string", + "description": { + "en": "The transaction was totally refunded by the destination bank.", + "es": "La transacción fue reembolsada totalmente por el banco de destino.", + "pt": "A transação foi totalmente reembolsada pelo banco de destino." + } + }, + "by_bank": { + "type":"string", + "description": { + "en": "The transaction was rejected by the destination bank.", + "es": "El banco de destino rechazó la transferencia.", + "pt": "A transação foi rejeitada pelo banco de destino." + } + }, + "by_provider": { + "type":"string", + "description": { + "en": "The transaction was rejected by the provider.", + "es": "La transacción fue rechazada por el proveedor. ", + "pt": "A transação foi rejeitada pelo provedor. " + } + }, + "high_risk": { + "type":"string", + "description": { + "en": "The transaction is rejected due to risk of fraud.", + "es": "La transacción es rechazada por riesgo de fraude.", + "pt": "A transação é rejeitada devido ao risco de fraude." + } + }, + "insufficient_funds": { + "type":"string", + "description": { + "en": "The transaction is rejected due to insufficient funds in the origin account.", + "es": "La transacción es rechazada por fondos insuficientes en la cuenta de origen.", + "pt": "A transação é rejeitada devido a fundos insuficientes na conta de origem." + } + }, + "other_reason": { + "type":"string", + "description": { + "en": "The transaction is rejected by default due to internal problems during processing.", + "es": "La transacción es rechazada por defecto debido a problemas internos durante su procesamiento.", + "pt": "A transação é rejeitada por padrão devido a problemas internos durante o processamento." + } + }, + "review_manual": { + "type":"string", + "description": { + "en": "The transaction is rejected and sent to fraud prevention for analysis.", + "es": "La transacción es rechazada y encaminada a prevención al fraude para análisis.", + "pt": "A transação é rejeitada e enviada para análise de prevenção de fraudes." + } } } - ], - "example": "approved" + } }, "owner": { "type": "object", @@ -1395,14 +1399,15 @@ }, "example": "0000014" }, - "type":{ + "type": { "type": "string", - "description":{ - "en": "Destination account type.", - "es": "Tipo de cuenta de destino.", - "pt": "Tipo de conta de destino" + "required": true, + "description": { + "en": "Destination account type. The possible values are \"current\" (bank accounts) and \"mercadopago\" (Mercado Pago accounts).", + "pt": "Tipo de conta de destino. Os valores possíveis são \"current\" (contas bancárias) e \"mercadopago\" (contas do Mercado Pago).", + "es": "Tipo de cuenta de destino. Los valores posibles son \"current\" (cuentas bancarias) y \"mercadopago\" (cuentas Mercado Pago)." }, - "example": "checking_account" + "example": "current" }, "number":{ "type": "number", @@ -1637,4 +1642,4 @@ } } } -} +} \ No newline at end of file diff --git a/reference/api-json/payouts_bank_transfer_mlc.json b/reference/api-json/payouts_bank_transfer_mlc.json index ba32a55b73..328e8110e0 100644 --- a/reference/api-json/payouts_bank_transfer_mlc.json +++ b/reference/api-json/payouts_bank_transfer_mlc.json @@ -7,9 +7,9 @@ "money-out" ], "description": { - "en": "Generate money out operations from a Mercado Pago account to other accounts (internal or external), as long as the withdrawal account has funds", - "pt": "Gera operações de saída de dinheiro desde uma conta do Mercado Pago a outras contas (internas ou externas), desde que a conta de retirada tenha fundos", - "es": "Genera operaciones de salida de dinero desde una cuenta de Mercado Pago a otras cuentas (internas o externas), siempre que la cuenta de retiro tenga fondos" + "en": "Generate money out operations from a Mercado Pago account to other accounts (internal or external), as long as the withdrawal account has funds. In case of success, the request will return a response with status 200", + "pt": "Gera operações de saída de dinheiro desde uma conta do Mercado Pago a outras contas (internas ou externas), desde que a conta de retirada tenha fundos. Em caso de sucesso, a requisição retornará uma resposta com o status 200", + "es": "Genera operaciones de salida de dinero desde una cuenta de Mercado Pago a otras cuentas (internas o externas), siempre que la cuenta de retiro tenga fondos. En caso de éxito, la solicitud devolverá una respuesta con el estado 200" }, "parameters": [ { @@ -175,9 +175,9 @@ "type": "string", "required": true, "description": { - "en": "Destination account type. The possible values are \"current\", for bank accounts, and \"mercadopago\", for Mercado Pago accounts.", - "pt": "Tipo de conta de destino. Os valores possíveis são \"current\", para contas bancárias, e \"mercadopago\", para contas do Mercado Pago.", - "es": "Tipo de cuenta de destino. Los valores posibles son \"current\", para cuentas bancarias, y \"mercadopago\", para cuentas Mercado Pago." + "en": "Destination account type. The possible values are \"current\" (bank accounts) and \"mercadopago\" (Mercado Pago accounts).", + "pt": "Tipo de conta de destino. Os valores possíveis são \"current\" (contas bancárias) e \"mercadopago\" (contas do Mercado Pago).", + "es": "Tipo de cuenta de destino. Los valores posibles son \"current\" (cuentas bancarias) y \"mercadopago\" (cuentas Mercado Pago)." }, "example": "current" }, @@ -486,104 +486,107 @@ }, "example": "01AAAM001A1AY43FBR8WCM9CES" }, - "status_details": { + "status_details": { "type":"array", + "example": "approved", "description": { "es": "Información detallada del estado de la operación.", "pt": "Informação detalhada do status da operação.", "en": "Detailed information about the status of the operation." }, - "enum": [ - { - "title": "approved", - "description": { - "en": "The transaction processing was made successfully", - "es": "El procesamiento de la transacción se realizó de manera exitosa.", - "pt": "O processamento da transação foi bem-sucedido." - } - }, - { - "title": "partially_refunded", - "description": { - "en": "The transaction was partially refunded by the destination bank.", - "es": "La transacción fue reembolsada parcialmente por el banco de destino.", - "pt": "A transação foi parcialmente reembolsada pelo banco de destino." - } - }, - { - "title": "pending_authorized", - "description": { - "en": "The transaction is in process, pending authorization.", - "es": "La transacción está en proceso, pendiente de autorización.", - "pt": "A transação está em andamento, aguardando autorização." - } - }, - { - "title": "pending_bank", - "description": { - "en": "The transaction is in process, pending by bank.", - "es": "La transacción está en proceso, pendiente de respuesta del banco.", - "pt": "A transação está em andamento, aguardando autorização do banco." - } - }, - { - "title": "refunded", - "description": { - "en": "The transaction was totally refunded by the destination bank.", - "es": "La transacción fue reembolsada totalmente por el banco de destino.", - "pt": "A transação foi totalmente reembolsada pelo banco de destino." - } - }, - { - "title": "by_bank", - "description": { - "en": "The transaction was rejected by the destination bank.", - "es": "El banco de destino rechazó la transferencia.", - "pt": "A transação foi rejeitada pelo banco de destino." - } - }, - { - "title": "by_provider", - "description": { - "en": "The transaction was rejected by the provider.", - "es": "La transacción fue rechazada por el proveedor. ", - "pt": "A transação foi rejeitada pelo provedor. " - } - }, - { - "title": "high_risk", - "description": { - "en": "The transaction is rejected due to risk of fraud.", - "es": "La transacción es rechazada por riesgo de fraude.", - "pt": "A transação é rejeitada devido ao risco de fraude." - } - }, - { - "title": "insufficient_funds", - "description": { - "en": "The transaction is rejected due to insufficient funds in the origin account.", - "es": "La transacción es rechazada por fondos insuficientes en la cuenta de origen.", - "pt": "A transação é rejeitada devido a fundos insuficientes na conta de origem." - } - }, - { - "title": "other_reason", - "description": { - "en": "The transaction is rejected by default due to internal problems during processing.", - "es": "La transacción es rechazada por defecto debido a problemas internos durante su procesamiento.", - "pt": "A transação é rejeitada por padrão devido a problemas internos durante o processamento." - } - }, - { - "title": "review_manual", - "description": { - "en": "The transaction is rejected and sent to fraud prevention for analysis.", - "es": "La transacción es rechazada y encaminada a prevención al fraude para análisis.", - "pt": "A transação é rejeitada e enviada para análise de prevenção de fraudes." + "items": { + "type": "object", + "properties": { + "approved": { + "type":"string", + "description": { + "en": "The transaction processing was made successfully", + "es": "El procesamiento de la transacción se realizó de manera exitosa.", + "pt": "O processamento da transação foi bem-sucedido." + } + }, + "partially_refunded": { + "type":"string", + "description": { + "en": "The transaction was partially refunded by the destination bank.", + "es": "La transacción fue reembolsada parcialmente por el banco de destino.", + "pt": "A transação foi parcialmente reembolsada pelo banco de destino." + } + }, + "pending_authorized": { + "type":"string", + "description": { + "en": "The transaction is in process, pending authorization.", + "es": "La transacción está en proceso, pendiente de autorización.", + "pt": "A transação está em andamento, aguardando autorização." + } + }, + "pending_bank": { + "type":"string", + "description": { + "en": "The transaction is in process, pending by bank.", + "es": "La transacción está en proceso, pendiente de respuesta del banco.", + "pt": "A transação está em andamento, aguardando autorização do banco." + } + }, + "refunded": { + "type":"string", + "description": { + "en": "The transaction was totally refunded by the destination bank.", + "es": "La transacción fue reembolsada totalmente por el banco de destino.", + "pt": "A transação foi totalmente reembolsada pelo banco de destino." + } + }, + "by_bank": { + "type":"string", + "description": { + "en": "The transaction was rejected by the destination bank.", + "es": "El banco de destino rechazó la transferencia.", + "pt": "A transação foi rejeitada pelo banco de destino." + } + }, + "by_provider": { + "type":"string", + "description": { + "en": "The transaction was rejected by the provider.", + "es": "La transacción fue rechazada por el proveedor. ", + "pt": "A transação foi rejeitada pelo provedor. " + } + }, + "high_risk": { + "type":"string", + "description": { + "en": "The transaction is rejected due to risk of fraud.", + "es": "La transacción es rechazada por riesgo de fraude.", + "pt": "A transação é rejeitada devido ao risco de fraude." + } + }, + "insufficient_funds": { + "type":"string", + "description": { + "en": "The transaction is rejected due to insufficient funds in the origin account.", + "es": "La transacción es rechazada por fondos insuficientes en la cuenta de origen.", + "pt": "A transação é rejeitada devido a fundos insuficientes na conta de origem." + } + }, + "other_reason": { + "type":"string", + "description": { + "en": "The transaction is rejected by default due to internal problems during processing.", + "es": "La transacción es rechazada por defecto debido a problemas internos durante su procesamiento.", + "pt": "A transação é rejeitada por padrão devido a problemas internos durante o processamento." + } + }, + "review_manual": { + "type":"string", + "description": { + "en": "The transaction is rejected and sent to fraud prevention for analysis.", + "es": "La transacción es rechazada y encaminada a prevención al fraude para análisis.", + "pt": "A transação é rejeitada e enviada para análise de prevenção de fraudes." + } } } - ], - "example": "approved" + } }, "owner": { "type": "object", @@ -632,14 +635,15 @@ }, "example": "0000014" }, - "type":{ + "type": { "type": "string", - "description":{ - "en": "Destination account type.", - "es": "Tipo de cuenta de destino.", - "pt": "Tipo de conta de destino" + "required": true, + "description": { + "en": "Destination account type. The possible values are \"current\" (bank accounts) and \"mercadopago\" (Mercado Pago accounts).", + "pt": "Tipo de conta de destino. Os valores possíveis são \"current\" (contas bancárias) e \"mercadopago\" (contas do Mercado Pago).", + "es": "Tipo de cuenta de destino. Los valores posibles son \"current\" (cuentas bancarias) y \"mercadopago\" (cuentas Mercado Pago)." }, - "example": "checking_account" + "example": "current" }, "number":{ "type": "number", @@ -817,9 +821,9 @@ { "title":"Rate Limit", "description":{ - "en":"The consultation service reached the rpm limit in order not to exceed the limit allowed by Bacen and not receive fines.", - "es":"El servicio de consulta alcanzó el límite de rpm para no exceder el límite permitido por el Bacen y no recibir multas.", - "pt":"O serviço de consulta atingiu o limite de rpm para não ultrapassar o limite permitido pelo Bacen e não receber multas." + "en":"The consultation service reached the rpm limit in order not to exceed the limit allowed by Banco Central and not receive fines.", + "es":"El servicio de consulta alcanzó el límite de rpm para no exceder el límite permitido por el Banco Central y no recibir multas.", + "pt":"O serviço de consulta atingiu o limite de rpm para não ultrapassar o limite permitido pelo Banco Central e não receber multas." } }, { @@ -941,5 +945,4 @@ } } } -} - +} \ No newline at end of file diff --git a/reference/api-json/payouts_bank_transfer_mlm.json b/reference/api-json/payouts_bank_transfer_mlm.json new file mode 100644 index 0000000000..b8a3a72e03 --- /dev/null +++ b/reference/api-json/payouts_bank_transfer_mlm.json @@ -0,0 +1,856 @@ +{ + "url": "https://api.mercadopago.com", + "paths": { + "/v1/transaction-intents/process": { + "post": { + "tags": [ + "money-out" + ], + "description": { + "en": "Generate money out operations from a Mercado Pago account to other accounts (internal or external), as long as the withdrawal account has funds. In case of success, the request will return a response with status 200", + "pt": "Gera operações de saída de dinheiro desde uma conta do Mercado Pago a outras contas (internas ou externas), desde que a conta de retirada tenha fundos. Em caso de sucesso, a requisição retornará uma resposta com o status 200", + "es": "Genera operaciones de salida de dinero desde una cuenta de Mercado Pago a otras cuentas (internas o externas), siempre que la cuenta de retiro tenga fondos. En caso de éxito, la solicitud devolverá una respuesta con el estado 200" + }, + "parameters": [ + { + "in": "header", + "name": "Authorization", + "required": true, + "schema": { + "type": "string", + "example": "Bearer TEST-123456-78910-abcdefg-12345678910" + }, + "description": { + "en": "Access Token obtained through the developer panel. Must be sent in all requests.", + "pt": "Access Token obtido através do painel de desenvolvedores. Obrigatório ser enviado em todas requisições.", + "es": "Access Token obtenido a través del panel de desarrollador. Obligatorio ser enviado en todas las solicitudes." + } + }, + { + "in": "header", + "name": "X-Idempotency-Key", + "required": true, + "schema": { + "type": "string", + "example": "0d5020ed-1af6-469c-ae06-c3bec19954bb" + }, + "description": { + "en": "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.", + "pt": "Esta função permite repetir solicitações de forma segura, sem o risco de realizar a mesma ação mais de uma vez por engano. Isso é útil para evitar erros, como a criação de dois transações idênticas, por exemplo. Para garantir que cada solicitação seja única, é importante usar um valor exclusivo no header da sua solicitação. Sugerimos o uso de um UUID V4 ou strings randômicas. É importante salientar que, a partir de 01/01/24, o envio deste parâmetro passará a ser obrigatório em todas as requisições.", + "es": "Esta función permite repetir solicitudes de manera segura, sin el riesgo de realizar la misma acción más de una vez por error. Esto es útil para evitar errores, como la creación de dos transacciones idénticas, por ejemplo. Para garantizar que cada solicitud sea única, es importante utilizar un valor exclusivo en el header de tu solicitud. Sugerimos el uso de un UUID V4 o strings aleatorias. Es importante destacar que, a partir del 01/01/24, el envío de este parámetro se volverá obligatorio en todas las solicitudes." + } + }, + { + "name": "x-Signature", + "in": "header", + "required": true, + "schema": { + "type": "boolean", + "example": "true" + }, + "description": { + "en": "Request signature with the encrypted body in base 64 with the public and private keys of the integrator. It is required only in a productive environment.", + "pt": "Assinatura da requisição com o body criptografado na base 64 com as chaves pública e privada do integrador. É obrigatório apenas no ambiente de produção.", + "es": "Firma de la solicitud con el cuerpo cifrado en base 64 con las claves pública y privada del integrador. Es obligatorio sólo en el ambiente de producción." + } + }, + { + "in": "header", + "name": "x-enforce-signature", + "required": false, + "schema": { + "type": "boolean", + "example": "false" + }, + "description": { + "en": "Boolean to indicate whether the integrator will or will not send the signature. It must be \"false\" for test environements, and \"true\" for production environments, when the signature is mandatory. ", + "pt": "Booleano para indicar se o integrador irá ou não enviar a assinatura. Deve ser \"false\" para ambiente de teste, \"true\" para ambiente produtivo, que é quando é obrigatório o envio da assinatura. ", + "es": "Booleano para indicar si el integrador enviará o no la firma. Debe ser \"false\" en ambiente de pruebas y \"true\" en ambiente productivo, que es cuando es obligatorio enviar la firma." + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "external_reference": { + "required": false, + "type": "string", + "description": { + "en": "Reference to identify the transaction. It is generated by the integrator and it can be any value that allows transactions to be tracked as long as it does not have special characters (“”, [ ], (), @) and does not exceed 64 characters. Numbers (1234), letters (abcde) and middle and underscore hyphens (-; _) are allowed. Its value cannot be duplicated with another transaction.", + "pt": "Referência para identificar a transação. É gerada pelo integrador e pode ser qualquer valor que permita o rastreamento das transações, desde que não possua caracteres especiais (“”, [ ], (), @) e não exceda 64 caracteres. São permitidos números (1234), letras (abcde), hífens (-) e underlines (_), e não pode ser duplicada.", + "es": "Referencia para identificar la transacción. Es generada por el integrador y puede ser cualquier valor que permita hacer un seguimiento de las transacciones siempre que no tenga caracteres especiales (“”, [ ], (), @) y no exceda los 64 caracteres. Sí están permitidos números (1234), letras (abcde) y guiones medios y bajos (-; _). Su valor no puede ser duplicado con otras transacciones." + }, + "example": "MP0001" + }, + "seller_configuration": { + "required": false, + "type": "object", + "description": { + "en": "Object containing settings of the user performing the transaction.", + "pt": "Objeto contendo configurações do usuário que realiza a transação.", + "es": "Objeto que contiene configuraciones del usuario que realiza la transacción. " + }, + "properties": { + "notification_info": { + "type": "object", + "properties": { + "notification_url": { + "required": false, + "type": "string", + "description": { + "en": "URL available to receive notifications of events related to the transaction, such as changes in its status. This field has a 500 character limit.", + "pt": "URL onde receberá as notificações de eventos relacionados à transação, como mudanças de status. Este campo tem um limite de 500 caracteres.", + "es": "URL en la que se recibirán las notificaciones de los eventos relacionados a la transacción, como sus cambios de estado. Este campo tiene un límite de 500 caracteres. " + }, + "example": "http://example.mx/notification" + } + } + } + } + }, + "transaction": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction.", + "pt": "Objeto que contém informações sobre a transação.", + "es": "Objeto que contiene la información sobre la transacción." + }, + "properties": { + "from": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction's origin account.", + "pt": "Objeto que contém informações sobre a conta de origem que realiza a transação.", + "es": "Objeto que contiene la información sobre la cuenta de origen que efectúa la transacción." + }, + "properties": { + "accounts": { + "type": "array", + "properties": { + "amount": { + "type": "number", + "required": true, + "description": { + "en": "Transaction amount, which will be withdrawn from the source account \"from\". The minimum value is 0, and the maximum is 10000000000.", + "pt": "Valor da transação, que será retirado da conta de origem \"from\". O valor mínimo é 0, e o valor máximo é 10000000000.", + "es": "Valor de la transacción, que será retirado de la cuenta de origen \"from\". El valor mínimo es 0, y el máximo, 10000000000." + }, + "example": "100,00" + } + } + } + } + }, + "to": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction's destination account.", + "pt": "Objeto que contém informações sobre a conta de destino que recebe a transação.", + "es": "Objeto que contiene la información sobre la cuenta de destino que recibe la transacción." + }, + "properties": { + "accounts": { + "type": "array", + "properties": { + "amount": { + "type": "number", + "required": true, + "description": { + "en": "Amount to send to the destination account, indicated in the \"to\". It must be the same value as in \"from.accounts.amount\" ", + "pt": "Valor a enviar para a conta de destino indicado no \"to\". Deve ser o mesmo valor indicado para \"from.accounts.amount\"", + "es": "Monto a enviar a la cuenta destino indicada en el \"to\". Debe ser el mismo valor indicado para \"from.accounts.amount\"" + }, + "example": "100.00" + }, + "bank_id": { + "type": "string", + "required": true, + "description": { + "en": "Identification number of the bank to which the destination account belongs.", + "pt": "Número identificador do banco ao qual pertence a conta de destino.", + "es": "Número identificador del banco al que pertenece la cuenta de destino." + }, + "example": "99999004" + }, + "number": { + "type": "string", + "required": true, + "description": { + "en": "Unique number that represents a bank account. In this case, you must send the unique number that identifies the destination account.", + "pt": "Número único que representa cada conta bancária. Neste caso, você deve enviar o número único da conta de destino.", + "es": "Número único que representa cada cuenta bancaria. En este caso, debes enviar el número único de la cuenta de destino." + }, + "example": "10266732" + }, + "holder": { + "type": "string", + "required": true, + "description": { + "en": "First and last name of the destination account holder", + "pt": "Nome e sobrenome do titular da conta de destino", + "es": "Nombre y apellido del titular de la cuenta objetivo." + }, + "example": "Victor Hugo" + }, + "type": { + "type": "string", + "required": true, + "description": { + "en": "Destination account type. The possible values are \"checking_account\" (bank accounts), \"mercadopago\" (Mercado Pago accounts) e \"savings_account\" (savings account).", + "pt": "Tipo de conta de destino. Os valores possíveis são \"checking_account\" (contas bancárias), \"mercadopago\" (contas do Mercado Pago) e \"savings_account\" (poupança).", + "es": "Tipo de cuenta de destino. Los valores posibles son \"checking_account\" (cuentas bancarias), \"mercadopago\" (cuentas Mercado Pago) e \"savings_account\" (ahorro)." + }, + "example": "checking_account" + }, + "description": { + "type": "string", + "required": false, + "description": { + "en": "Short text describing the operation.", + "pt": "Texto curto de descrição da operação.", + "es": "Texto breve que describe la operación." + }, + "example": "Victor Hugo" + } + } + } + } + }, + "total_amount": { + "type": "number", + "required": true, + "description": { + "en": "Total amount of the transaction. It must be the same value as in \"from.accounts.amount\" and \"to.accounts.amount\".", + "pt": "Montante total da transação. Deve ser o mesmo valor indicado para \"from.accounts.amount\" e \"to.accounts.amount\". ", + "es": "Monto total de la transacción. Debe ser el mismo valor indicado para \"from.accounts.amount\" y \"to.accounts.amount\"." + }, + "example": "100.00" + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": { + "en": "Success", + "pt": "Success", + "es": "Success" + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "created_date": { + "type": "string", + "description": { + "es": "Fecha de creación de la transacción.", + "pt": "Data de criação da transação.", + "en": "Transaction creation date." + }, + "example": "2021-01-01T00:00:00.000Z" + }, + "external_reference":{ + "type": "string", + "description": { + "es": "Referencia externa de la transacción, que fue generada por el integrador al momento de crearla.", + "pt": "Referência externa da transação, gerada pelo integrador na hora da criação.", + "en": "Transaction external reference, generated by the integrator when it was created." + }, + "example": "123456" + }, + "id": { + "type": "string", + "description": { + "en": "Unique transaction identifier, automatically generated.", + "pt": "Identificador único da transação, gerado automaticamente", + "es": "Identificador único de la transacción, generado automáticamente." + }, + "example": "0d5020ed" + }, + "last_updated_date": { + "type": "string", + "description": { + "es": "Fecha de actualización del estado de la transacción.", + "pt": "Data de atualização do status da transação.", + "en": "Transaction's status update date." + }, + "example": "2021-01-01T00:00:00.000Z" + }, + "point_of_interaction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": { + "en": "Point of interaction. It is a fix value, always {\"type\":\"PSP_TRANSFER\"}.", + "pt": "Ponto de interação. É um valor fixo, sempre {\"type\":\"PSP_TRANSFER\"}.", + "es": "Punto de interacción. Es un valor fijo, siempre {\"type\":\"PSP_TRANSFER\"}." + }, + "example": "PSP_TRANSFER" + } + } + }, + "seller_configuration": { + "type": "object", + "description": { + "en": "Object containing settings of the user performing the transaction.", + "pt": "Objeto contendo configurações do usuário que realiza a transação.", + "es": "Objeto que contiene configuraciones del usuario que realiza la transacción. " + }, + "properties": { + "notification_info": { + "type": "object", + "properties": { + "notification_url": { + "type": "string", + "description": { + "en": "URL available to receive notifications of events related to the transaction, such as changes in its status.", + "pt": "URL onde receberá as notificações de eventos relacionados à transação, como mudanças de status. ", + "es": "URL en la que se recibirán las notificaciones de los eventos relacionados a la transacción, como sus cambios de estado." + }, + "example": "http://example.mx/notification" + } + } + } + } + }, + "status": { + "type": "string", + "example": "processed", + "description": { + "es": "Estado actual de la transacción", + "pt": "Status atual da transação", + "en": "Transaction's current status" + }, + "enum": [ + { + "title": "approved", + "description": { + "en": "The transaction processing was made successfully.", + "es": "El procesamiento de la transacción se realizó de manera exitosa.", + "pt": "O processamento da transação foi bem-sucedido." + } + }, + { + "title": "transaction_in_process", + "description": { + "en": "The transaction is in process, pending final status, and awaiting authorization.", + "es": "La transacción está en proceso, pendiente de estado final, y aguarda autorización.", + "pt": "A transação está em andamento, com status final pendente e aguardando autorização." + } + }, + { + "title": "refunded", + "description": { + "en": "The transaction was refunded by the destination bank.", + "es": "La transacción fue reembolsada por el banco de destino.", + "pt": "A transação foi reembolsada pelo banco de destino." + } + }, + { + "title": "rejected", + "description": { + "en": "The transaction was rejected. You can check the reasons in the \"to.accounts.status_detail\" field.", + "es": "La transacción fue rechazada. Puedes encontrar los motivos en el campo \"to.accounts.status_detail\". ", + "pt": "A transação foi rejeitada. Você pode ver os motivos no campo \"to.accounts.status_detail\"" + } + } + ] + }, + "transaction": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction.", + "pt": "Objeto que contém informações sobre a transação.", + "es": "Objeto que contiene la información sobre la transacción." + }, + "properties": { + "from": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction's origin account.", + "pt": "Objeto que contém informações sobre a conta de origem que realiza a transação.", + "es": "Objeto que contiene la información sobre la cuenta de origen que efectúa la transacción." + }, + "properties": { + "accounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "example": "100,00", + "description": { + "es": "Monto debitado de la cuenta Mercado Pago de origen.", + "pt": "Valor debitado da conta Mercado Pago de origem.", + "en": "Amount debited from the Mercado Pago origin account." + } + } + } + } + } + } + }, + "paid_amount": { + "type": "number", + "description": { + "es": "Monto total cobrado al titular de la cuenta de origen. Será igual a \"from.accounts.amount\", salvo que haya habido un reembolso total o parcial, indicado en \"refunded_amount\".", + "pt": "Valor total cobrado ao titular da conta de origem. Será igual a \"from.accounts.amount\", a menos que tenha havido reembolso total ou parcial, indicado em \"refunded_amount\".", + "en": "Total amount charged to the origin account holder. Its value will be equal to \"from.accounts.amount\", unless there has been a full or partial refund, indicated in \"refunded_amount\"." + }, + "example": 100.00 + } , + "payer": { + "type": "object", + "description": { + "en": "Information corresponding to the origin account holder.", + "pt": "Informação correspondente ao titular da conta de origem.", + "es": "Información correspondiente al titular de la cuenta de origen." + }, + "properties": { + "id": { + "type": "number", + "description": { + "es": "Identificador del integrador titular de la cuenta de origen.", + "pt": "Identificador do integrador titular da conta de origem.", + "en": "Identifier of the integrator holder of the origin account." + }, + "example": 123456543 + } + } + }, + "refunded_amount": { + "type": "number", + "description": { + "es": "En caso de un reembolso, indicará el monto total reembolsado al titular de la cuenta de origen. Si no hubo ningún reembolso, su valor será 0.", + "pt": "No caso de reembolso, indicará o valor total reembolsado ao titular da conta de origem. Se não houve reembolso, seu valor será 0.", + "en": "In case of a refund, it will indicate the total amount refunded to the holder of the origin account. If there was no refund, its value will be 0." + }, + "example": 1.00 + }, + "to": { + "type": "object", + "description": { + "en": "Object that contains information about the transaction's destination account.", + "pt": "Objeto que contém informações sobre a conta de destino que recebe a transação.", + "es": "Objeto que contiene la información sobre la cuenta de destino que recibe la transacción." + }, + "properties": { + "accounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amount": { + "type":"number", + "description": { + "es": "Monto transferido a la cuenta de destino. Su valor será igual a \"from.accounts.amount\", salvo que haya habido un reembolso total o parcial, indicado en el campo \"to.accounts.status_detail\".", + "pt": "Valor transferido para a conta de destino. O valor será igual a \"from.accounts.amount\", a menos que tenha havido reembolso total ou parcial indicado no campo \"to.accounts.status_detail\".", + "en": "Amount transferred to the destination account. Its value will be equal to \"from.accounts.amount\", unless there has been a full or partial refund indicated in the \"to.accounts.status_detail\" field." + }, + "example": "100,00" + }, + "status_details": { + "type":"array", + "example": "approved", + "description": { + "es": "Información detallada del estado de la operación.", + "pt": "Informação detalhada do status da operação.", + "en": "Detailed information about the status of the operation." + }, + "items": { + "type": "object", + "properties": { + "approved": { + "type":"string", + "description": { + "en": "The transaction processing was made successfully", + "es": "El procesamiento de la transacción se realizó de manera exitosa.", + "pt": "O processamento da transação foi bem-sucedido." + } + }, + "partially_refunded": { + "type":"string", + "description": { + "en": "The transaction was partially refunded by the destination bank.", + "es": "La transacción fue reembolsada parcialmente por el banco de destino.", + "pt": "A transação foi parcialmente reembolsada pelo banco de destino." + } + }, + "pending_authorized": { + "type":"string", + "description": { + "en": "The transaction is in process, pending authorization.", + "es": "La transacción está en proceso, pendiente de autorización.", + "pt": "A transação está em andamento, aguardando autorização." + } + }, + "pending_bank": { + "type":"string", + "description": { + "en": "The transaction is in process, pending by bank.", + "es": "La transacción está en proceso, pendiente de respuesta del banco.", + "pt": "A transação está em andamento, aguardando autorização do banco." + } + }, + "refunded": { + "type":"string", + "description": { + "en": "The transaction was totally refunded by the destination bank.", + "es": "La transacción fue reembolsada totalmente por el banco de destino.", + "pt": "A transação foi totalmente reembolsada pelo banco de destino." + } + }, + "by_bank": { + "type":"string", + "description": { + "en": "The transaction was rejected by the destination bank.", + "es": "El banco de destino rechazó la transferencia.", + "pt": "A transação foi rejeitada pelo banco de destino." + } + }, + "by_provider": { + "type":"string", + "description": { + "en": "The transaction was rejected by the provider.", + "es": "La transacción fue rechazada por el proveedor. ", + "pt": "A transação foi rejeitada pelo provedor. " + } + }, + "high_risk": { + "type":"string", + "description": { + "en": "The transaction is rejected due to risk of fraud.", + "es": "La transacción es rechazada por riesgo de fraude.", + "pt": "A transação é rejeitada devido ao risco de fraude." + } + }, + "insufficient_funds": { + "type":"string", + "description": { + "en": "The transaction is rejected due to insufficient funds in the origin account.", + "es": "La transacción es rechazada por fondos insuficientes en la cuenta de origen.", + "pt": "A transação é rejeitada devido a fundos insuficientes na conta de origem." + } + }, + "other_reason": { + "type":"string", + "description": { + "en": "The transaction is rejected by default due to internal problems during processing.", + "es": "La transacción es rechazada por defecto debido a problemas internos durante su procesamiento.", + "pt": "A transação é rejeitada por padrão devido a problemas internos durante o processamento." + } + }, + "review_manual": { + "type":"string", + "description": { + "en": "The transaction is rejected and sent to fraud prevention for analysis.", + "es": "La transacción es rechazada y encaminada a prevención al fraude para análisis.", + "pt": "A transação é rejeitada e enviada para análise de prevenção de fraudes." + } + } + } + } + }, + "origin_id": { + "type":"string", + "description": { + "es": "Identificador que permite rastrear la transacción dentro del sistema bancario.", + "pt": "Identificador que permite rastrear a transação dentro do sistema bancário.", + "en": "Identifier that allows the transaction to be tracked within the banking system." + }, + "example": "01AAAM001A1AY43FBR8WCM9CES" + } + } + } + } + } + }, + "total_amount": { + "type": "number", + "description": { + "es": "Monto total de la transacción.", + "pt": "Valor total da transação.", + "en": "Total amount of the transaction." + }, + "example": 100.00 + }, + "statement_descriptor": { + "type": "string", + "description": { + "es": "Mensaje adicional que se quiera sumar en la transacción.", + "pt": "Mensagem adicional para adicionar na transação.", + "en": "Additional message to add to the transaction." + }, + "example": "test" + } + } + } + } + } + } + } + }, + "400":{ + "description":{ + "en":"Bad Request", + "pt":"Bad Request", + "es":"Bad Request" + }, + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "errorKey":{ + "type":"string", + "enum":[ + { + "title":"Invalid external_reference", + "description":{ + "en":"Invalid type for field \"external_reference\". Verify the available values for this field.", + "pt":"Valor inválido para o campo \"external_reference\". Verifique os valores permitidos para esse campo.", + "es":"Valor inválido para el campo \"external_reference\". Verifica los valores permitidos para este campo." + } + }, + { + "title":"Invalid type point_of_interaction", + "description":{ + "en":"Invalid value for field \"point_of_interaction.type\". Remember that it is a fix value, always {\"type\":\"PSP_TRANSFER\"}.", + "es":"Valor inválido para el campo \"point_of_interaction.type\". Recuerda que es un valor fijo y siempre debe ser {\"type\":\"PSP_TRANSFER\"}.", + "pt":"Valor inválido para o campo \"point_of_interaction.type\". Lembre-se que é um um valor fixo, sempre {\"type\":\"PSP_TRANSFER\"}." + } + }, + { + "title":"Invalid amount", + "description":{ + "en":"Invalid value for field \"transaction.from.accounts[0].amount\". Verify the amounts allowed for the transaction. ", + "es":"Valor inválido para el campo \"transaction.from.accounts[0].amount\". Verifica los montos permitidos para la transacción.", + "pt":"Valor inválido para o campo \"transaction.from.accounts[0].amount\". Verifique os valores permitidos para a transação." + } + }, + { + "title":"Invalid identification number", + "description":{ + "en":"Invalid value for field \"transaction.to.accounts[0].identification.number\". Verify the allowed values.", + "es":"Valor inválido para el campo \"transaction.to.accounts[0].identification.number\". Verifica los valores permitidos. ", + "pt":"Valor inválido para o campo \"transaction.to.accounts[0].identification.number\". Verifique os valores permitidos." + } + }, + { + "title":"Account is disabled", + "description":{ + "en":"The Mercado Pago account is disabled", + "es":"La cuenta de Mercado Pago está desactivada", + "pt":"A conta do Mercado Pago está desativada" + } + }, + { + "title":"Participant is not available", + "description":{ + "en":"Participant is not available to make this transaction.", + "es":"El participante no está habilitado para realizar esta transacción.", + "pt":"O participante não está habilitado para o fluxo transacional." + } + }, + { + "title":"Invalid identity source", + "description":{ + "en":"The header X-Flow-id only supports \"dict\" or \"ted\".", + "es":"El header X-Identity-Source acepta solo \"dict\" o \"ted\".", + "pt":"O header X-Identity-Source suporta apenas \"dict\" ou \"ted\"." + } + }, + { + "title":"Flow not specified", + "description":{ + "en":"The header X-Flow-id only supports \"transfer\" or \"management\"", + "es":"El header X-Flow-id acepta solo \"transfer\" o \"management\"", + "pt":"O header X-Flow-id suporta apenas \"transfer\" ou \"management\"" + } + }, + { + "title":"Compliance not processed", + "description":{ + "en":"The conformity check was not completed for the user.", + "es":"La verificación de conformidad no fue concluída para el usuario.", + "pt":"A verificação de conformidade não foi concluída para o usuário." + } + }, + { + "title":"Key PSP error", + "description":{ + "en":"Attempt to consult an external PSP key that is already registered in Mercado Pago", + "es":"Intento de consultar una clave PSP externa que ya está registrada en Mercado Pago", + "pt":"Tentativa de consultar uma chave PSP externa que já está cadastrada no MercadoPago" + } + }, + { + "title":"Invalid Body", + "description":{ + "en":"The request body has an invalid format", + "es":"El cuerpo de la llamada tiene un formato inválido.", + "pt":"O body da requisição tem um formato inválido" + } + }, + { + "title":"Client not allowed", + "description":{ + "en":"The client ID associated with the credentials is not allowed to make the request.", + "es":"El client ID asociado con las credenciales no tiene permitido realizar la llamada.", + "pt":"O client ID associado às credenciais não tem permissão para fazer a requisição." + } + }, + { + "title":"Financial identity not found", + "description":{ + "en":"Financial identity not found. Check the \"to.accounts.bank_id\" field.", + "es":"La institución financiera no fue encontrada. Revisa el campo \"to.accounts.bank_id\".", + "pt":"A instituição financeira não foi localizada. Verifique o campo \"to.accounts.bank_id\"" + } + }, + { + "title":"Many Requests", + "description":{ + "en":"Too many requests has been made. Wait and try again.", + "es":"Se realizaron demasiadas llamadas. Espera y vuelve a intentarlo.", + "pt":"Muitas requisições foram feitas. Espere e tente novamente." + } + }, + { + "title":"Rate Limit", + "description":{ + "en":"The consultation service reached the rpm limit in order not to exceed the limit allowed by Bacen and not receive fines.", + "es":"El servicio de consulta alcanzó el límite de rpm para no exceder el límite permitido por el Bacen y no recibir multas.", + "pt":"O serviço de consulta atingiu o limite de rpm para não ultrapassar o limite permitido pelo Bacen e não receber multas." + } + }, + { + "title":"Unauthorized", + "description":{ + "en":"The request is unauthorized.", + "es":"La llamada no está autorizada.", + "pt":"A requisição não está autorizada." + } + }, + { + "title":"Invalid Payload", + "description":{ + "en": "Invalid request payload", + "es": "Payload inválido.", + "pt": "Payload inválido." + } + } + ] + } + } + } + } + } + }, + "424":{ + "description":{ + "en":"Failed Dependency", + "pt":"Failed Dependency", + "es":"Failed Dependency" + }, + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "errorKey":{ + "type":"string", + "enum":[ + { + "title":"Resource locked", + "description":{ + "en":"The rate limit service is processing the integrator's consumption of our API.", + "es":"El servicio de rate limit está procesando el consumo que el integrador hace de nuestra API.", + "pt":"O serviço de rate limit está processando o consumo de nossa API pelo integrador." + } + } + ] + } + } + } + } + } + }, + "500":{ + "description":{ + "en":"Internal server error.", + "pt":"Erro interno do servidor.", + "es":"Error interno del servidor." + }, + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "errorKey":{ + "type":"string", + "enum":[ + { + "title":"internal_server_error", + "description":{ + "en":"There was an error communicating with transaction_intent", + "es":"Hubo un error en la comunicación con transaction_intent", + "pt":"Houve um erro na comunicação com transaction_intent" + } + } + ] + } + } + } + } + } + }, + "502":{ + "description":{ + "en":"Bad Gateway", + "pt":"Bad Gateway", + "es":"Bad Gateway" + }, + "content":{ + "application/json":{ + "schema":{ + "type":"object", + "properties":{ + "errorKey":{ + "type":"string", + "enum":[ + { + "title":"bad_gateway", + "description":{ + "en":"Error processing request", + "es":"Error procesando la llamada", + "pt":"Erro de processamento na requisição" + } + } + ] + } + } + } + } + } + } + }, + "title": { + "en": "Create transaction to bank account", + "pt": "Criar transação para conta bancária", + "es": "Crear transacción para cuenta bancaria" + } + } + } + } +} \ No newline at end of file diff --git a/reference/api-json/payouts_pix_mlb.json b/reference/api-json/payouts_pix_mlb.json index 7c07db8383..1c9e42795d 100644 --- a/reference/api-json/payouts_pix_mlb.json +++ b/reference/api-json/payouts_pix_mlb.json @@ -155,9 +155,9 @@ "type": "string", "required": true, "description": { - "en": "Destination account type. The possible values are \"current\", for Pix accounts, and \"mercadopago\", for Mercado Pago accounts.", - "pt": "Tipo de conta de destino. Os valores possíveis são \"current\", para contas Pix, e \"mercadopago\", para contas do Mercado Pago.", - "es": "Tipo de cuenta de destino. Los valores posibles son \"current\", para cuentas Pix, y \"mercadopago\", para cuentas Mercado Pago." + "en": "Destination account type. The possible values are \"current\" (Pix accounts) and \"mercadopago\" (Mercado Pago accounts).", + "pt": "Tipo de conta de destino. Os valores possíveis são \"current\" (contas Pix) e \"mercadopago\" (contas do Mercado Pago).", + "es": "Tipo de cuenta de destino. Los valores posibles son \"current\" (cuentas Pix) y \"mercadopago\" (cuentas Mercado Pago)." }, "example": "current" }, @@ -256,9 +256,9 @@ "identification": { "type": "object", "description": { - "en": "Information corresponding to the identification documentation of the destination account holder.", - "pt": "Informação correspondente à documentação de identificação do titular da conta de destino.", - "es": "Información correspondiente a la documentación identificatoria del titular de la cuenta de destino." + "en": "Information corresponding to the identification documentation of the destination account holder. Access the endpoint '/v1/identification_type' to check all available identification types by country and get a list with the details of each one and their properties.", + "pt": "Informação correspondente à documentação de identificação do titular da conta de destino. Acesse o endpoint '/v1/identification_type' para consultar todos os tipos de documento disponíveis por país e obter uma lista com os detalhes de cada um deles e suas propriedades.", + "es": "Información correspondiente a la documentación identificatoria del titular de la cuenta de destino. Accede al endpoint '/v1/identification_type' para consultar todos los tipos de documento disponibles por país y obtener una lista con los detalles de cada uno de ellos y sus propiedades." }, "properties": { "type": { @@ -667,9 +667,9 @@ "identification": { "type": "object", "description": { - "en": "Information corresponding to the identification documentation of the destination account holder.", - "pt": "Informação correspondente à documentação de identificação do titular da conta de destino.", - "es": "Información correspondiente a la documentación identificatoria del titular de la cuenta de destino." + "en": "Information corresponding to the identification documentation of the destination account holder. Access the endpoint '/v1/identification_type' to check all available identification types by country and get a list with the details of each one and their properties.", + "pt": "Informação correspondente à documentação de identificação do titular da conta de destino. Acesse o endpoint '/v1/identification_type' para consultar todos os tipos de documento disponíveis por país e obter uma lista com os detalhes de cada um deles e suas propriedades.", + "es": "Información correspondiente a la documentación identificatoria del titular de la cuenta de destino. Accede al endpoint '/v1/identification_type' para consultar todos los tipos de documento disponibles por país y obtener una lista con los detalles de cada uno de ellos y sus propiedades." }, "properties": { "number": {