# MD for: https://www.mercadopago.com.br/developers/en/docs/mp-point-legacy/integration-configuration/integrate-with-pdv/payment-processing.md \# Payment processing To start processing your payments with Point of Sale (POS), follow the steps below. > RED\_MESSAGE > > Mercado Pago is evolving the way we integrate, and we're now offering a new API for integrations with Mercado Pago Point, which will replace the current one. If you're integrating this payment solution for the first time, access the new \[integration documentation with Orders API\](https://www.mercadopago.com.br/developers/en/docs/mp-point/create-application). \> If you already have an integration with Point, you will soon receive more information about the migration process. ## Get the list of your available devices Before creating a payment intent, you must \[obtain the list of Point devices\](https://www.mercadopago.com.br/developers/en/reference/integrations\_api/\_point\_integration-api\_devices/get) associated with your account. You can do it through the following call: \`\`\` curl curl --location --request GET 'https://api.mercadopago.com/point/integration-api/devices?offset=0&limit=50' \\ --h 'Authorization: Bearer YOUR\_ACCESS\_TOKEN' \`\`\` You will receive a response like this: \`\`\`json { "devices": \[ { "id": "PAX\_A910\_\_SMARTPOS1234345545", "pos\_id": 47792476, "store\_id": "47792478", "external\_pos\_id": "SUC0101POS", "operating\_mode": "PDV" }, { "id": "GERTEC\_MP35P\_\_5749748758974567", "pos\_id": 47792476, "store\_id": "47792474", "external\_pos\_id": "SUC0102POS", "operating\_mode": "STANDALONE" }, { "id": "GERTEC\_MP35P\_\_5743245346764567", "operating\_mode": "PDV", "pos\_id": 47792476, "store\_id": "47792471", "external\_pos\_id": "SUC0103POS", }, { "id": "PAX\_A910\_\_SMARTPOS849233453", "pos\_id": 47792476, "store\_id": "47792479", "external\_pos\_id": "SUC0104POS", "operating\_mode": "STANDALONE" } \], "paging": { "total": 4, "limit": 50, "offset": 0 } } \`\`\` ## Create the payment intent A payment intent is a call that contains all the details of the transaction to be made, and it must be created in order to start a payment. It is an attempt that, if successful, will return a payment \`id\` and its status. You can \[create a payment intent\](https://www.mercadopago.com.br/developers/en/reference/integrations\_api\_paymentintent\_mlb/\_point\_integration-api\_devices\_deviceid\_payment-intents/post) and assign it to your Point device in the following way: \`\`\`curl curl --location --request POST 'https://api.mercadopago.com/point/integration-api/devices/{deviceid}/payment-intents' \\ --h 'Authorization: Bearer YOUR\_ACCESS\_TOKEN' \\ --data-raw '{ "amount": 1500, "description": “this is an example”, "payment": { "installments": 1, "type": “credit\_card” }, "additional\_info": { "external\_reference": "4561ads-das4das4-das4754-das456", "print\_on\_terminal": true } }' \`\`\` | Field | Description | |---|---| | \`amount\` | Total amount of the payment intent. \*\*Important\*\*: this field does not allow decimal points. Therefore, if you want to generate a payment intent, you must consider the two decimals of the value in its total. For example: to generate payment order value "15.00" you must enter "1500". | | \`description\` | Description of payment intent. | | \`payment.type\` | Payment method type. | | \`payment.installments\` | Number of installments in which the payment is processed. The minimum value of each installment must be 5.00 (500). In the case of Smart devices, if the value is less than the minimum accepted, the payment will be processed at once, without considering the established fees. | | \`payment.installments\_cost\` | Cost for payment installments. This field determines who takes the cost and the accepted values are \`seller\` and \`buyer\`. | | \`external\_reference\` | Field exclusively used by the integrator to include references to their system. | | \`print\_on\_terminal\` | Field that determines if the device prints the payment receipt. | In response, you will receive something similar to this: \`\`\`json { "id":"7d8c70b6-2ac8-4c57-a441-c319088ca3ca", "device\_id":"GERTEC\_MP35P\_\_8701016695109435", "amount":1500, "description":"this is an example", "payment":{ "type":"credit\_card", "installments":1, "installments\_cost":"seller" }, "additional\_info":{ "external\_reference":"4561ads-das4das4-das4754-das456", "print\_on\_terminal":true } } \`\`\` Please note that payment intents are the foundation for processing payments with Point devices. For this reason, it is important that you register and save the data obtained during their creation, especially their \`id\`. ## Process your payment intent Once the payment intent has been created, you can obtain it from your Point device by pressing on the key to pay (in the case of Point Plus the \*\*green button\*\* and, in the case of the Point Smart, the \*\*digital button “Cobrar”\*\*). Then, follow the steps shown on the screen afterwards to complete the payment. > WARNING > > Important > > We recommend assessing your \[integration’s quality\](https://www.mercadopago.com.br/developers/en/docs/mp-point/how-tos/integration-quality) to check if you are meeting the Mercado Pago quality and security standards that would help you obtain a good payment approval rate. ## Check the status of your payment intent If you want to know the status of a particular payment intent, you can \[check the current status of your payment intent\](https://www.mercadopago.com.br/developers/en/reference/integrations\_api/\_point\_integration-api\_payment-intents\_paymentintentid/get) using the \`id\` that you received in the response when creating it. > WARNING > > Attention > > Keep in mind that it's only possible to \*\*check the status of a payment intent that was created up to, at most, 3 months ago\*\*. Make sure to use the identifier (\`id\`) corresponding to the payment attempt that falls within this period. If you need information about older payment intents, we recommend contacting our customer service for additional assistance. Remember that \`id\`and \`status\`of the payment intent (for example, \_7f25f9aa-eea6-4f9c-bf16-a341f71ba2f1\_) are not the same as \`id\`and \`status\`of the payment (for example, \_65412345\_). In this case, you will be trying to obtain the details of an attempt. If you want to check out all the information corresponding to the payment, access the \[Payment API section\](https://www.mercadopago.com.br/developers/en/reference/payments/\_payments\_id/get) in our API Reference. > WARNING > > Important > > The main recommended mechanism to know the result of a payment intent is the subscription to \[integration notifications\](https://www.mercadopago.com.br/developers/en/docs/mp-point/integration-configuration/integrate-with-pdv/notifications). The endpoint presented here is recommended only as an alternative mechanism. \`\`\` curl curl --location --request GET 'https://api.mercadopago.com/point/integration-api/payment-intents/ {paymentintentid}' \\ --h 'Authorization: Bearer YOUR\_ACCESS\_TOKEN' \`\`\` You will receive a response similar to this one below: \`\`\` json { "state":"FINISHED", "id":"f8f50814-a8c5-4524-95b6-672958523121", "device\_id":"GERTEC\_MP35P\_\_8701016695109435", "description":"this is an example", "amount":1500, "payment":{ "type":"credit\_card", "installments":1 }, "additional\_info":{ "external\_reference":"4561ads-das4das4-das4754-das456", "print\_on\_terminal":true } } \`\`\` > WARNING > > Important > > \`Confirmation\_required\` is a final status and will not change. If you receive it as a response to the payment intent, you must check on your device the status of the payment, using the \`payment\_id\` given in said response. Do not deliver your service or product until you verify it. You can check all the possible status of a payment intent by accessing our \[Glossary\](https://www.mercadopago.com.br/developers/en/docs/mp-point/integration-api/glossary). ## Cancel a payment intent If you want to, you can cancel a payment intent assigned to a Point device according to the status of the payment intent. See more information below. ### Status: open If the status of the intent is \`open\` and it has not yet been sent to the terminal, you can \[cancel it via API\](https://www.mercadopago.com.br/developers/en/reference/integrations\_api/\_point\_integration-api\_devices\_deviceid\_payment-intents\_paymentintentid/delete) by making the following call: \`\`\` curl curl --location --request DELETE 'https://api.mercadopago.com/point/integration-api/devices/{deviceid}/payment-intents/{paymentintentid}' \\ --h 'Authorization: Bearer YOUR\_ACCESS\_TOKEN' \\ \`\`\` You will receive this response: \`\`\` json { "id": "7d8c70b6-2ac8-4c57-a441-c319088ca3ca" } \`\`\` ### Status: on\_terminal If the status of the payment intent is \`on\_terminal\`, you will need to cancel it directly from the Point device. To do so, follow the instructions below. - \*\*Point Smart\*\*: on the device, press and hold the \*\*bottom right button\*\* for a few seconds, and when the message appears asking if you want to exit the screen without completing the charge, click \*\*yes\*\*.