Intenciones de Pago

Crear intención de pago

POST /v1/cloud-terminals/payment-intentions

Permite crear una nueva intención de pago sobre una terminal física del ecosistema Menta. Al invocarlo se envía el importe y la información del comercio a la terminal para que la persona usuaria confirme la compra. No realiza el cobro inmediato; simplemente prepara la transacción en la terminal.

La terminal indicada debe estar CONECTADA. Esta validación aplica a las acciones que se envían a la terminal (creación y cancelación de intención). Si no hay terminal conectada, la API responde 422 con el mensaje “No connected terminal found for the provided parameters” y no persiste ni envía el comando.

ℹ️
  • El identificador de la intención (request_id) lo genera el servidor y se devuelve en el body de la respuesta 201. Conserva ese valor para consultar o cancelar la intención.
  • El rol CUSTOMER o MERCHANT puede invocar el endpoint. El comercio o cliente debe tener habilitada la funcionalidad CLOUD_TERMINAL; de lo contrario la respuesta es 403.

Encabezados

Authorization: Bearer {access_token}

Body (JSON)

ParámetrosDescripción
customer_id
  • string
  • Identificador del cliente provisto por Menta
merchant_id
  • string
  • Identificador del comercio
terminal_id
  • string
  • Identificador de la terminal donde se realizará el cobro
amount
  • string
  • Importe a cobrar como cadena numérica en unidades mínimas, sin separador decimal (^[0-9]+$). Ejemplo: 10000 equivale a 100.00
payment_method
  • (opcional)
  • string
  • Método de pago, por ejemplo CREDIT o DEBIT
card_brand
  • (opcional)
  • string
  • Marca de la tarjeta (VISA, MASTERCARD, etc.)
installments
  • (opcional)
  • integer
  • Número de cuotas. Debe ser 0 o mayor
additional_info
  • (opcional)
  • string
  • Texto opcional visible en reportes/recibos. Máximo 255 caracteres
is_tip_allowed
  • (opcional)
  • boolean
  • Permite agregar propina en la terminal. Por defecto: false
is_print_allowed
  • (opcional)
  • boolean
  • Habilita impresión de comprobante en la terminal. Por defecto: true
curl --location --request POST 'https://api.menta.global/api/v1/cloud-terminals/payment-intentions' \
  --header 'Authorization: Bearer {access_token}' \
  --data-raw '{
    "customer_id": "{customer_id}",
    "merchant_id": "{merchant_id}",
    "terminal_id": "{terminal_id}",
    "amount": "10000",
    "payment_method": "CREDIT",
    "card_brand": "VISA",
    "installments": 3,
    "additional_info": "Compra en restaurante - Mesa 5",
    "is_tip_allowed": true,
    "is_print_allowed": true
  }'

201: Created

{
  "request_id": "84d8c5dc-c71a-42de-80e7-9a457e174be3",
  "terminal_id": "{terminal_id}",
  "merchant_id": "{merchant_id}",
  "customer_id": "{customer_id}",
  "data": {
    "amount": "10000",
    "payment_method": "CREDIT",
    "card_brand": "VISA",
    "installments": 3,
    "additional_info": "Compra en restaurante - Mesa 5",
    "is_print": true,
    "is_tip": true
  }
}

Los campos sin valor se omiten. En data, is_print e is_tip reflejan is_print_allowed e is_tip_allowed.