Integración
Las siguientes apis te permitirán interactuar con tus puntos de venta y solicitar operaciones de pago.
Tipos de Punto de Venta
- Dispositivos Físicos (POS)
- QR (Estáticos)
Dispositivos Físicos
El DEVICE del POS se puede obtener en la pantalla de Configuración => Información del Sistema => Referencia o tomando el Serial Number del dispositivo ( Etiqueta en la parte posterior ) y agregando el identificador de la marca separado por dos puntos.
Marcas:
- Ingenico: ING. Ej. "ING:123AAA1235566"
- Urovo: URO. Ej. "URO:123AAA1235566"
- Verifone
- NexGo
- Newland
Tipos de Operaciones Permitidas
- Pago en POS con Tarjeta, QR y cualquier otro medio de pago aceptado
- QR Estático con Orden
curl --location --globoff 'https://api.mobbex.com/p/pos/:uid/operation/{uid}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"total":"Number","currency":"string","description":"string","reference":"string","test":"Boolean","webhook":"string","intent":"string","installments":"Array","sources":"Array","timeout":"Number"}'Ejemplos del nodo installments:
Existen 3 formas de Limitar Planes:
- Ocultar determinados planes de todo el conjunto de planes existentes:
Estos planes se pueden limitar por referencia o por ID de plan
{
"installments": ["-ahora_12", "-ahora_18"]
}- Limitar los Planes a las elegidos en el Array:
Estos planes se pueden limitar por referencia o por ID de plan
{
"installments": ["1", "3", "ahora_12"]
}- Mostrar planes especiales basado en Reglas Avanzadas
Cancelar una operación en Progreso
Si una operación está en progreso en el POS se puede cancelar la misma utilizando la API. Sólo se puede cancelar una operación a la vez.
var myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"id": "String"
});
var requestOptions = {
method: 'GET',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.cakes.com", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));Webhooks
{
"type": "pos",
"data": {
"result": true,
"view": {
"type": "card"
},
"payment": {
"created": "2024-04-16T23:04:40.523Z",
"currency": {
"code": "ARS",
"locale": "es-AR",
"symbol": "$",
"text": "Peso Argentino"
},
"description": "Orden 11111111111",
"id": "3Z6D9YF71L0LGGRR8DRT3W",
"operation": {
"type": "payment.v2"
},
"reference": "1111111111",
"requestedCurrency": {
"code": "ARS",
"locale": "es-AR",
"symbol": "$",
"text": "Peso Argentino"
},
"requestedTotal": 145170,
"riskAnalysis": {
"band": "N/A",
"level": "N/A"
},
"source": {
"cardholder": {
"identification": "12123123",
"name": "Bruce Wayne"
},
"expiration": {
"month": "06",
"year": "24"
},
"installment": {
"amount": 145170,
"count": 1,
"description": "1 Cuota",
"reference": "1",
"tags": [],
"uid": "NzqWp58GA"
},
"name": "Visa Banco Santander",
"number": "46600000****4601",
"reference": "visa.santanderrio",
"transaction": {
"authorizationCode": "004288",
"batchNo": "",
"resultCode": "0",
"retrievalReferenceNo": "410723133668",
"ticketNo": "",
"transactionId": "3Z6D9YF71L0LGGRR8DRT3W"
},
"type": "card",
"variant": "credit"
},
"status": {
"code": "200",
"data": {},
"message": "Transacción Aprobada",
"resultCode": "0",
"text": "Aprobado",
"view": "default"
},
"total": 145170,
"updated": "2024-04-16T23:04:42.146Z"
},
"entity": {
"name": "Wayne Inc",
"uid": "iambatman"
},
"customer": {
"uid": "12123123",
"name": "Juan Perez Wayne",
"phone": "12123123",
"identification": "110303456",
"email": "[email protected]"
},
"user": {
"name": "Juan Perez Wayne",
"email": "[email protected]"
},
"source": {
"name": "Visa Banco Santander",
"reference": "visa.santanderrio",
"type": "card"
},
"pos": {
"name": "POS Nombre",
"description": "-",
"mode": "normal",
"reference": "POS:MY_REF",
"terminal": {
"uid": "GDQ3V8L4EE6AAE5L9NWCK5",
"reference": "ING:123AAA1235566",
"serialNumber": "123AAA1235566"
}
}
}
}Modo de Pruebas
Para probar en el POS cree una operación con la variable "test" en true. Para poder simular los diferentes estados debe utilizar el "total" de la operación, por ejemplo si desea que la transacción se apruebe el total debe ser 200. Vea la documentación de "Códigos de Estado" para mayor detalle y posibilidades de prueba.
Luego de crear la transacción con las condiciones indicadas proceda a utilizar cualquier tarjeta real, la operación no será cobrada sino que será simulada de acuerdo a lo indicado.
Split
Este servicio soporta Split de pagos cuando la orden es creada via API tanto en POS como en QR. Recomendamos la lectura de la siguiente sección para conocer el funcionamiento del servicio de Split.
Ir a Implementación SplitSplit
Modos del Punto de Venta Físico
Actualmente se soportan 2 modos:
- Modo NORMAL: en este modo quien opera el POS puede ingresar el monto de la operación con el teclado en pantalla.
- Modo ESCLAVO: en este modo el POS se transforma en un dispositivo que debe ser controlado 100% desde la API sin que el usuario pueda intervenir.
En todos los modos soportados la API aquí documentada puede ser utilizada permitiendo integrar el POS al 100% a su sistema de caja.