Download OpenAPI specification:Download
La API de MACH para comercios está construida para ser utilizada como una plataforma de pagos, en donde sus clientes pueden usar la aplicación MACH para pagar en su comercio. MACH para comercios API está organizada en torno a REST: URLs predecibles y orientadas a recursos, acepta cuerpos de solicitudes form-encoded, retorna respuestas codificadas en JSON, y usa estándar HTTPS para los códigos de respuesta, autenticación y verbos.
Una vez registrado en el Portal para comercios (https://pay.somosmach.com), tendrás acceso a operaciones manuales, como inscripción de tu comercio, obtención de llaves de autenticación, invitación de usuarios, vistas de resumen y descarga de reportes. Si necesitas ayuda, no dudes en contactarnos mediante el formulario presente en nuestro Centro de Ayuda
Además del ambiente productivo, MACH ofrece un ambiente de alta disponibilidad, réplica del ambiente productivo para realización y certificación de pruebas durante el período de integración (denominado Sandbox). Este ambiente habilita pruebas que no afecten los flujos productivos de tu comercio, a usuarios de MACH o a otros clientes. Esta plataforma no cuenta con una aplicación móvil con la cual dar completitud de los pagos; sin embargo, cuenta con operaciones básicas mediante botones web para simular la completación o fallo de los pagos.
A nivel de Portal para comercios, el modo Sandbox se activa por defecto al realizar la inscripción en el Portal, y el modo Producción se libera una vez se completen los datos legales (dirección, sociedad de la empresa). Ambos ambientes pueden ser alternados con el switch ubicado en la parte inferior de la barra lateral izquierda del Portal.
Para realizar llamadas en modo Sandbox se debe llamar a https://biz-sandbox.soymach.com, y en modo Producción se debe llamar a https://biz.soymach.com
Se debe adjuntar un token de autenticación en cada una de las requests. Este token se puede generar a través del Portal Mach para comercios, en Configuraciones > Para Desarrolladores > API Keys. Cada ambiente (Sandbox, Producción) maneja su autenticación de forma diferenciada, por lo que se deben generar llaves independientes para pruebas y para producción.
Tras generar una llave, la misma no se podrá recuperar, ya que no es guardada en sistema y no se puede volver a obtener; sin embargo, se pueden desactivar y generar tokens de reemplazo, de ser necesario.
E.g: "Authorization": "Bearer eyJhbGciOiwdgtrhsiere..."
Las llamadas a continuación tienen documentado el método de autenticación como BearerAuth
.
Información relacionada a los pagos realizados mediante MACH. El documento de pago guarda toda la información relevante de este mismo, como el monto, identificador del pago, identificador del comercio, etc.
Proceso de pago
Si tienes locales físicos, la confirmación manual de tus transacciones podría ser la mejor opción para tu integración. Obtén más información en el siguiente enlace.
Retorna un diccionario con propiedad payments
, una lista que tiene tamaño máximo limit
, listados tras el cursor starting_after
created_at_gte | string Example: 2021-11-17T03:00:00.000Z Filtro basado en el campo |
created_at_lt | string Example: 2021-11-17T03:00:00.000Z Filtro basado en el campo |
starting_after | string Example: 619e412e80d9360043e53f54 Cursor para paginación, define el punto de actual de la lista. Por ejemplo: si la información de la solicitud anterior tenía un valore |
ending_before | string Example: 619e412e80d9360043e53f54 Cursor para paginación, define el punto de actual de la lista. Por ejemplo: si la información de la solicitud anterior tenía un valor |
limit | integer Example: 50 Limita la cantidad de objetos a retornar en la lista. Varía entre 1 y 100, y por defecto es 100. |
upstream_id | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Filtro basado en el campo |
{- "payments": [
- {
- "token": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "business_payment_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "url": "machapp://pay-biz/payment/19036125-c6ad-47b2-9ed5-2945c9ca736a",
- "expires_at": "2020-11-17T20:44:14.141Z",
- "created_at": "2020-11-17T20:24:14.141Z",
- "completed_at": "2020-11-17T20:34:14.141Z",
- "status": "CONFIRMED",
- "metadata": {
- "product_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "customer_id": "ae0d6762-114b-480c-b60c-51df45110d61"
}, - "title": "DJI Chile",
- "amount": 3990,
- "message": "DJI Mavic Pro 7",
- "options": {
- "is_amount_editable": true,
- "is_message_editable": true
}
}
], - "cursor": {
- "last_id": "619e412e80d9360043e53f54",
- "first_id": "619e412e80d9360043e53f54",
- "has_before": false,
- "has_after": true
}
}
Crea un objeto de tipo BusinessPayment.
Este endpoint se usa para poder recolectar un pago por parte de un usuario. Una vez creado el objeto, use la url
entregada para crear y mostrar un código QR o un deeplink al usuario, mediante el cual este último podrá pagar o rechazar el pago usando la app MACH.
Puede adjuntar información relevante para su negocio dentro del objeto metadata
, en el cuerpo de la solicitud, en formato llave-valor. Este campo quedará adjunto al BusinessPayment
y será retornado en todas las llamadas. Esta solicitud está limitada a un máximo de 500 intentos en un rango de 5 minutos.
object |
{- "payment": {
- "amount": 3990,
- "message": "DJI Mavic Pro 7",
- "title": "DJI Chile",
- "terminal_id": "a7f0b88a-0f75-11ee-be56-0242ac120002",
- "upstream_id": "e919664a-0f75-11ee-be56-0242ac120002",
- "metadata": {
- "product_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "customer_id": "ae0d6762-114b-480c-b60c-51df45110d61"
}
}
}
{- "token": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "business_payment_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "url": "machapp://pay-biz/payment/19036125-c6ad-47b2-9ed5-2945c9ca736a",
- "expires_at": "2020-11-17T20:44:14.141Z",
- "created_at": "2020-11-17T20:24:14.141Z",
- "status": "PENDING",
- "metadata": {
- "product_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "customer_id": "ae0d6762-114b-480c-b60c-51df45110d61"
}, - "title": "DJI Chile",
- "terminal_id": "a7f0b88a-0f75-11ee-be56-0242ac120002",
- "upstream_id": "e919664a-0f75-11ee-be56-0242ac120002",
- "amount": 3990,
- "numeric_code": 309483033,
- "message": "DJI Mavic Pro 7",
- "options": {
- "is_amount_editable": true,
- "is_message_editable": true
}, - "bci": {
}
}
Obtiene los detalles de un BusinessPayment
previamente creado. Esta solicitud está limitada a un máximo de 1000 intentos en un rango de 5 minutos.
token required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único del objeto |
{- "token": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "business_payment_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "url": "machapp://pay-biz/payment/19036125-c6ad-47b2-9ed5-2945c9ca736a",
- "expires_at": "2020-11-17T20:44:14.141Z",
- "created_at": "2020-11-17T20:24:14.141Z",
- "status": "PENDING",
- "metadata": {
- "product_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "customer_id": "ae0d6762-114b-480c-b60c-51df45110d61"
}, - "title": "DJI Chile",
- "terminal_id": "a7f0b88a-0f75-11ee-be56-0242ac120002",
- "upstream_id": "e919664a-0f75-11ee-be56-0242ac120002",
- "amount": 3990,
- "numeric_code": 309483033,
- "message": "DJI Mavic Pro 7",
- "options": {
- "is_amount_editable": true,
- "is_message_editable": true
},
}
Obtiene la imagen QR de un BusinessPayment
previamente creado. Esta solicitud está limitada a un máximo de 1000 intentos en un rango de 5 minutos.
token required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único del objeto |
color | string Enum: "MACH" "BLACK" "BCI" Identificador único del color con que se quiere pintar el QR, entre opciones "MACH", "BLACK", "BCI" |
{- "image_base_64": "data:image/png;base64,iVBORw0KGgoA..."
}
Un BusinessPayment
puede ser reversado cuando está en estado COMPLETED
, y solo en una ventana de tiempo de 5 minutos después de haber transicionado a dicho estado (o sea, cuando el usuario autorizó la compra).
Una vez reversado el pago, el dinero descontado del saldo del usuario producto de la compra es automáticamente restituido, y todos los registros de compras son actualizados. Tarifas pueden aplicar a los montos reversados.
token required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único del objeto |
{- "token": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "business_payment_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "url": "machapp://pay-biz/payment/19036125-c6ad-47b2-9ed5-2945c9ca736a",
- "expires_at": "2020-11-17T20:44:14.141Z",
- "created_at": "2020-11-17T20:24:14.141Z",
- "completed_at": "2020-11-17T20:34:14.141Z",
- "reversed_at": "2020-11-17T20:35:14.141Z",
- "status": "REVERSED",
- "metadata": {
- "product_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "customer_id": "ae0d6762-114b-480c-b60c-51df45110d61"
}, - "title": "DJI Chile",
- "terminal_id": "a7f0b88a-0f75-11ee-be56-0242ac120002",
- "upstream_id": "e919664a-0f75-11ee-be56-0242ac120002",
- "amount": 3990,
- "numeric_code": 309483033,
- "message": "DJI Mavic Pro 7",
- "options": {
- "is_amount_editable": true,
- "is_message_editable": true
},
}
Se puede generar una devolución de un BusinessPayment
cuando está en estado CONFIRMED
, y solo en una ventana de tiempo de 14 días corridos después de haber transicionado a dicho estado (o sea, cuando pasaron 5 min desde que el usuario autorizó la compra).
Una vez realizada la devolución, se registrará como un nuevo movimiento. La suma de las devoluciones asociadas a un pago no puede exceder el valor total del pago. Esta solicitud está limitada a un máximo de 500 intentos en un rango de 5 minutos.
token required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único del objeto |
amount required | integer Total en CLP a devolver, debe ser positivo mayor a cero. El monto no puede exceder el monto total del pago asociado. |
comment | string Mensaje descriptivo de la devolución a realizar. E.g: descripción de la devolución de venta |
{- "amount": 3990,
- "comment": "Devolución por falta de stock"
}
{- "token": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "business_refund_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "business_payment_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "created_at": "2019-07-19 15:22:13.219Z",
- "state": "PENDING",
- "amount": 3990,
- "comment": "Devolución por falta de stock"
}
Se puede cancelar de un BusinessPayment
cuando está en estado PENDING
, es decir cuando el pago no ha sido completado por un usuario y tampoco ha expirado.
token required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único del objeto |
{- "token": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "business_payment_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "url": "machapp://pay-biz/payment/19036125-c6ad-47b2-9ed5-2945c9ca736a",
- "expires_at": "2020-11-17T20:44:14.141Z",
- "created_at": "2020-11-17T20:24:14.141Z",
- "canceled_at": "2020-11-17T20:27:45.455Z",
- "status": "CANCELED",
- "metadata": {
- "product_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "customer_id": "ae0d6762-114b-480c-b60c-51df45110d61"
}, - "title": "DJI Chile",
- "terminal_id": "a7f0b88a-0f75-11ee-be56-0242ac120002",
- "upstream_id": "e919664a-0f75-11ee-be56-0242ac120002",
- "amount": 3990,
- "numeric_code": 309483033,
- "message": "DJI Mavic Pro 7",
- "options": {
- "is_amount_editable": true,
- "is_message_editable": true
},
}
Se puede confirmar de un BusinessPayment
cuando está en estado COMPLETED
, es decir, cuando este ya ha sido autorizado por el usuario. Para poder confirmar un pago, el comercio debe tener configurado un flujo de confirmación de pagos MANUAL. Este flujo está desactivado por defecto, para ser utilizado deben enviar un ticket mediante el Centro de Ayuda.
token required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único del objeto |
{- "token": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "business_payment_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "url": "machapp://pay-biz/payment/19036125-c6ad-47b2-9ed5-2945c9ca736a",
- "expires_at": "2020-11-17T20:44:14.141Z",
- "created_at": "2020-11-17T20:24:14.141Z",
- "completed_at": "2020-11-17T20:34:14.141Z",
- "status": "CONFIRMED",
- "metadata": {
- "product_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "customer_id": "ae0d6762-114b-480c-b60c-51df45110d61"
}, - "title": "DJI Chile",
- "terminal_id": "a7f0b88a-0f75-11ee-be56-0242ac120002",
- "upstream_id": "e919664a-0f75-11ee-be56-0242ac120002",
- "amount": 3990,
- "numeric_code": 309483033,
- "message": "DJI Mavic Pro 7",
- "options": {
- "is_amount_editable": true,
- "is_message_editable": true
},
}
Crea un objeto de tipo BusinessPayment
con estado COMPLETED
a partir de un businessEnrollmentId
.
business_enrollment_id required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único del objeto |
amount required | integer Total en CLP a recolectar una vez que el usuario autorice el pago, debe ser positivo mayor a cero. |
message required | string Mensaje descriptivo de la transacción a realizar. E.g: descripción del producto en venta |
title required | string Nombre representativo de la transacción a realizar. E.g: nombre del producto en venta |
terminal_id | string ID de caja desde la cual se generó el pago, de existir. En caso contrario, se puede enviar |
{- "amount": 3990,
- "message": "DJI Mavic Pro 7",
- "title": "DJI Chile",
- "terminal_id": "a7f0b88a-0f75-11ee-be56-0242ac120002"
}
{- "business_enrollment_id": "e919664a-0f75-11ee-be56-0242ac120002",
- "token": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "business_payment_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "url": "machapp://pay-biz/payment/19036125-c6ad-47b2-9ed5-2945c9ca736a",
- "expires_at": "2020-11-17T20:44:14.141Z",
- "created_at": "2020-11-17T20:24:14.141Z",
- "completed_at": "2020-11-17T20:34:14.141Z",
- "status": "COMPLETED",
- "metadata": {
- "product_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "customer_id": "ae0d6762-114b-480c-b60c-51df45110d61"
}, - "title": "DJI Chile",
- "terminal_id": "a7f0b88a-0f75-11ee-be56-0242ac120002",
- "upstream_id": "e919664a-0f75-11ee-be56-0242ac120002",
- "amount": 3990,
- "numeric_code": 309483033,
- "message": "DJI Mavic Pro 7",
- "options": {
- "is_amount_editable": true,
- "is_message_editable": true
},
}
Información relacionada a las compensaciones realizadas a los comercios asociados a MACH.
Endpoint para obtener la información de la compensación con id determinado
compensation_id required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único de la compensación. |
{- "amount": 114,
- "start_date": "2021-07-26T15:00:00.000Z",
- "end_date": "2021-08-24T18:00:00.000Z",
- "compensation_id": "91deb3a3-0234-4110-b697-aa1c0f94058c",
}
Endpoint para obtener la información de una compensación con una fecha de término específica
end_date required | string Example: 2020-09-18 Fecha de término de la compensación |
{- "amount": 114,
- "start_date": "2021-07-26T15:00:00.000Z",
- "end_date": "2021-08-24T18:00:00.000Z",
- "compensation_id": "91deb3a3-0234-4110-b697-aa1c0f94058c",
}
Endpoint para obtener la información de las cuentas bancarias habilitadas para recibir compensaciones
holderName required | string Example: Servicios S.A. Nombre asociado a la cuenta |
{- "bankAccounts": [
- {
- "holder_name": "Servicio S.A.",
- "account_number": "12345",
- "bank_name": "Banco Estado"
}
], - "cursor": {
- "first_id": "619e412e80d9360043e53f54",
- "last_id": "619e412e80d9360043e53f54",
- "has_after": false,
- "has_before": true
}
}
Información relacionada a las devoluciones realizadas por los comercios asociados a MACH.
Proceso de devolución
Si tu comercio lo necesita, puedes solicitar la modificación de los tiempos automatizados vinculados a los cambios de estado de tus transacciones. Realiza esta solicitud a través de tu ejecutivo MACH.
Endpoint para obtener una devolución por su token
o business_refund_id
business_refund_id required | string Identificador de la devolución pedida. |
{- "token": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "business_refund_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "business_payment_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "created_at": "2019-07-19 15:22:13.219Z",
- "state": "PENDING",
- "amount": 3990,
- "comment": "Devolución por falta de stock"
}
Endpoint para listar las devoluciones realizadas por el comercio
created_at_gte | string Example: 2021-11-17T03:00:00.000Z Filtro basado en el campo |
created_at_lt | string Example: 2021-11-17T03:00:00.000Z Filtro basado en el campo |
starting_after | string Example: 619e412e80d9360043e53f54 Cursor para paginación, define el punto de actual de la lista. Por ejemplo: si la información de la solicitud anterior tenía un valore |
ending_before | string Example: 619e412e80d9360043e53f54 Cursor para paginación, define el punto de actual de la lista. Por ejemplo: si la información de la solicitud anterior tenía un valor |
limit | integer Example: 50 Limita la cantidad de objetos a retornar en la lista. Varía entre 1 y 100, y por defecto es 100. |
state | Array of arrays Example: PENDING,COMPLETED Filtro basado en el campo |
business_payment_id | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único del objeto |
{- "refunds": [
- {
- "token": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "business_refund_id": "dd6af8f6-4ba0-47d9-8c38-a4313e08b456",
- "business_payment_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "created_at": "2019-07-19 15:22:13.219Z",
- "state": "PENDING",
- "amount": 3990,
- "comment": "Devolución por falta de stock"
}
], - "cursor": {
- "first_id": "619e412e80d9360043e53f54",
- "last_id": "619e412e80d9360043e53f54",
- "has_after": false,
- "has_before": true
}
}
Retorna un objeto con la propiedad branch
, que es la sucursal creada
name required | string Nombre de la sucursal |
type required | string Tipo de la sucursal, puede ser |
bank_account_id | string Id de la cuenta bancaria asociada. En caso de no enviarse se utilizará la primera cuenta bancaria creada. |
object Dirección completa de la sucursal |
{- "name": "MACH",
- "type": "PHYSICAL",
- "bank_account_id": "0dc7b11d-a7cf-4103-8d19-2d1087b9b364",
- "address": {
- "street_name": "Los Leones",
- "street_number": "5516",
- "office_number": "15",
- "municipality": "Las Condes",
- "region": "Región Metropolitana de Santiago"
}
}
{- "branch": {
- "name": "MACH",
- "type": "PHYSICAL",
- "address": {
- "region": "Región Metropolitana de Santiago",
- "municipality": "Las Condes",
- "street_name": "Los Leones",
- "street_number": "5516",
- "office_number": "15"
}, - "business_mach_id": "c1d631b3-207d-4812-aa25-dc6d0db6f5e2",
- "branch_id": "6e272fe0-9eba-4134-96f1-3d72dad896be",
- "created_at": "2021-11-24T15:01:03.915Z",
- "updated_at": "2021-11-24T15:01:03.915Z",
- "bank_account_id": "0dc7b11d-a7cf-4103-8d19-2d1087b9b364"
}
}
Endpoint para obtener la información de una sucursal específica
branchId required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único del objeto |
{- "branch": {
- "name": "MACH",
- "type": "PHYSICAL",
- "address": {
- "region": "Región Metropolitana de Santiago",
- "municipality": "Las Condes",
- "street_name": "Los Leones",
- "street_number": "5516",
- "office_number": "15"
}, - "business_mach_id": "c1d631b3-207d-4812-aa25-dc6d0db6f5e2",
- "branch_id": "6e272fe0-9eba-4134-96f1-3d72dad896be",
- "created_at": "2021-11-24T15:01:03.915Z",
- "updated_at": "2021-11-24T15:01:03.915Z",
- "bank_account_id": "0dc7b11d-a7cf-4103-8d19-2d1087b9b364"
}
}
Retorna una confirmación de la eliminación de la sucursal
branchId required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456 Identificador único del objeto |
{- "success": true
}
Retorna un listado con los reportes de un comercio según los filtros aplicados.
{- "reports": [
- {
- "report_id": "19036125-c6ad-47b2-9ed5-2945c9ca1234",
- "business_mach_id": "20036125-c6ad-47b2-9ed5-2945c9ca1236",
- "report_type": "DAILY_COMPENSATION",
- "transaction_types": [
- "COMPLETIONS"
], - "separator": ",",
- "terminal_id": "345678",
- "sent_to_emails": [
- "example@example.com"
], - "column_names": [
- "accountingDate",
- "localAccountingDate",
- "completedAt"
], - "start_date": "2022-01-01T00:00:00Z",
- "end_date": "2022-01-31T23:59:59Z",
- "s3_file_key": "s3://bucket/key",
- "status": "COMPLETED",
}
]
}
Retorna un objeto con la propiedad terminal
, que es la caja creada
name | string Nombre de la caja a crear |
branch_id | string Identificador de la sucursal a la que pertenece la caja |
{- "name": "MACH DIGITAL",
- "branch_id": "0dc7b11d-a7cf-4103-8d19-2d1087b9b364"
}
{- "name": "MACH DIGITAL",
- "branch_id": "0dc7b11d-a7cf-4103-8d19-2d1087b9b364",
- "business_mach_id": "c1d631b3-207d-4812-aa25-dc6d0db6f5e2",
- "terminal_id": "995d2abc-1c76-4669-966f-60c1165cbac7",
- "created_at": "2021-11-24T15:20:35.757Z",
- "updated_at": "2021-11-24T15:20:35.757Z"
}
Retorna la confirmación de la eliminación de una caja determinada
terminalId required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b455 Identificador de una caja |
{- "success": true
}
Endpoint para obtener la información de una caja específica
terminalId required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b455 Identificador de una caja |
{- "name": "MACH DIGITAL",
- "branch_id": "0dc7b11d-a7cf-4103-8d19-2d1087b9b364",
- "business_mach_id": "c1d631b3-207d-4812-aa25-dc6d0db6f5e2",
- "terminal_id": "995d2abc-1c76-4669-966f-60c1165cbac7",
- "created_at": "2021-11-24T15:20:35.757Z",
- "updated_at": "2021-11-24T15:20:35.757Z"
}
Endpoint para obtener la imagen QR de una caja específica
terminalId required | string Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b455 Identificador de una caja |
color | string Enum: "MACH" "BLACK" "BCI" Identificador único del color con que se quiere pintar el QR, entre opciones "MACH", "BLACK", "BCI" |
{- "image_base_64": "string"
}
Información relacionada a los enrolamientos de usuarios en los comercios asociados a MACH. Para utilizar esta funcionalidad, ponte en contacto con nosotros mediante el Centro de Ayuda Empresas.
MACH permite configurar webhook endpoints para notificar a una URL acerca de eventos que ocurren en su cuenta MACH Business. Para configurar un webhook, se debe ingresar a la plataforma de MACH, en Configuraciones > Para Desarrolladores > Webhooks. Esta configuración, al igual que los tokens de autenticación, es dependiente del ambiente en que se crean (Sandbox y Producción)
Cuando (por ejemplo) un usuario autoriza una compra en su sitio, creada a través de la Business API,
MACH puede notificarle a una URL registrada la ocurrencia del evento, con su información correspondiente.
MACH enviará un objeto a través de una solicitud HTTP POST, ante lo cual su endpoint debería retornar un estado HTTP 2xx
.
Toda otra respuesta notifica a MACH que la URL registrada no recibió el webhook correctamente, y respuestas con estado 5XX son re-intentadas 2 veces más en intervalos de tiempo de 25 y 125 segundos respectivamente, para luego ser marcadas como fallidas.
Un ejemplo del objeto que envía MACH al completarse un pago (y que se encuentra en el body
de la solicitud) es el siguiente:
{
"event_name": "business-payment-completed",
"event_resource_id": "12685e38-ef64-4cff-b51a-8a4fe649e3b6",
"event_upstream_id": "upstream_id"
}
En este payload de ejemplo, el campo event_resource_id
es un string que identifica al BusinessPayment
que fue completado con el evento (equivalente al campo business_payment_id
),
y el campo upstream_id
hace referencia al identificador externo que entregó el comercio al crear el pago.
Use ese valor para llamar al endpoint Obtener un BusinessPayment descrito anteriormente, que retornará toda la información del pago recién completado.
Otra opción disponible al configurar un webhook en Configuraciones > Para Desarrolladores > Webhooks es la de, opcionalmente, agregar una llave de autenticación (token) el cual permitirá el envío de webhooks de manera mas segura, dicha llave será enviada junto con la petición del webhook en el header de la request en el campo Authorization, este campo es opcional, la gran ventaja de utilizar esta característica es poder disfutar de una mayor seguridad ya que al enviar el webhook, nosotros enviaremos este token en la solicitud el cual podrás verificarlo contra tu sistema.
si optas por utilizar esta funcionalidad, el header de la petición se enviará de esta manera:
{
"header": {
"authorization": "Bearer eydjhsoqp5654a...",
}
}
Eventos
Evento | Descripción | Parámetros a recibir |
---|---|---|
business-payment-completed |
Pago completado | event_name: string Nombre del evento. resource_id: uuid Identificador único del pago. upstream_id: string Identificador de pago del comercio. |
business-payment-expired |
Pago expirado | event_name: string Nombre del evento. resource_id: uuid Identificador único del pago. upstream_id: string Identificador de pago del comercio. |
business-payment-failed |
Pago fallido | event_name: string Nombre del evento. resource_id: uuid Identificador único del pago. upstream_id: string Identificador de pago del comercio. |
business-payment-reversed |
Pago reversado | event_name: string Nombre del evento. resource_id: uuid Identificador único del pago. upstream_id: string Identificador de pago del comercio. |
compensation-started |
Compensación iniciada | event_name:string Nombre del evento. event_resource_id: uuid Identificador de la compensación. |
business-refund-completed |
Reembolso completado | event_name: string Nombre del evento. event_resource_id: uuid Identificador de la devolución. upstream_id: string Identificador de pago del comercio. payment_id: string Identificador único del pago devuelto. |
business-refund-failed |
Reembolso fallido | event_name: string Nombre del evento. event_resource_id: uuid Identificador de la devolución. upstream_id: string Identificador de pago del comercio. payment_id: string Identificador único del pago asociado. |
business-enrollment-created |
Enrolamiento de cliente creado | event_name: string Nombre del evento. resource_id: uuid Identificador del enrolamiento userInformation: object Objeto con la información del usuario. userInformation.name: string Nombre del usuario enrolado. userInformation.lastName: string Apellido del usuario enrolado. userInformation.documentNumber: string Rut del usuario enrolado. userInformation.email: string Correo del usuario enrolado. |
business-enrollment-deleted |
Enrolamiento de cliente desactivado | event_name: string Nombre del evento. resource_id: uuid Identificador del enrolamiento. |
*En el caso de que exista algún error, el webhook hará 2 intentos de reenvío más.