Payment processing
To start processing your payments with Point of Sale (POS), follow the steps below.
Get the list of your available devices
Before creating a payment intent, you must obtain the list of Point devices 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": "47792479",
"external_pos_id": "SUC0101POS",
"operating_mode": "PDV"
},
{
"id": "INGENICO_MOVE2500__ING-ARG-12348394345",
"pos_id": 47792476,
"store_id": "47792476",
"external_pos_id": "SUC0102POS",
"operating_mode": "STANDALONE"
},
{
"id": "INGENICO_MOVE2500__ING-ARG-4782743403",
"operating_mode": "PDV",
"pos_id": 47792476,
"store_id": "47792478",
"external_pos_id": "SUC0103POS",
},
{
"id": "PAX_A910__SMARTPOS849233453",
"pos_id": 47792476,
"store_id": "47792472",
"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 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,
"additional_info": {
"external_reference": "4561ads-das4das4-das4754-das456",
"print_on_terminal": true,
"ticket_number": "S0392JED"
}
}'
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". |
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. |
ticket_number | Ticket number of the payment intent. |
In response, you will receive something similar to this:
json
{
"id": "7d8c70b6-2ac8-4c57-a441-c319088ca3ca",
"device_id": "INGENICO_MOVE2500__ING-ARG-14886780",
"amount": 1500,
"additional_info": {
"external_reference": "4561ads-das4das4-das4754-das456",
"print_on_terminal": true,
"ticket_number": "S0392JED"
}
}
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 and Point Pro 2 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.
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 using the id
that you received in the response when creating it.
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 in our API Reference.
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": "0aa0519d-d985-4e83-b62d-dda123456789",
"device_id": "INGENICO_MOVE2500_ING-ARG-14123456",
"amount": 600,
"payment": {
"id": "11123456789"
},
"additional_info": {
"ticket_number": "123456789123456789"
}
}
You can check all the possible status of a payment intent by accessing our 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 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.
- Point Plus: on the device, press and hold the red button for a few seconds, and when the message appears asking if you want to exit the screen without completing the charge, click yes.