Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/mercadopago/sdk-java/llms.txt

Use this file to discover all available pages before exploring further.

PointClient provides the integration layer for Mercado Pago Point card readers, enabling you to orchestrate in-person card-present payment flows entirely through the API without requiring the user to interact with a POS terminal UI. You can create and cancel payment intents on a specific device, poll or retrieve the intent status and event history, list all registered devices on your account, and switch a device between PDV (Point-of-Sale) and STANDALONE operating modes.

PointClient

Package: com.mercadopago.client.point

Constructors

// Uses the default HTTP client configured in MercadoPagoConfig
PointClient()

// Supply a custom MPHttpClient (useful for testing or proxy scenarios)
PointClient(MPHttpClient httpClient)

Methods

createPaymentIntent

Creates a new payment intent on a specific Point device. The device will prompt the customer to present their card.
PointPaymentIntent createPaymentIntent(String deviceId, PointPaymentIntentRequest request)
    throws MPException, MPApiException

PointPaymentIntent createPaymentIntent(String deviceId, PointPaymentIntentRequest request, MPRequestOptions requestOptions)
    throws MPException, MPApiException
deviceId
String
required
Unique identifier of the target Point device (e.g., "PAX_A910__SMARTPOS123456").
request
PointPaymentIntentRequest
required
Payment intent configuration. See PointPaymentIntentRequest fields.
requestOptions
MPRequestOptions
Optional per-request overrides for access token, headers, or timeouts.
Returns: PointPaymentIntent

getPaymentIntentStatus

Retrieves the most recent status event for a payment intent. Use this to poll for completion after creating an intent.
PointStatusPaymentIntent getPaymentIntentStatus(String paymentIntentId)
    throws MPException, MPApiException

PointStatusPaymentIntent getPaymentIntentStatus(String paymentIntentId, MPRequestOptions requestOptions)
    throws MPException, MPApiException
paymentIntentId
String
required
Unique identifier of the payment intent.
requestOptions
MPRequestOptions
Optional per-request overrides.
Returns: PointStatusPaymentIntent — contains the most recent status event for the intent.

getPaymentIntentList

Retrieves a list of payment intents that have reached a final state within a specified date range.
PointPaymentIntentList getPaymentIntentList(PointPaymentIntentListRequest request)
    throws MPException, MPApiException

PointPaymentIntentList getPaymentIntentList(PointPaymentIntentListRequest request, MPRequestOptions requestOptions)
    throws MPException, MPApiException
request
PointPaymentIntentListRequest
required
Date range filter parameters (startDate, endDate) used to filter results.
requestOptions
MPRequestOptions
Optional per-request overrides.
Returns: PointPaymentIntentList — a list of payment intents with their final states.

cancelPaymentIntent

Cancels an active payment intent on a specific device. Only intents that have not yet been processed can be cancelled.
PointCancelPaymentIntent cancelPaymentIntent(String deviceId, String paymentIntentId)
    throws MPException, MPApiException

PointCancelPaymentIntent cancelPaymentIntent(String deviceId, String paymentIntentId, MPRequestOptions requestOptions)
    throws MPException, MPApiException
deviceId
String
required
Unique identifier of the Point device that owns the intent.
paymentIntentId
String
required
Unique identifier of the payment intent to cancel.
requestOptions
MPRequestOptions
Optional per-request overrides.
Returns: PointCancelPaymentIntent — contains the ID of the cancelled payment intent.

searchPaymentIntent

Retrieves a specific payment intent by its unique identifier.
PointSearchPaymentIntent searchPaymentIntent(String paymentIntentId)
    throws MPException, MPApiException

PointSearchPaymentIntent searchPaymentIntent(String paymentIntentId, MPRequestOptions requestOptions)
    throws MPException, MPApiException
paymentIntentId
String
required
Unique identifier of the payment intent to look up.
requestOptions
MPRequestOptions
Optional per-request overrides.
Returns: PointSearchPaymentIntent

getDevices

Lists all Point devices associated with the authenticated account, optionally filtered by POS or store.
PointDevices getDevices(MPSearchRequest request)
    throws MPException, MPApiException

