1. App-to-app
Kushki Docs
Español
  • Español
  • English
  • Inicio
  • Inicio rápido
    • Últimas novedades
    • Preguntas frecuentes
    • Paso a producción
    • Política de cambios importantes del API
    • Datos de prueba
    • Códigos de error
  • Glosario de pagos
    • Glosario de pagos
  • Pagos únicos con tarjeta (Online)
    • Network Tokens
    • Marcas de tarjeta soportadas
    • Funcionalidades por modelo de negocio
    • Guía de integración Comisiones a terceros
    • ¿Cómo funcionan las Comisiones a terceros?
    • Pagos en un paso
      • Acepta un pago con tarjeta
      • Cargo directo (sin token)
      • ¿Cómo funcionan los pagos con tarjeta?
      • Acepta pagos únicos con OTP
      • Códigos de error autenticación OTP
      • Códigos de error pagos únicos con tarjeta
    • Pagos en dos pasos
      • Recibe pagos con autorización y captura
      • ¿Cómo funcionan los pagos únicos con autorización y captura?
    • Devoluciones
      • Devoluciones, anulaciones y reembolsos
    • Autenticación 3DS
      • Integración 3DS API + librería kushki.js
      • Introducción a 3DS
      • Integración 100% API de 3DS
      • Integración 3DS con librería kushki.js
      • Códigos de error autenticación 3DS
    • Pagos con Apple Pay
      • Configuración de Apple Pay
      • Pruebas en Sandbox Apple Pay
  • Pagos recurrentes con tarjeta (Online)
    • Autentica tus suscripciones con 3DS
    • Apple Pay en Suscripciones
    • Suscripciones externas a Kushki
    • Acepta pagos one click con 3DS
    • Funcionalidades por modelo de negocio
    • Códigos de error en cargos recurrentes
    • Pagos calendarizados
      • ¿Cómo funcionan los cargos recurrentes con tarjeta?
      • Maneja tus cargos calendarizados
      • Crea un cargo recurrente
    • Pagos OneClick
      • Genera pagos one click
      • Recibe pagos OneClick con autorización y captura
      • ¿Cómo funcionan los pagos OneClick con autorización y captura?
  • Pagos con tarjeta presente
    • Acepta pagos con tarjeta presente
    • Datos de prueba
    • Webhooks para tarjeta presente
    • Cloud Terminal API
      • Acepta pagos
      • Anula una solicitud de pago
      • Consulta el estado de una petición de cobro
      • ¿Cómo imprimir un ticket personalizado?
    • App-to-app
      • Acepta pagos
    • Transacciones
      • Anula un pago
      • Transacciones
    • Terminal SDK
      • Acepta pagos
    • Kushki One
      • Autenticación y Cifrado de Requests
      • Realiza cobros con Kushki One
      • Formato de montos en Kushki ONE
      • Impresión en terminal SmartPOS
      • Catálogo Unificado de Errores — Kushki ONE Connect
      • Servicios asíncronos y webhooks
    • Raw card-present API
      • Acepta pagos
      • Script de ejemplo para cifrar información
      • Intercambio de claves criptográficas
      • Preguntas frecuentes
      • Códigos de error para transacciones con tarjeta presente
    • Kushki One App de Pagos
      • Devoluciones y PreAuth & Capture
      • Procesa un cobro
      • Pago Dividido en la terminal
      • Consulta tus transacciones
      • Configuración del terminal
  • Pagos con transferencias
    • Bancos y detalles de operación para pagos con transferencia bancaria
    • Recibe transferencias bancarias
    • Consulta el estado de una transacción
  • Dispersión de dinero
    • Transferencia bancaria
      • Dispersa a cuentas bancarias
      • Códigos de error para dispersiones por transferencia
  • Plugins
    • Shopify
      • Operación del Plugin
    • Vtex
      • Guía de integración VTEX
  • Links de pago
    • Smartlinks
  • Formularios y botones de pago
    • Kajita
      • Kajitas de pago
      • ¿Cómo funciona?
    • Botón de pago
      • ¿Cómo funciona el botón de pago?
      • Genera un botón de pago
  • Administración de sucursales
    • ¿Cómo realizar el onboarding de subcomercios vía API?
  • Notificaciones
    • Buenas prácticas
    • Consulta tus webhooks
    • Webhooks para pagos únicos
      • Webhook para pagos únicos con tarjeta
      • Webhook para pagos únicos con transferencia bancaria
      • Webhook para pagos únicos con efectivo
    • Webhooks para dispersiones
      • Webhook para dispersión de dinero con transferencia
    • Webhooks para botón de pagos
      • Webhooks con Botón de pago
    • Webhooks para smartlinks
      • Webhooks con Smartlinks
    • Webhooks para pagos recurrentes
      • Webhook para pagos recurrentes con tarjeta
    • Webhooks para devoluciones
      • Webhook para devoluciones
      • Webhook para contracargos
