MACH para comercios API (1.1.0)

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

Modo de pruebas (Sandbox) y modo productivo

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

Autenticación

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.

BusinessPayments

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

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 una lista de BusinessPayments

Retorna un diccionario con propiedad payments, una lista que tiene tamaño máximo limit, listados tras el cursor starting_after

Authorizations:
BearerAuth
path Parameters
created_at_gte
string
Example: 2021-11-17T03:00:00.000Z

Filtro basado en el campo created_at del objeto. Retorna objetos que fueron creados después o el mismo día declarado en este campo (ISO string)

created_at_lt
string
Example: 2021-11-17T03:00:00.000Z

Filtro basado en el campo created_at del objeto. Retorna objetos que fueron creados antes del día en este campo (ISO string)

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 before = foo, entonces la próxima página a solicitar debe incluir starting_after = foo.

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 after = foo, entonces la próxima página a solicitar debe incluir ending_before = foo.

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 upstream_id del objeto. Retorna los objectos que posean dicho identificador definido por el comercio.

Responses

Response samples

Content type
application/json
{
  • "payments": [
    ],
  • "cursor": {
    }
}

Crear un BusinessPayment

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.

Authorizations:
BearerAuth
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
Example
{
  • "payment": {
    }
}

Response samples

Content type
application/json
Example
{}

Obtener un BusinessPayment

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.

Authorizations:
BearerAuth
path Parameters
token
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único del objeto BusinessPayment. Obtenido a partir de la llamada de creación de un nuevo pago.

Responses

Response samples

Content type
application/json
Example
{
  • "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": {
    },
  • "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": {
    },
}

Obtener el código QR de un BusinessPayment

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.

Authorizations:
BearerAuth
path Parameters
token
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único del objeto BusinessPayment. Obtenido a partir de la llamada de creación de un nuevo pago.

query Parameters
color
string
Enum: "MACH" "BLACK" "BCI"

Identificador único del color con que se quiere pintar el QR, entre opciones "MACH", "BLACK", "BCI"

Responses

Response samples

Content type
application/json
{
  • "image_base_64": "data:image/png;base64,iVBORw0KGgoA..."
}

Reversar un BusinessPayment

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.

Authorizations:
BearerAuth
path Parameters
token
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único del objeto BusinessPayment. Obtenido a partir de la llamada de creación de un nuevo pago.

Responses

Response samples

Content type
application/json
{
  • "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": {
    },
  • "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": {
    },
}

Devolver un BusinessPayment

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.

Authorizations:
BearerAuth
path Parameters
token
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único del objeto BusinessPayment. Obtenido a partir de la llamada de creación de un nuevo pago.

Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "amount": 3990,
  • "comment": "Devolución por falta de stock"
}

Response samples

Content type
application/json
{
  • "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"
}

Cancelar un BusinessPayment

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.

Authorizations:
BearerAuth
path Parameters
token
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único del objeto BusinessPayment. Obtenido a partir de la llamada de creación de un nuevo pago.

Responses

Response samples

Content type
application/json
{
  • "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": {
    },
  • "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": {
    },
}

Confirmar un BusinessPayment

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.

Authorizations:
BearerAuth
path Parameters
token
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único del objeto BusinessPayment. Obtenido a partir de la llamada de creación de un nuevo pago.

Responses

Response samples

Content type
application/json
Example
{
  • "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": {
    },
  • "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": {
    },
}

Creación de un BusinessPayment con enrollments

Crea un objeto de tipo BusinessPayment con estado COMPLETED a partir de un businessEnrollmentId.

path Parameters
business_enrollment_id
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único del objeto BusinessEnrollment. Obtenido a partir de la llamada de creación de un enrolamiento.

Request Body schema: application/json
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 "" u omitir

Responses

Request samples

Content type
application/json
{
  • "amount": 3990,
  • "message": "DJI Mavic Pro 7",
  • "title": "DJI Chile",
  • "terminal_id": "a7f0b88a-0f75-11ee-be56-0242ac120002"
}

Response samples

Content type
application/json
{
  • "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": {
    },
  • "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": {
    },
}

Compensations

Información relacionada a las compensaciones realizadas a los comercios asociados a MACH.

Obtiene la información del documento de compensación

Endpoint para obtener la información de la compensación con id determinado

Authorizations:
BearerAuth
path Parameters
compensation_id
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único de la compensación.

Responses

Response samples

Content type
application/json
{}

Obtiene una compensación por su fecha de término

Endpoint para obtener la información de una compensación con una fecha de término específica

Authorizations:
BearerAuth
path Parameters
end_date
required
string
Example: 2020-09-18

Fecha de término de la compensación

Responses

Response samples

Content type
application/json
{}

BankAccounts

Información relacionada a las cuentas bancarias para recepción de compensaciones MACH.

Obtiene la lista del cuentas bancarias asociadas al comercio