PointDevices getDevices(MPSearchRequest request, MPRequestOptions requestOptions)
    throws MPException, MPApiException
request
MPSearchRequest
required
Optional filter parameters. Supported keys include pos_id and store_id. Pass an empty MPSearchRequest to list all devices.
requestOptions
MPRequestOptions
Optional per-request overrides.
Returns: PointDevices — a wrapper containing the list of registered devices.

changeDeviceOperatingMode

Switches a Point device between PDV (linked to a POS system) and STANDALONE (autonomous) operating modes.
PointDeviceOperatingMode changeDeviceOperatingMode(String deviceId, PointDeviceOperatingModeRequest request)
    throws MPException, MPApiException

PointDeviceOperatingMode changeDeviceOperatingMode(String deviceId, PointDeviceOperatingModeRequest request, MPRequestOptions requestOptions)
    throws MPException, MPApiException
deviceId
String
required
Unique identifier of the Point device to update.
request
PointDeviceOperatingModeRequest
required
Contains operatingMode — either OperatingMode.PDV or OperatingMode.STANDALONE.
requestOptions
MPRequestOptions
Optional per-request overrides.
Returns: PointDeviceOperatingMode — the updated operating mode state.

PointPaymentIntentRequest fields

PointPaymentIntentRequest is a Lombok @Builder class with the following fields:
amount
BigDecimal
required
Positive amount to charge for this payment intent.
description
String
Description displayed on the device and in reporting.
payment
PointPaymentIntentPaymentRequest
Payment configuration including payment type (credit_card, debit_card) and number of installments.
additionalInfo
PointPaymentIntentAdditionalInfoRequest
Additional metadata such as external references and printing options.

OperatingMode enum

OperatingMode.PDV        // Device is linked to a Point of Sale system
OperatingMode.STANDALONE // Device operates independently

Code Example

import com.mercadopago.MercadoPagoConfig;
import com.mercadopago.client.point.OperatingMode;
import com.mercadopago.client.point.PointClient;
import com.mercadopago.client.point.PointDeviceOperatingModeRequest;
import com.mercadopago.client.point.PointPaymentIntentRequest;
import com.mercadopago.net.MPSearchRequest;
import com.mercadopago.resources.point.PointCancelPaymentIntent;
import com.mercadopago.resources.point.PointDeviceOperatingMode;
import com.mercadopago.resources.point.PointDevices;
import com.mercadopago.resources.point.PointPaymentIntent;
import com.mercadopago.resources.point.PointStatusPaymentIntent;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

MercadoPagoConfig.setAccessToken("YOUR_ACCESS_TOKEN");

PointClient client = new PointClient();
String deviceId = "PAX_A910__SMARTPOS123456789";

// Create a payment intent on a specific device
PointPaymentIntentRequest intentRequest = PointPaymentIntentRequest.builder()
    .amount(new BigDecimal("150.00"))
    .description("In-store purchase")
    .build();

PointPaymentIntent intent = client.createPaymentIntent(deviceId, intentRequest);
System.out.println("Payment intent ID: " + intent.getId());

// Poll the intent status
PointStatusPaymentIntent status = client.getPaymentIntentStatus(intent.getId());
System.out.println("Status: " + status.getStatus());

// Look up the intent by ID
PointSearchPaymentIntent found = client.searchPaymentIntent(intent.getId());

// Cancel the intent if still pending
PointCancelPaymentIntent cancelled = client.cancelPaymentIntent(deviceId, intent.getId());
System.out.println("Cancelled: " + cancelled.getId());

// List all devices on the account
MPSearchRequest devicesRequest = MPSearchRequest.builder().build();
PointDevices devices = client.getDevices(devicesRequest);
devices.getDevices().forEach(d -> System.out.println("Device: " + d.getId()));

// Switch a device to standalone mode
PointDeviceOperatingModeRequest modeRequest = PointDeviceOperatingModeRequest.builder()
    .operatingMode(OperatingMode.STANDALONE)
    .build();
PointDeviceOperatingMode modeResult = client.changeDeviceOperatingMode(deviceId, modeRequest);
System.out.println("New mode: " + modeResult.getOperatingMode());

Build docs developers (and LLMs) love