HomeMexico 🇲🇽
Ecuador 🇪🇨Chile 🇨🇱Colombia 🇨🇴Peru 🇵🇪
HomeMexico 🇲🇽
Ecuador 🇪🇨Chile 🇨🇱Colombia 🇨🇴Peru 🇵🇪
Status
Soporte / Support
Español
  • Español
  • English
  1. App-to-app

Acepta pagos

Android
iOS
Acepta pagos con una terminal desde tu punto de venta móvil a través de nuestra aplicación POS. Puedes integrar tu aplicación en Android mediante Intents y Links.

Intents#

Ejecuta una acción en nuestra aplicación POS a través de un Intent en Android desde tu aplicación. Instala el SDK y envía los parámetros requeridos al momento de ejecutar una acción.

Agrega el SDK a tu proyecto#

Agrega el SDK en el archivo build.gradle de tu proyecto.
Agrega las siguientes dependencias.

Construye el Intent#

Crea una instancia de la clase BPIntentBuilder y establece una acción.
Debes configurar la instancia con los parámetros requeridos y opcionales de acuerdo a la solicitud.

Modelo de datos de la solicitud#

Estos son todos los parámetros que puedes configurar al momento de realizar una solicitud.
PropiedadTipoRequeridoDescripción
transactionStringSíTipo de transacción: venta: operación de venta. devolucion: operación de anulación.
userTokenStringSíToken de usuario.
identifierStringSíEnvía un identificador único por transacción generado de tu lado. Máximo 256 caracteres.
amountNumberSíMonto de la transacción (sin propina incluida). Dos decimales.
urlSchemeStringSíAplicación, webhook o url que será llamada al final de cualquier transacción. Máximo 50 caracteres.
tipNumberNoMonto de la propina. Dos decimales.
msiIntegerNoDifiere un pago en cuotas. Establece el número de cuotas a diferir el pago:
  • 0 : Pago único.
  • 3: 3 cuotas.
  • 6: 6 cuotas.
  • 9: 9 cuotas.
  • 12: 12 cuotas.
referenceStringNoReferencia de texto para identificar la transacción. Máximo 256 caracteres.
emailStringNoCorreo electrónico del cliente. Máximo 150 caracteres.
phoneStringNoNúmero de teléfono del cliente. Máximo 14 caracteres.
showPhotoButtonBooleanNoTe permite adjuntar una foto durante la transacción. Valor por defecto: falso.
mandatoryPhotoBooleanNoEstablece como obligatorio adjuntar una foto durante la transacción. Valor por defecto: falso.
deviceTokenStringNoIdentificador del dispositivo.
3pIDStringNoIdentificador externo.
hidePrinterBooleanNoIndica si la opción de impresora se mostrará después de una transacción exitosa. Valor por defecto: falso.
skipMailPrintBooleanNoOmite la impresión del ticket y en su lugar envía el ticket digital a través del correo o número de teléfono establecido.
xpLandscapeBooleanNoEspecifica si la aplicación POS se iniciará en modo horizontal.
deviceNameStringNoNombre del dispositivo.
setTimerFinishTRXIntegerNoConfigura un temporizador (en segundos) para continuar con el proceso de pago en caso de que no haya interacción por parte del usuario en la pantalla de confirmación de la transacción.
autoPaymentEnabledBooleano (true o false)NoAl enviar este parámetro como true, se activará el proceso de cobro automáticamente, sin necesidad de esperar a que se confirme con el botón de COBRAR

Operaciones#

Descubre todas las operaciones disponibles a través de integraciones por App to app.

Venta#

Realiza una venta por un monto fijo (incluyendo impuestos) en tu comercio a través de una terminal. La terminal te permite leer la tarjeta de tu cliente y realizar operaciones implicadas en el proceso DUKPT. La responsabilidad de tu sistema punto de venta es obtener los datos leidos de la terminal y armar el mensaje con la información requerida para enviar una solicitud. Envía la información a Kushki para su procesamiento.
Inicia la aplicación POS a través de la función builder enviando un Intent con todos los parámetros requeridos.
Si la información enviada es correcta, se abrirá la aplicación POS en la pantalla de pago con la configuración establecida para la transacción. Sigue los pasos en pantalla para finalizar el proceso de cobro con la terminal.
Revisa la documentación para realizar una anulación.

Propina#

Para utilizar propinas a través de Intents, es necesario activar la opción en el menú de configuración. Sigue los pasos a continuación para habilitar propinas.
Da clic en el icono superior izquierdo y selecciona la opción de Ajustes.
Ajustes pos app
Activa la opción Propina.
Habilita propina aplicación POS
Si una transacción es configurada con propina mayor a 0, se mostrará el monto de la propina en una nueva etiqueta debajo del monto de la transacción.
Pantalla de pago aplicación POS
Si no se envía ningún monto de propina en la solicitud o si es igual a 0 y la opción de propina está activada, se mostrará el cuadro de diálogo de selección de propina.
Diálogo de propina aplicación POS