Endpoint para obtener la información de las cuentas bancarias habilitadas para recibir compensaciones

Authorizations:
BearerAuth
path Parameters
holderName
required
string
Example: Servicios S.A.

Nombre asociado a la cuenta

Responses

Response samples

Content type
application/json
{
  • "bankAccounts": [
    ],
  • "cursor": {
    }
}

BusinessRefunds

Información relacionada a las devoluciones realizadas por los comercios asociados a MACH.

Proceso de devolución

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.

Obtiene un objeto BusinessRefund

Endpoint para obtener una devolución por su token o business_refund_id

Authorizations:
BearerAuth
path Parameters
business_refund_id
required
string

Identificador de la devolución pedida.

Responses

Response samples

Content type
application/json
{
  • "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"
}

Listar los BusinessRefunds

Endpoint para listar las devoluciones realizadas por el comercio

Authorizations:
BearerAuth
path Parameters
created_at_gte
string
Example: 2021-11-17T03:00:00.000Z

Filtro basado en el campo created_at del objeto. Retorna objetos que fueron creados después o el mismo día declarado en este campo (ISO string)

created_at_lt
string
Example: 2021-11-17T03:00:00.000Z

Filtro basado en el campo created_at del objeto. Retorna objetos que fueron creados antes del día en este campo (ISO string)

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 before = foo, entonces la próxima página a solicitar debe incluir starting_after = foo.

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 after = foo, entonces la próxima página a solicitar debe incluir ending_before = foo.

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 state del objeto. Retorna objectos que posean los estados especificados en este parámetro.

business_payment_id
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único del objeto BusinessPayment. Obtenido a partir de la llamada de creación de un nuevo pago.

Responses

Response samples

Content type
application/json
{
  • "refunds": [
    ],
  • "cursor": {
    }
}

Branches

Información relacionada a las sucursales de los comercios asociados a MACH.

Crea una nueva sucursal

Retorna un objeto con la propiedad branch, que es la sucursal creada

Authorizations:
BearerAuth
Request Body schema: application/json
name
required
string

Nombre de la sucursal

type
required
string

Tipo de la sucursal, puede ser PHYSICAL o DIGITAL

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

Responses

Request samples

Content type
application/json
{
  • "name": "MACH",
  • "type": "PHYSICAL",
  • "bank_account_id": "0dc7b11d-a7cf-4103-8d19-2d1087b9b364",
  • "address": {
    }
}

Response samples

Content type
application/json
{
  • "branch": {
    }
}

Obtiene la información de una sucursal

Endpoint para obtener la información de una sucursal específica

Authorizations:
BearerAuth
path Parameters
branchId
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único del objeto Branch.

Responses

Response samples

Content type
application/json
{
  • "branch": {
    }
}

Eliminar una sucursal

Retorna una confirmación de la eliminación de la sucursal

Authorizations:
BearerAuth
path Parameters
branchId
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b456

Identificador único del objeto Branch.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Reports

Información relacionada a los reportes de los comercios asociados a MACH.

Obtener reportes de un comercio

Retorna un listado con los reportes de un comercio según los filtros aplicados.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "reports": [
    ]
}

Terminals

Información relacionada a las cajas de los comercios asociados a MACH.

Crea una nueva caja

Retorna un objeto con la propiedad terminal, que es la caja creada

Authorizations:
BearerAuth
Request Body schema: application/json
name
string

Nombre de la caja a crear

branch_id
string

Identificador de la sucursal a la que pertenece la caja

Responses

Request samples

Content type
application/json
{
  • "name": "MACH DIGITAL",
  • "branch_id": "0dc7b11d-a7cf-4103-8d19-2d1087b9b364"
}

Response samples

Content type
application/json
{
  • "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"
}

Elimina una caja

Retorna la confirmación de la eliminación de una caja determinada

Authorizations:
BearerAuth
path Parameters
terminalId
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b455

Identificador de una caja

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Obtiene la información de una caja

Endpoint para obtener la información de una caja específica

Authorizations:
BearerAuth
path Parameters
terminalId
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b455

Identificador de una caja

Responses

Response samples

Content type
application/json
{
  • "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"
}

Obtiene la imagen QR de una caja

Endpoint para obtener la imagen QR de una caja específica

Authorizations:
BearerAuth
path Parameters
terminalId
required
string
Example: dd6af8f6-4ba0-47d9-8c38-a4313e08b455

Identificador de una caja

query Parameters
color
string
Enum: "MACH" "BLACK" "BCI"

Identificador único del color con que se quiere pintar el QR, entre opciones "MACH", "BLACK", "BCI"

Responses

Response samples

Content type
application/json
{
  • "image_base_64": "string"
}

BusinessEnrollments

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.

Obtener la imagen QR para crear un enrolamiento.

Obtiene la imagen QR del BusinessEnrollment del comercio.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "image_base_64": "data:image/png;base64,iVBORw0KGgoA..."
}

Webhooks

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.