API – Developers Docs API – Developers Docs
  • Addon Payments
  • Pagos integrados en TPV
  • InglésCambiar a Inglés
API – Developers Docs API – Developers Docs
API – Developers Docs
  • Addon Payments
  • Pagos integrados en TPV
  • InglésCambiar a Inglés
Otra documentación
  • Folder icon closed Folder open iconPagos integrados en TPV
    • Transacciones
      • Tokenización
    • Reportes
    • Dispositivo

Reportes

Las API de reportes son una colección de consultas administrativas que permiten que la aplicación de terceros realice operaciones como detalles de transacción, totales, cierre, copia de recibo, etc.

GET Details (detalles)

Esta solicitud recupera el reporte de transacciones financieras de la sesión activa en curso.

Se envía a: https:// 172.20.10.1:2011/v1/reporting/details

Petición

No se requiere payload adicional.

Respuesta

La carga útil de respuesta exitosa incluye la lista detallada de transacciones realizadas durante la sesión:

Los datos se resumen por tipo de transacción.

Estos son ejemplos de petición y respuesta de GET Detalles. Aquí tienes los ejemplos en algunos lenguajes de programación.

				
					var myHeaders = new Headers();
myHeaders.append("X-SOURCE", "APPNAME");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https:// 172.20.10.1:2011/v1/reporting/details", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
				
			
				
					var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https:// 172.20.10.1:2011/v1/reporting/details");
request.Headers.Add("X-SOURCE", "APPNAME");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
				
			
				
					curl --location 'https:// 172.20.10.1:2011/v1/reporting/details' \
--header 'X-SOURCE: APPNAME'
				
			
				
					import requests

url = "https:// 172.20.10.1:2011/v1/reporting/details"