Respuesta#

La respuesta será recibida como un Intent por el método onActivityResult de la actividad que realiza la llamada.
Dependiendo del resultado de la operación, podrás recibir información adicional a través de algunas de las siguientes propiedades.
Recuerda que no todas las propiedades estarán disponibles al momento de la respuesta. Dependerá del resultado de la operación.
PropiedadTipoDescripción
resultStringResultado de la operación:
  • aprobada: transacción aprobada con éxito.
  • rechazada: operación declinada.
  • error: ocurrió un error con la operación.
statusinfoStringEn caso de error, se regresará información adicional.
identifierStringIdentificador único por transacción enviado en la venta. Máximo 256 caracteres.
amountNumberMonto de la transacción (sin propina incluida). Dos decimales.
authorizationStringNúmero de autorización.
transactionIdStringId de la transacción.
tipNumberMonto de la propina. Dos decimales.
msiIntegerSi es un pago diferido, se regresará el número de cuotas.
  • 0 : Pago único.
  • 3: 3 cuotas.
  • 6: 6 cuotas.
  • 9: 9 cuotas.
  • 12: 12 cuotas.
referenceStringReferencia de texto para identificar la transacción. Máximo 256 caracteres.
emailStringCorreo electrónico del cliente. Máximo 150 caracteres.
phoneStringNúmero de teléfono del cliente. Máximo 14 caracteres.
creditcardStringÚltimos 4 dígitos de la tarjeta.
cardtypeStringTipo de tarjeta.
arqcStringId único por transacción en tarjetas con chip (Authorization Request Cryptogram).
aidStringIdentificador de aplicación del chip de la tarjeta.
applabelStringEtiqueta de aplicación del chip de la tarjeta.
urlStringId para voucher digital.
bankStringEmisor de la tarjeta.
accountTypeStringTipo de cuenta:
  • credit: tarjeta de crédito.
  • debit: tarjeta de débito.
nameStringNombre del tarjetahabiente.
bp_versionStringVersión de aplicación POS.
Simula diferentes escenarios con los datos de prueba.

Links#

Ejecuta una acción en nuestra aplicación POS utilizando esquemas de URL personalizados en Android desde tu aplicación nativa o web. Configura la url con todos los parámetros requeridos para abrir la aplicación POS y realizar la operación. La aplicación POS se abrirá cuando se de clic en un enlace con el esquema de url personalizado Billpocket://.
Es necesario que tengas instalada y configurada nuestra aplicación POS en el mismo dispositivo que la aplicación punto de venta.

Modelo de datos de la solicitud#

Estos son todos los parámetros que puedes configurar al momento de realizar una solicitud.
PropiedadTipoRequeridoDescripción
transactionStringSíTipo de transacción: venta: operación de venta. devolucion: operación de anulación.
userTokenStringSíToken de usuario.
identifierStringSíEnvía un identificador único por transacción generado de tu lado. Máximo 256 caracteres.
amountNumberSíMonto de la transacción (sin propina incluida). Dos decimales.
urlSchemeStringSíAplicación, webhook o url que será llamada al final de cualquier transacción. Máximo 50 caracteres.
tipNumberNoMonto de la propina. Dos decimales.
msiIntegerNoDifiere un pago en cuotas. Establece el número de cuotas a diferir el pago: 0 : Pago único. 3: 3 cuotas. 6: 6 cuotas. 9: 9 cuotas. 12: 12 cuotas.
referenceStringNoReferencia de texto para identificar la transacción. Máximo 256 caracteres.
emailStringNoCorreo electrónico del cliente. Máximo 150 caracteres.
phoneStringNoNúmero de teléfono del cliente. Máximo 14 caracteres.
showPhotoButtonBooleanNoTe permite adjuntar una foto durante la transacción. Valor por defecto: falso.
mandatoryPhotoBooleanNoEstablece como obligatorio adjuntar una foto durante la transacción. Valor por defecto: falso.
deviceTokenStringNoIdentificador del dispositivo.
3pIDStringNoIdentificador externo.
hidePrinterBooleanNoIndica si la opción de impresora se mostrará después de una transacción exitosa. Valor por defecto: falso.
skipMailPrintBooleanNoOmite la impresión del ticket y en su lugar envía el ticket digital a través del correo o número de teléfono establecido.
xpLandscapeBooleanNoEspecifica si la aplicación POS se iniciará en modo horizontal.
deviceNameStringNoNombre del dispositivo.
enableDialogTipBooleanNoMuestra el diálogo para seleccionar propina cuando se establece en verdadero y se envía la propina en 0 o se omite en la solicitud.
autoPaymentEnabledEntero (1 para sí o 0 para no)NoAl enviar este parámetro como 1, se activará el proceso de cobro automáticamente, sin necesidad de esperar a que se confirme con el botón de COBRAR

