Saltar al contenido principal
Migo Docs

Procesar un Pago con Terminal

Flujo

1. El cajero ingresa el monto en el POS
2. La app del POS envía el subtotal a Migo, referenciando la terminal/dispositivo
3. Migo valida la terminal y su procesador/cuenta asociados
4. Migo crea el pago con terminal (el estado inicia como "created", totalAmount 0)

La captura y autorización de la tarjeta se manejan fuera de banda por la integración con el procesador de tarjetas — no se realizan con datos de tarjeta en esta solicitud.

Solicitud

El body es CreateTerminalPaymentInput. Solo subtotal es requerido; proporciona al menos uno de externalTerminalId, terminalId o deviceId para que la terminal pueda resolverse.

{
"externalTerminalId": "TRM-EXT-001",
"subtotal": 150.5,
"additionalData": { "invoiceNumber": "INV-001" }
}
CampoTipoNotas
subtotalnumberRequerido. Subtotal del pago, debe ser mayor que 0
externalTerminalIdstringOpcional. Identificador de terminal externo de la red de pagos
terminalIdnumberOpcional. Identificador interno de la terminal
deviceIdstringOpcional. Identificador del dispositivo que inicia el pago
operationIdstringOpcional. Identificador de operación para seguimiento. Se autogenera si se omite
additionalDataobjectOpcional. Metadatos de formato libre persistidos en el pago con terminal

La currency se toma de la configuración de la terminal, no de la solicitud.

Respuesta (creado)

Crear un pago con terminal devuelve el registro recién creado. Inicia con estado created y totalAmount "0". Los campos monetarios subtotal y totalAmount se devuelven como strings, y additionalData puede ser null.

{
"success": true,
"status": 200,
"message": "terminal payment created successfully.",
"data": {
"id": 34,
"terminalId": 1,
"externalId": "",
"subtotal": "10",
"totalAmount": "0",
"status": "created",
"currency": "GTQ",
"additionalData": null,
"createdAt": "2025-06-03T04:52:07.637Z",
"updatedAt": "2025-06-03T04:52:07.637Z"
}
}

Errores

Los errores usan el envelope estándar CustomResponse: { statusCode, message, error: { code, name, detail } }. Los códigos de error de pago con terminal incluyen:

CódigoNombreSignificado
7307ERROR_CREATING_TERMINAL_PAYMENTFalló la creación del pago con terminal
7308ERROR_TERMINAL_PAYMENT_STATUSTransición de estado inválida
7400TERMINAL_NOT_FOUNDLa terminal referenciada no existe
7401TERMINAL_INACTIVELa terminal no está activa
7402TERMINAL_PAYMENT_NOT_FOUNDEl pago con terminal no existe
7006EXTERNAL_ID_ALREADY_EXISTSexternalId duplicado

Relacionado