payload={}
headers = {
  'X-SOURCE': 'APPNAME'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
				
			
				
					var request = URLRequest(url: URL(string: "https:// 172.20.10.1:2011/v1/reporting/details")!,timeoutInterval: Double.infinity)
request.addValue("APPNAME", forHTTPHeaderField: "X-SOURCE")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()
				
			

Puedes ver más ejemplos de lenguajes de programación en nuestra colección Postman.

Este es el JSON de la respuesta y sus encabezados.

				
					{
  "operation": "DETAILS",
  "result": {
    "VersionInfo": {
      "Release": "02.00",
      "Version": "02.00"
    },
    "Operation": {
      "Payload": {
        "Merchant": {
          "Id": "329811087",
          "Location": "BADALONA",
          "Name": "Comercia Global Payments"
        },
        "Report": {
          "BusinessUnit": {
            "Num": 1
          },
          "Currency": "978",
          "Date": "20200519",
          "FirstDate": "20200519",
          "FirstTransaction": "619145",
          "LastDate": "20200519",
          "LastTransaction": "619144",
          "Session": {
            "Date": "20200519",
            "Number": 14
          },
          "Time": "1943",
          "Transactions": [
            {
              "AID": "A0000000041010",
              "ARC": "00",
              "ATC": "00253",
              "PSN": "00",
              "Amount": "130",
              "Authorization": "006074",
              "CardBank": "Comercia Global Payments",
              "CardHolder": "",
              "CardIssuer": "Credito",
              "CardNumber": "************3059",
              "CardTechnology": 1,
              "CardType": "",
              "Currency": "EUR",
              "Date": "20200519",
              "Id": "619145",
              "Language": "es",
              "Location": "BADALONA",
              "MerchantId": "329811087",
              "MerchantName": "Comercia Global Payments",
              "Modifiers": [],
              "OriginalTransactionDate": "",
              "OriginalTransactionId": "",
              "PinIndicator": 0,
              "SignatureIndicator": 1,
              "Status": "0",
              "Templates": [],
              "TerminalId": "00000001",
              "Time": "1942",
              "Type": "Payment"
            },
            {
              "AID": "A0000000041010",
              "ARC": "00",
              "ATC": "00252",
              "PSN": "00",
              "Amount": "400",
              "Authorization": "006073",
              "CardBank": "Comercia Global Payments",
              "CardHolder": "",
              "CardIssuer": "Credito",
              "CardNumber": "************3059",
              "CardTechnology": 1,
              "CardType": "",
              "Currency": "EUR",
              "Date": "20200519",
              "Id": "619144",
              "Language": "es",
              "Location": "BADALONA",
              "MerchantId": "329811087",
              "MerchantName": "Comercia Global Payments",
              "Modifiers": [],
              "OriginalTransactionDate": "20200519",
              "OriginalTransactionId": "619142",
              "PinIndicator": 0,
              "SignatureIndicator": 1,
              "Status": "0",
              "Templates": [],
              "TerminalId": "00000001",
              "Time": "1941",
              "Type": "PreauthorizationConfirmation"
            }
          ],
          "TypeStatusReport": {
            "Amount": "530",
            "Quantity": 2,
            "Types": [
              {
                "Payment": {
                  "Indexes": [
                    0         
                  ],
                  "Quantity": 1,
                  "Amount": "130"
                }
              },
 	      {
                "PreauthorizationConfirmation": {
                  "Indexes": [
                    1
                  ],
                  "Quantity": 1,
                  "Amount": "400"
                }
              }
            ]
          }
        },
        "Session": {
          "Date": "20200519",
          "Number": 14
        }
      },
      "ResponseCode": "600"
    }
  }
}
				
			

Content-Type application/json

Date Tue, 19 May 2020 16:49:58 GMT

Access-Control-Allow-Credentials true

Access-Control-Allow-Origin *

Connection keep-alive

Content-Encoding gzip

Transfer-Encoding chunked

GET Totals (totales)

Recupera los totales del informe de transacciones financieras desde el último cierre del día, así como informes de transacciones categorizadas (como tipos de transacciones, categoría, multidivisa, etc.).

Se envía a: https:// 172.20.10.1:2011/v1/reporting/totals

Petición

No se requiere payload adicional.

Respuesta

La respuesta de carga útil exitosa incluye la lista detallada de:

  • Transacciones realizadas durante la sesión.
  • Datos resumidos por tipo de transacción.
  • Datos resumidos por categoría de transacción.

ENCABEZADOS

X-SOURCE

NOMBRE DE LA APLICACIÓN

ID de la aplicación de la persona que llama que identifica de forma exclusiva la aplicación que origina la solicitud de API.

Estos son ejemplos de petición y respuesta de GET Totales. Aquí tienes los ejemplos en algunos lenguajes de programación.

				
					var myHeaders = new Headers();
myHeaders.append("X-SOURCE", "APPNAME");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https:// 172.20.10.1:2011/v1/reporting/totals", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
				
			
				
					var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https:// 172.20.10.1:2011/v1/reporting/totals");
request.Headers.Add("X-SOURCE", "APPNAME");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
				
			
				
					curl --location 'https:// 172.20.10.1:2011/v1/reporting/totals' \
--header 'X-SOURCE: APPNAME'
				
			
				
					var request = URLRequest(url: URL(string: "https:// 172.20.10.1:2011/v1/reporting/totals")!,timeoutInterval: Double.infinity)
request.addValue("APPNAME", forHTTPHeaderField: "X-SOURCE")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()
				
			
				
					var request = URLRequest(url: URL(string: "https:// 172.20.10.1:2011/v1/reporting/totals")!,timeoutInterval: Double.infinity)
request.addValue("APPNAME", forHTTPHeaderField: "X-SOURCE")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()
				
			

Puedes ver más ejemplos de lenguajes de programación en nuestra colección Postman.

Este es el JSON de la respuesta y sus encabezados.

				
					{
  "operation": "TOTALS",
  "report": {
    "VersionInfo": {
      "Release": "02.00",
      "Version": "02.00"
    },
    "Operation": {
      "Payload": {
        "Merchant": {
          "Id": "329811087",
          "Location": "BADALONA",
          "Name": "Comercia Global Payments"
        },
        "Report": {
          "BusinessUnit": {
            "Num": 1
          },
          "Currency": "978",
          "Date": "20200521",
          "FirstDate": "20200522",
          "FirstTransaction": "432840",
          "LastDate": "20200522",
          "LastTransaction": "432853",
          "Session": {
            "Date": "20200521",
            "Number": 1
          },
          "Time": "0147",
          "Transactions": [
            {
              "AID": "",
              "ARC": "00",
              "ATC": "",
              "PSN": "",
              "Amount": "58",
              "Authorization": "006355",
              "CardBank": "Comercia Global Payments",
              "CardHolder": "",
              "CardIssuer": "",
              "CardNumber": "************3719",
              "CardTechnology": 2,
              "CardType": "",
              "Currency": "EUR",
              "Date": "20200522",
              "Id": "432840",
              "Language": "es",
              "Location": "BADALONA",
              "MerchantId": "329811087",
              "MerchantName": "Comercia Global Payments",
              "Modifiers": [],
              "OriginalTransactionDate": "",
              "OriginalTransactionId": "",
              "PinIndicator": 0,
              "SignatureIndicator": 0,
              "Status": "0",
              "Templates": [],
              "TerminalId": "00000001",
              "Time": "0021",
              "Type": "Payment"
            },
            {
              "AID": "A0000000041010",
              "ARC": "00",
              "ATC": "00291",
              "PSN": "00",
              "Amount": "100",
              "Authorization": "006356",
              "CardBank": "Comercia Global Payments",
              "CardHolder": "",
              "CardIssuer": "Credito",
              "CardNumber": "************3059",
              "CardTechnology": 1,
              "CardType": "",
              "Currency": "EUR",
              "Date": "20200522",
              "Id": "432853",
              "Language": "es",
              "Location": "BADALONA",
              "MerchantId": "329811087",
              "MerchantName": "Comercia Global Payments",
              "Modifiers": [],
              "OriginalTransactionDate": "",
              "OriginalTransactionId": "",
              "PinIndicator": 0,
              "SignatureIndicator": 1,
              "Status": "0",
              "Templates": [],
              "TerminalId": "00000001",
              "Time": "0047",
              "Type": "Payment"
            },
          ],
          "TypeStatusReport": {
            "Amount": "158",
            "Quantity": 2,
            "Types": [
              {
                "Payment": {
                  "Indexes": [
                    0,
                    1
                  ],
                  "Quantity": 2,
                  "Amount": "158"
                }
              }
            ]
          }
        },
        "Session": {
          "Date": "20200521",
          "Number": 1
        }
      },
      "ResponseCode": "600"
    }
  }
}
				
			

Content-Type application/json

Date Thu, 21 May 2020 22:53:32 GMT

Access-Control-Allow-Credentials true

Access-Control-Allow-Origin *

Connection keep-alive

Content-Encoding gzip

Transfer-Encoding chunked

GET Closure (cierre)

Realizar una operación financiera de conciliación en la sesión actualmente activa. Al completarse, la sesión actual se cierra y cualquier transacción adicional se asociará a una nueva sesión.

Se envía a: https:// 172.20.10.1:2011/v1/reporting/closure

Petición

No se requiere payload adicional.

Respuesta

La respuesta de carga útil exitosa incluye:

  • la lista detallada de transacciones realizadas durante la sesión cerrada.
  • los datos resumidos por tipo de transacción.
  • los datos resumidos por categoría de transacción.

ENCABEZADOS

X-SOURCE

NOMBRE DE LA APLICACIÓN

ID de la aplicación de la persona que llama que identifica de forma exclusiva la aplicación que origina la solicitud de API.

Estos son ejemplos de petición y respuesta de GET Cierre. Aquí tienes los ejemplos en algunos lenguajes de programación.

				
					var myHeaders = new Headers();
myHeaders.append("X-SOURCE", "APPNAME");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https:// 172.20.10.1:2011/v1/reporting/closure", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
				
			
				
					var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https:// 172.20.10.1:2011/v1/reporting/closure");
request.Headers.Add("X-SOURCE", "APPNAME");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
				
			
				
					curl --location 'https:// 172.20.10.1:2011/v1/reporting/closure' \
--header 'X-SOURCE: APPNAME'
				
			
				
					import requests

url = "https:// 172.20.10.1:2011/v1/reporting/closure"

payload={}
headers = {
  'X-SOURCE': 'APPNAME'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
				
			
				
					var request = URLRequest(url: URL(string: "https:// 172.20.10.1:2011/v1/reporting/closure")!,timeoutInterval: Double.infinity)
request.addValue("APPNAME", forHTTPHeaderField: "X-SOURCE")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()
				
			

Puedes ver más ejemplos de lenguajes de programación en nuestra colección Postman.

Este es el JSON de la respuesta y sus encabezados.

				
					{
  "operation": "CLOSURE",
  "report": {
    "VersionInfo": {
      "Release": "02.00",
      "Version": "02.00"
    },
    "Operation": {
      "Payload": {
        "Merchant": {
          "Id": "329811087",
          "Location": "BADALONA",
          "Name": "Comercia Global Payments"
        },
        "Report": {
          "BusinessUnit": {
            "Num": 1
          },
          "Currency": "978",
          "Date": "20200521",
          "FirstDate": "20200522",
          "FirstTransaction": "432840",
          "LastDate": "20200522",
          "LastTransaction": "432853",
          "Session": {
            "Date": "20200521",
            "Number": 1
          },
          "Time": "0148",
          "Transactions": [
            {
              "AID": "",
              "ARC": "00",
              "ATC": "",
              "PSN": "",
              "Amount": "58",
              "Authorization": "006355",
              "CardBank": "Comercia Global Payments",
              "CardHolder": "",
              "CardIssuer": "",
              "CardNumber": "************3719",
              "CardTechnology": 2,
              "CardType": "",
              "Currency": "EUR",
              "Date": "20200522",
              "Id": "432840",
              "Language": "es",
              "Location": "BADALONA",
              "MerchantId": "329811087",
              "MerchantName": "Comercia Global Payments",
              "Modifiers": [],
              "OriginalTransactionDate": "",
              "OriginalTransactionId": "",
              "PinIndicator": 0,
              "SignatureIndicator": 0,
              "Status": "0",
              "Templates": [],
              "TerminalId": "00000001",
              "Time": "0021",
              "Type": "Payment"
            },
            {
              "AID": "A0000000041010",
              "ARC": "00",
              "ATC": "00291",
              "PSN": "00",
              "Amount": "100",
              "Authorization": "006356",
              "CardBank": "Comercia Global Payments",
              "CardHolder": "",
              "CardIssuer": "Credito",
              "CardNumber": "************3059",
              "CardTechnology": 1,
              "CardType": "",
              "Currency": "EUR",
              "Date": "20200522",
              "Id": "432853",
              "Language": "es",
              "Location": "BADALONA",
              "MerchantId": "329811087",
              "MerchantName": "Comercia Global Payments",
              "Modifiers": [],
              "OriginalTransactionDate": "",
              "OriginalTransactionId": "",
              "PinIndicator": 0,
              "SignatureIndicator": 1,
              "Status": "0",
              "Templates": [],
              "TerminalId": "00000001",
              "Time": "0047",
              "Type": "Payment"
            },
          ],
          "TypeStatusReport": {
            "Amount": "158",
            "Quantity": 2,
            "Types": [
              {
                "Payment": {
                  "Indexes": [
                    0,
                    1
                  ],
                  "Quantity": 2,
                  "Amount": "158"
                }
              }
            ]
          }
        },
        "Session": {
          "Date": "200521",
          "Number": 1
        }
      },
      "ResponseCode": "500"
    }
  }
}
				
			

Content-Type application/json

Date Thu, 21 May 2020 22:54:35 GMT

Access-Control-Allow-Credentials true

Access-Control-Allow-Origin *

Connection keep-alive

Content-Encoding gzip

Transfer-Encoding chunked

GET OnlineTicketCopy (copia de ticket online)

Esta solicitud recupera información para una transacción determinada para volver a imprimir el recibo de la transacción.
Se envía a: https:// 172.20.10.1:2011/v1/reporting/ticket?transactionId=

Petición

String de dígitos decimales de transactionId.

Identifica el id de la transacción solicitada.

Respuesta

La respuesta de carga útil exitosa incluye la lista detallada de:

Información de la transacción (incluida la información del billete).

ENCABEZADOS

X-SOURCE 

NOMBRE DE LA APLICACIÓN

ID de la aplicación de la persona que llama que identifica de forma exclusiva la aplicación que origina la solicitud de API.

PARÁMETROS

transactionId

Identifica el id de la transacción solicitada.

Estos son ejemplos de petición y respuesta de GET Copia de ticket online. Aquí tienes los ejemplos en algunos lenguajes de programación.

				
					var myHeaders = new Headers();
myHeaders.append("X-SOURCE", "APPNAME");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https:// 172.20.10.1:2011/v1/reporting/ticket?transactionId=432840", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
				
			
				
					var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https:// 172.20.10.1:2011/v1/reporting/ticket?transactionId=432840");
request.Headers.Add("X-SOURCE", "APPNAME");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
				
			
				
					curl --location 'https:// 172.20.10.1:2011/v1/reporting/ticket?transactionId=432840' \
--header 'X-SOURCE: APPNAME'
				
			
				
					import requests

url = "https:// 172.20.10.1:2011/v1/reporting/ticket?transactionId=432840"

payload={}
headers = {
  'X-SOURCE': 'APPNAME'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
				
			
				
					var request = URLRequest(url: URL(string: "https:// 172.20.10.1:2011/v1/reporting/ticket?transactionId=432840")!,timeoutInterval: Double.infinity)
request.addValue("APPNAME", forHTTPHeaderField: "X-SOURCE")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()
				
			

Puedes ver más ejemplos de lenguajes de programación en nuestra colección Postman.

Este es el JSON de la respuesta y sus encabezados.

				
					{
  "operation": "TICKET_COPY",
  "report": {
    "VersionInfo": {
      "Release": "02.00",
      "Version": "02.00"
    },
    "Operation": {
      "Payload": {
        "Merchant": {
          "Id": "329811087",
          "Location": "BADALONA",
          "Name": "Comercia Global Payments"
        },
        "Session": {
          "Date": "20200521",
          "Number": 1
        },
        "Transaction": {
          "AID": "",
          "ARC": "00",
          "ATC": "",
          "PSN": "",
          "Amount": "58",
          "Authorization": "006355",
          "CardBank": "Comercia Global Payments",
          "CardHolder": "",
          "CardIssuer": "",
          "CardNumber": "************3719",
          "CardTechnology": 2,
          "CardType": "",
          "Currency": "EUR",
          "Date": "20200522",
          "Id": "432840",
          "Language": "es",
          "Location": "BADALONA",
          "MerchantId": "329811087",
          "MerchantName": "Comercia Global Payments",
          "Modifiers": [],
          "OriginalTransactionDate": "",
          "OriginalTransactionId": "",
          "PinIndicator": 0,
          "SignatureIndicator": 0,
          "Status": "0",
          "Templates": [],
          "TerminalId": "00000001",
          "Time": "0021",
          "Type": "Payment"
        }
      },
      "ResponseCode": "600"
    }
  }
}
				
			

Content-Type application/json

Date Thu, 21 May 2020 22:54:05 GMT

Access-Control-Allow-Credentials true

Access-Control-Allow-Origin *

Connection keep-alive

Content-Encoding gzip

Transfer-Encoding chunked

Comparte este documento

Reportes

Copiar el enlace

Clipboard Icon
Tabla de Contenidos

Productos

  • Addon Payments
  • Pagos integrados en TPV
  • Universal Pay
  • Addon 1 - XML API Integration

Ventas

Cuéntanos cómo es tu negocio para ofrecerte la mejor solución.

Contacta con un experto

Soporte técnico

¿Ya eres cliente y necesitas ayuda? Contacta con nosotros, estamos a tu disposición.

Ayuda

Socios

Trabajamos con los mejores partners de soluciones in-store y eCommerce. ¿Quieres unirte?

Únete a nosotros

© Comercia Global Payments

Política de privacidad
Ejercicio de Derechos
Información a Clientes
Canal de denuncia
Aviso Legal
Política de cookies
API - Developers Docs
Gestionar el consentimiento de las cookies
Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en una web o en varias web con fines de marketing similares.
  • Administrar opciones
  • Gestionar los servicios
  • Gestionar {vendor_count} proveedores
  • Leer más sobre estos propósitos
Ver preferencias
  • {title}
  • {title}
  • {title}

Consulta la documentación de las distintas secciones de integraciones:

Comienza a integrar

undraw_add_to_cart_re_wrdo 1 (1) (1)

Plugins para CMS

Complementa la integración

SDKs

Métodos de pago

Herramientas

Addon Payments

Consulta la documentación de Addon Payments. Aquí tienes las distintas secciones:

Integraciones

Consultas frecuentes

Portal Backoffice

Cyberpac

Consulta la documentación de Cyberpac. Aquí tienes las distintas secciones:

Canales

Módulos de integración

Integraciones a medida

Pagos integrados en TPV

Crea una solución que te ayudará a automatizar procesos. Incluso, podrás agregar procesos de pago en terminales físicos.

Pago integrado con TPV Android

Pago integrado con Smartphone TPV

Fichas Técnicas TPVs