Operaciones#

Descubre todas las operaciones disponibles a través de integraciones por App to app.

Venta#

Realiza una venta por un monto fijo (incluyendo impuestos) en tu comercio a través de una terminal. La terminal te permite leer la tarjeta de tu cliente y realizar operaciones implicadas en el proceso DUKPT. La responsabilidad de tu sistema punto de venta es obtener los datos leidos de la terminal y armar el mensaje con la información requerida para enviar una solicitud. Envía la información a Kushki para su procesamiento.
A continuación se muestra un ejemplo de cómo llamar la aplicación POS.
Si la información enviada es correcta, se abrirá la aplicación POS en la pantalla de pago con la configuración establecida para la transacción. Sigue los pasos en pantalla para finalizar el proceso de cobro con la terminal.
Revisa la documentación para realizar una anulación.

Chrome Intents#

También puedes crear un Intent desde una aplicación que se ejecuta en Chrome para realizar una operación con la aplicación POS.
Nota: Las integraciones a través de Chrome Intents no devuelven una respuesta a través de un callback. En su lugar, implementa un webhook para recibir la respuesta de la operación.
Revisa la documentación sobre Intents de Android con Chrome.

Respuesta#

Recibe la respuesta de una solicitud a través de un callback URL. La respuesta se devuelve a un esquema de url personalizado que definas. Debes registrar el esquema de url personalizado dentro de tu aplicación para que pueda manejar las solicitudes entrantes. Revisa la documentación sobre cómo registrar un esquema de url personalizado en Android.
Ejemplo de respuesta a un esquema de url personalizado:
myApp://identifier=bpTRX&amount=10.00&authorization=BP6602&result=aprobada&reference=Venta%2520-%2520B99773E6BA6&creditcard=3292&cardtype=MASTERCARD&aid=A0000000041010&tip=1.01&url=68a30855f20923fc0d20eeaeee11061a62ab0eec&arqc=3C2A4D155F23AA81&bank=Bancomer%2520%252F%2520Banamex&name=%2520PERFIL%2520EJECUTIVO%252FPRG%2520%2520%2520%2520%2520&bp_version=4.3.0&transactionid=111029&accountType=DEBIT&applabel=Debit%2520Mastercard
Dependiendo del resultado de la operación, podrás recibir información adicional a través de algunas de las siguientes propiedades.
Recuerda que no todas las propiedades estarán disponibles al momento de la respuesta. Dependerá del resultado de la operación.
PropiedadTipoDescripción
resultStringResultado de la operación:
  • aprobada: transacción aprobada con éxito.
  • rechazada: operación declinada.
  • error: ocurrió un error con la operación.
statusinfoStringEn caso de error, se regresará información adicional.
identifierStringIdentificador único por transacción enviado en la venta. Máximo 256 caracteres.
amountNumberMonto de la transacción (sin propina incluida). Dos decimales.
authorizationStringNúmero de autorización.
transactionIdStringId de la transacción.
tipNumberMonto de la propina. Dos decimales.
msiIntegerSi es un pago diferido, se regresará el número de cuotas.
  • 0 : Pago único.
  • 3: 3 cuotas.
  • 6: 6 cuotas.
  • 9: 9 cuotas.
  • 12: 12 cuotas.
referenceStringReferencia de texto para identificar la transacción. Máximo 256 caracteres.
emailStringCorreo electrónico del cliente. Máximo 150 caracteres.
phoneStringNúmero de teléfono del cliente. Máximo 14 caracteres.
creditcardStringÚltimos 4 dígitos de la tarjeta.
cardtypeStringTipo de tarjeta.
arqcStringId único por transacción en tarjetas con chip (Authorization Request Cryptogram).
aidStringIdentificador de aplicación del chip de la tarjeta.
applabelStringEtiqueta de aplicación del chip de la tarjeta.
urlStringId para voucher digital.
bankStringEmisor de la tarjeta.
accountTypeStringTipo de cuenta:
  • credit: tarjeta de crédito.
  • debit: tarjeta de débito.
nameStringNombre del tarjetahabiente.
bp_versionStringVersión de aplicación POS.
Simula diferentes escenarios con los datos de prueba.
Revisa la referencia Android para Intents o Links para información más detallada.

Datos de prueba
Realiza los ajustes necesarios en tu sistema con los datos de prueba.
Transacciones
Obtén la lista de transacciones con información relevante para tus operaciones.
Modificado en 2026-10-21 19:52:29
Anterior
App-to-app
Siguiente
Transacciones
Built with