Para cualquier consulta estamos a un clic

Hacer una pregunta

Transferencias P2P

Transacción P2P

La funcionalidad P2P le ayuda a proporcionar a los usuarios (clientes actuales o potenciales) la posibilidad de enviarse dinero entre ellos. También permite recibir transferencias en sus tarjetas, sin enviar sus datos a nadie, y ganar comisiones proporcionando el servicio a un amplio círculo de usuarios.

El servicio P2P es un servicio disponible para configuración e integración con sitios web de terceros, aplicaciones móviles, así como bancos de internet y móviles.

Los usuarios tienen acceso a una lista completa de operaciones, envío/recepción de transferencias, registro/autorización en el servicio, gestión de tarjetas guardadas.

Una característica importante del servicio P2P es la posibilidad de realizar transferencias por número de teléfono, incluso si el usuario aún no está registrado en el sistema.

Existen varios escenarios para la implementación de transacciones P2P:

Escenario de procesamiento de operación P2P con ingreso de datos de pago del lado de la pasarela de pago

sequenceDiagram participant C as Cliente participant OS as Tienda online participant PG as Pasarela de pago participant ACS as ACS autonumber C ->> OS: Formación del pedido OS ->> PG: Registro del pedido PG -->> OS: orderId, formUrl OS -->> C: Redirección al formulario de recolección de datos de tarjeta C ->> PG: Obtención del formulario de recolección de datos de tarjeta PG -->> C: Formulario de recolección de datos de tarjeta C ->> PG: Envío de datos en el formulario completado PG ->> PG: Verificación de participación de la tarjeta en 3-D Secure PG -->> C: Redirección del cliente a ACS C ->> ACS: Obtención del formulario de autorización ACS -->> C: Formularios de autorización C ->> ACS: Completar el formulario ACS -->> C: Redirección del cliente a la pasarela de pago C ->> PG: Finalización del pago seguro PG ->> PG: Procesamiento del pago PG -->> C: Redirección del cliente a la tienda online C ->> OS: Obtención de la página con el resultado OS ->> PG: Verificación del estado PG -->> OS: Estado del pedido OS -->> C: Mostrar resultado
  1. En el sitio del vendedor (por ejemplo, en una tienda online) el portador de la tarjeta solicita la ejecución de una transferencia de dinero P2P.
  2. El sistema de la tienda online registra el pedido en la Pasarela de pago a través de registerP2P.do. Los parámetros de registro utilizados incluyen el monto de la transferencia, moneda, número del pedido en el sistema del vendedor y URL de retorno para el cliente.
  3. La pasarela de pago en respuesta a la solicitud de registro devuelve un identificador único del pedido en el sistema de pago y URL para redirigir al cliente al formulario de recolección de datos de tarjeta.
  4. El sistema de la tienda online transfiere la dirección URL de redirección, recibida en el Paso 3, al navegador del cliente.
  5. El navegador del cliente abre la dirección URL.
  6. Por la URL especificada el navegador del cliente obtiene el formulario para la recolección de datos de tarjeta.
  7. El cliente completa el formulario, y los datos se envían al servidor de la pasarela de pago.
  8. El sistema verifica la pertenencia de la tarjeta a 3-D Secure (SecureCode).
  9. La pasarela envía el enlace de redirección a la página del servidor de control de acceso (ACS) del banco emisor en el navegador web del cliente (este paso es necesario para la implementación de 3DS).
  10. El navegador web del cliente solicita el formulario de autorización de usuario de ACS.
  11. ACS envía el formulario de autorización al navegador web del cliente.
  12. El cliente completa el formulario, y los datos se envían al servidor de la pasarela de pago.
  13. ACS procesa el formulario y, independientemente del resultado, envía la dirección URL de redirección de las páginas de la pasarela de pago al navegador web del cliente. Junto con esta URL se envían los parámetros encriptados del resultado de autorización.
  14. El navegador web del cliente solicita la página de la pasarela de pagos al transmitir parámetros cifrados del resultado de autorización.
  15. La pasarela de pagos transfiere el dinero.
  16. Cuando el dinero es transferido, la pasarela de pagos envía la URL de retorno al navegador web del cliente (la URL fue especificada durante el registro del pedido por la tienda en línea en el Paso 2).
  17. El navegador web del cliente solicita los resultados de la transferencia de dinero de la tienda en línea.
  18. El sistema de la tienda en línea solicita información sobre el estado del pedido de la pasarela de pagos – getP2PStatus.do.
  19. La pasarela de pagos devuelve el estado del pedido.
  20. El sistema de la tienda en línea muestra al cliente el resultado del pago.

Escenario de realización de operación P2P con entrada de datos de pago del lado de la tienda en línea

sequenceDiagram participant C as Cliente participant OS as Tienda en línea participant PG as Pasarela de pagos participant 3DSS as 3DS Server participant ACS as ACS autonumber C ->> OS: Formación del pedido OS ->> OS: Recopilación de datos de tarjeta OS ->> PG: Registro del pedido PG -->> OS: Respuesta al registro del pedido OS ->> PG: Solicitud de suma de comisión PG -->> OS: Obtención de suma de comisión OS ->> PG: Solicitud de transferencia de tarjeta a tarjeta PG -> 3DSS: Verificación de disponibilidad de 3DSv2 PG -->> OS: Respuesta a la solicitud de transferencia de tarjeta a tarjeta OS ->> 3DSS: Llamada a iframe oculto (threeDSMethodURLServer) opt [si threeDSMethodURL está en la respuesta] OS ->> ACS: Llamada a iframe oculto (threeDSMethodURL) end OS ->> PG: Segunda solicitud de transferencia de fondos PG ->> 3DSS: Solicitud de autenticación 3DSS ->> ACS: Solicitud de autenticación ACS -->> 3DSS: Respuesta a la solicitud de autenticación 3DSS -->> PG: Respuesta a la solicitud de autenticación PG -->> OS: Respuesta a la solicitud opt [Se requiere redirección a ACS] OS ->> ACS: CReq (ChallengeRequest) ACS -->> C: Formulario HTML para completar la autenticación C ->> ACS: Confirmación de autenticidad ACS ->> ACS: Procesamiento de datos ACS -> 3DSS: Intercambio de datos ACS -->> C: Resultado del procesamiento de datos y redirección del cliente a la página de la tienda OS ->> PG: finish3dsVer2Payment.do PG -->> OS: Respuesta a la solicitud end OS ->> PG: Solicitud de estado del pedido PG -->> OS: Respuesta a la solicitud de estado del pedido OS -->> C: Visualización del resultado
  1. El portador de la tarjeta (cliente) interactúa con la tienda en línea para crear un pedido.
  2. El sistema de la tienda en línea recopila los datos de la tarjeta en su lado.
  3. El sistema de la tienda en línea registra el pedido en la Pasarela de pagos a través de registerP2P.do. Los parámetros de registro utilizados incluyen la suma de transferencia, moneda, número de pedido en el sistema del vendedor y URL de retorno para el cliente.
  4. La pasarela de pagos en respuesta a la solicitud de registro devuelve el identificador único del pedido en el sistema de pagos.
  5. Opcional. Si la tienda en línea trabaja con comisión, la tienda en línea envía a la pasarela de pagos una solicitud de suma de comisión a través de verifyP2P.do / verifyP2PByBinding.do.
  6. Opcional. La pasarela de pagos envía en respuesta la suma de comisión.
  7. La tienda en línea envía una solicitud de transferencia de fondos a la Pasarela de pago a través de performP2P.do / performP2PByBinding.do.
    En esta etapa se inicia el funcionamiento de 3DS2.
  8. La Pasarela de pago verifica en el servidor 3DS si el cliente puede autenticarse utilizando el protocolo 2.0.
  9. La Pasarela de pago envía respuesta a la solicitud realizada en el Paso 6. La respuesta también devuelve los siguientes parámetros:
    • is3DSVer2 - bandera de posibilidad de autenticación 3DSv2 (true/false)
    • threeDSServerTransId - identificador de transacción asignado por el servidor 3DS
    • threeDSMethodURLServer - dirección del servidor 3DS para recolección de datos del navegador
    • threeDSMethodURL - (opcional) dirección del servidor ACS para recolección de datos del navegador
    • threeDSMethodDataPacked - (opcional) datos para recolección de datos del navegador en ACS

    (Ver también descripción de la solicitud).
  10. La tienda en línea invoca threeDSMethodURLServer en un iframe separado utilizando el método POST, usando el valor obtenido de la respuesta a la solicitud de transferencia de fondos. Esto permite al servidor 3DS recopilar datos sobre el navegador del cliente.
  11. Opcional. Si en la respuesta a la solicitud de transferencia de fondos se obtuvieron los parámetros threeDSMethodURL y threeDSMethodDataPacked, la tienda en línea invoca en un iframe separado mediante método POST threeDSMethodURL.
  12. Transferencia de fondos - etapa 2. La tienda en línea vuelve a enviar solicitud para ejecutar la transferencia a través de performP2P.do / performP2PByBinding.do.
    Es necesario pasar el parámetro threeDSServerTransId - identificador de transacción que fue creado por el servidor 3DS y devuelto en el Paso 10.
  13. La Pasarela de pago envía solicitud de autenticación al servidor 3DS.
  14. El servidor 3DS envía solicitud de autenticación (AReq) al servidor ACS.
  15. El servidor ACS envía respuesta a la solicitud de autenticación (ARes) al servidor 3DS.
  16. El servidor 3DS envía los datos recibidos a la pasarela de pago.

    • Si el cliente no necesita pasar autenticación en ACS, la pasarela de pago devuelve respuesta a la solicitud de transferencia de fondos. En este caso el escenario continúa desde el Paso 27.
    • Si el cliente necesita pasar autenticación en ACS, la Pasarela de pago enviará respuesta a la página de pago con datos de redirección a ACS.
  17. La página de pago se redirige a acsUrl con el parámetro creq=packedCReq.
  18. ACS muestra la página de autenticación para el cliente (página challenge).
  19. El cliente está autenticado.
  20. El servidor ACS verifica la autenticidad de los datos de autenticación.
  21. Ocurre intercambio de datos entre los servidores ACS y 3DS y se confirma el resultado del procesamiento.
  22. El servidor ACS redirige al cliente a la página de la tienda.
  23. La tienda en línea envía solicitud /p2p/finishThreeDsVer2.do a la pasarela de pago.
  24. La Pasarela de pago envía a la tienda en línea respuesta a la solicitud realizada.
  25. La tienda en línea envía getP2PStatus.do a la pasarela de pagos para conocer el estado del pedido.
  26. La pasarela de pagos envía respuesta a la solicitud realizada.
  27. La tienda en línea muestra la página de resultado al cliente.

Transacción AFT

AFT (Account Funding Transaction) – tipo especial de operaciones de débito de fondos con el objetivo de recargar la cuenta interna del cliente en el sistema del comerciante o cuenta bancaria en el sistema del banco (frecuentemente utilizada como alternativa a la operación de compra).

El escenario de operación AFT tiene las siguientes características:

Escenario de operación AFT con introducción de datos de pago en el lado de la pasarela de pago

sequenceDiagram participant C as Cliente participant OS as Tienda en línea participant PG as Pasarela de pago participant ACS as ACS autonumber C ->> OS: Formación de pedido OS ->> PG: Registro de pedido PG -->> OS: orderId, formUrl OS -->> C: Redirección al formulario de recolección de datos de tarjeta C ->> PG: Obtención del formulario de recolección de datos de tarjeta PG -->> C: Formulario de recolección de datos de tarjeta C ->> PG: Envío de datos en el formulario completado PG ->> PG: Verificación de participación de la tarjeta en 3-D Secure PG -->> C: Redirección del cliente a ACS C ->> ACS: Obtención del formulario de autorización ACS -->> C: Formularios de autorización C ->> ACS: Completado del formulario ACS -->> C: Redirección del cliente a la pasarela de pago C ->> PG: Finalización del pago seguro PG ->> PG: Realización del pago PG -->> C: Redirección del cliente a la tienda en línea C ->> OS: Obtención de la página con el resultado OS ->> PG: Verificación del estado PG -->> OS: Estado del pedido OS -->> C: Visualización del resultado
  1. En el sitio web del vendedor (por ejemplo, en una tienda en línea) el portador de la tarjeta solicita la ejecución de una transferencia monetaria P2P.
  2. El sistema de la tienda online registra el pedido en la Pasarela de Pagos a través de registerP2P.do con el parámetro features=WITHOUT_TO_CARD. Los parámetros de registro utilizados incluyen el monto de la transferencia, la moneda, el número de pedido en el sistema del vendedor y la URL de retorno para el cliente.
  3. La Pasarela de Pagos en respuesta a la solicitud de registro devuelve un identificador único del pedido en el sistema de pagos y la URL para redirigir al cliente al formulario de recopilación de datos de tarjeta.
  4. El sistema de la tienda online transmite la dirección URL de redirección obtenida en el Paso 3 al navegador del cliente.
  5. El navegador del cliente abre la dirección URL.
  6. En la URL indicada, el navegador del cliente obtiene el formulario para recopilar datos de tarjeta.
  7. El cliente llena el formulario y los datos se envían al servidor de la pasarela de pagos.
  8. El sistema verifica la pertenencia de la tarjeta a 3-D Secure (SecureCode).
  9. La pasarela envía el enlace de redirección a la página del servidor de control de acceso (ACS) del banco emisor al navegador web del cliente (este paso es necesario para implementar 3DS).
  10. El navegador web del cliente solicita el formulario de autorización de usuario de ACS.
  11. ACS envía el formulario de autorización al navegador web del cliente.
  12. El cliente llena el formulario y los datos se envían al servidor de la pasarela de pagos.
  13. ACS procesa el formulario y, independientemente del resultado, envía la dirección URL de redirección de páginas de la pasarela de pagos al navegador web del cliente. Junto con esta URL se envían parámetros cifrados del resultado de autorización.
  14. El navegador web del cliente solicita la página de la pasarela de pagos al transmitir parámetros cifrados del resultado de autorización.
  15. La Pasarela de Pagos transfiere el dinero.
  16. Cuando el dinero es transferido, la pasarela de pagos envía la dirección URL de retorno al navegador web del cliente (la dirección URL fue especificada durante el registro del pedido por la tienda online en el Paso 2).
  17. El navegador web del cliente solicita los resultados de la transferencia de dinero de la tienda online.
  18. El sistema de la tienda online solicita información sobre el estado del pedido a la pasarela de pagos – getP2PStatus.do.
  19. La Pasarela de Pagos devuelve el estado del pedido.
  20. El sistema de la tienda online muestra al cliente el resultado del pago.

Escenario de operación AFT con ingreso de datos de pago del lado de la tienda online

Este escenario puede ejecutarse de dos maneras:

Registro y pago en una solicitud

sequenceDiagram participant C as Cliente participant OS as Tienda online participant PG as Pasarela de Pagos participant 3DSS as 3DS Server participant ACS as ACS autonumber C ->> OS: Formación de pedido OS ->> OS: Recopilación de datos de tarjeta OS ->> PG: Solicitud instantPerformP2P.do PG -> 3DSS: Verificación de disponibilidad 3DSv2 PG -->> OS: Respuesta a la solicitud OS ->> 3DSS: Llamada de iframe oculto (threeDSMethodURLServer) opt [si en la respuesta hay threeDSMethodURLe] OS ->> ACS: Llamada de iframe oculto (threeDSMethodURL) end OS ->> PG: Solicitud repetida instantPerformP2P.do PG ->> 3DSS: 14. Solicitud de autenticación 3DSS -> ACS: Intercambio de datos 3DSS -->> PG: Respuesta a la solicitud de autenticación PG -->> OS: Respuesta a la solicitud opt [Se requiere redirección a ACS] OS ->> ACS:CReq (ChallengeRequest) ACS -->> C: Formulario HTML para completar la autenticación C ->> ACS: Confirmación de autenticidad ACS ->> ACS: Procesamiento de datos ACS -> 3DSS: Intercambio de datos ACS -->> C: Resultado del procesamiento de datos y redirección del cliente a la página de la tienda OS ->> PG: finish3dsVer2Payment.do PG -->> OS: Respuesta a la solicitud end OS ->> PG: Solicitud de estado del pedido PG -->> OS: Respuesta a la solicitud de estado del pedido OS -->> C: Visualización del resultado
  1. El titular de la tarjeta (cliente) interactúa con la tienda online para crear un pedido.
  2. La tienda online recopila los datos de la tarjeta en su lado.
  3. La tienda online registra el pedido e inicia el pago, enviando una solicitud instantPerformP2P.do.
  4. La pasarela de pago consulta al servidor 3DS si el cliente puede pasar la autenticación 3DS2.
  5. La pasarela de pago envía respuesta a la solicitud. La respuesta también devuelve los siguientes parámetros:
    • threeDSServerTransId - identificador de transacción asignado por el servidor 3DS
    • threeDSMethodURLServer - dirección del servidor 3DS para la recopilación de datos del navegador
    • threeDSMethodURL - (opcional) dirección del servidor ACS para la recopilación de datos del navegador
    • threeDSMethodDataPacked - (opcional) datos para la recopilación de datos del navegador en ACS

    (Ver también descripción de la solicitud).
  6. La tienda online llama a threeDSMethodURLServer en un iframe separado usando el método POST, utilizando el valor obtenido de la respuesta a la solicitud de transferencia de fondos. Esto permite al servidor 3DS recopilar datos sobre el navegador del cliente.
  7. Opcional. Si en la respuesta a la solicitud de transferencia de fondos se obtuvieron los parámetros threeDSMethodURL y threeDSMethodDataPacked, la tienda online llama en un iframe separado mediante el método POST a threeDSMethodURL.
  8. La tienda online vuelve a enviar la solicitud instantPerformP2P.do, para ejecutar la transferencia.

    Es necesario pasar el parámetro threeDSServerTransId - identificador de transacción que fue creado por el servidor 3DS y devuelto en el Paso 5.
  9. La pasarela de pago envía solicitud de autenticación al servidor 3DS.
  10. El servidor 3DS intercambia datos con ACS.
  11. El servidor 3DS envía los datos obtenidos a la pasarela de pago.

    • Si el cliente no necesita pasar autenticación en ACS, la pasarela de pago devuelve respuesta a la solicitud de transferencia de fondos. En este caso el escenario continúa desde el Paso 27.
    • Si el cliente necesita pasar autenticación en ACS, la pasarela de pago enviará respuesta a la página de pago con datos de redirección a ACS.
  12. La página de pago se redirige a acsUrl con el parámetro creq=packedCReq.
  13. ACS muestra la página de autenticación para el cliente (página challenge).
  14. El cliente está autenticado.
  15. El servidor ACS verifica la autenticidad de los datos de autenticación.
  16. Ocurre intercambio de datos entre servidores ACS y 3DS y se confirma el resultado del procesamiento.
  17. El servidor ACS redirige al cliente a la página de la tienda.
  18. La tienda online envía solicitud /p2p/finishThreeDsVer2.do a la pasarela de pago.
  19. La pasarela de pago envía a la tienda online respuesta a la solicitud realizada.
  20. La tienda online envía getP2PStatus.do a la pasarela de pago para conocer el estado del pedido.
  21. La pasarela de pago envía respuesta a la solicitud realizada.
  22. La tienda online muestra la página de resultado al cliente.

Registro y pago en solicitudes separadas

sequenceDiagram participant C as Cliente participant OS as Tienda en línea participant PG as Pasarela de pagos participant 3DSS as 3DS Server participant ACS as ACS autonumber C ->> OS: Formación del pedido OS ->> OS: Recopilación de datos de tarjeta OS ->> PG: Registro del pedido PG -->> OS: Respuesta al registro del pedido OS ->> PG: Solicitud del monto de comisión PG -->> OS: Obtención del monto de comisión OS ->> PG: Solicitud de transferencia de tarjeta a tarjeta PG -> 3DSS: Verificación de disponibilidad 3DSv2 PG -->> OS: Respuesta a la solicitud de transferencia de tarjeta a tarjeta OS ->> 3DSS: Llamada a iframe oculto (threeDSMethodURLServer) opt [si threeDSMethodURL está en la respuesta] OS ->> ACS: Llamada a iframe oculto (threeDSMethodURL) end OS ->> PG: Segunda solicitud de transferencia de fondos PG ->> 3DSS: Solicitud de autenticación 3DSS ->> ACS: Solicitud de autenticación ACS -->> 3DSS: Respuesta a la solicitud de autenticación 3DSS -->> PG: Respuesta a la solicitud de autenticación PG -->> OS: Respuesta a la solicitud opt [Se requiere redirección a ACS] OS ->> ACS: CReq (ChallengeRequest) ACS -->> C: Formulario HTML para completar la autenticación C ->> ACS: Confirmación de autenticidad ACS ->> ACS: Procesamiento de datos ACS -> 3DSS: Intercambio de datos ACS -->> C: Resultado del procesamiento de datos y redirección del cliente a la página de la tienda OS ->> PG: finish3dsVer2Payment.do PG -->> OS: Respuesta a la solicitud end OS ->> PG: Solicitud de estado del pedido PG -->> OS: Respuesta a la solicitud de estado del pedido OS -->> C: Visualización del resultado
  1. El titular de la tarjeta (cliente) interactúa con la tienda en línea para crear un pedido.
  2. El sistema de la tienda en línea recopila los datos de la tarjeta en su lado.
  3. El sistema de la tienda en línea registra el pedido en la Pasarela de pagos a través de registerP2P.do con el parámetro features=WITHOUT_TO_CARD. Los parámetros de registro utilizados incluyen el monto de transferencia, moneda, número de pedido en el sistema del vendedor y URL de retorno para el cliente.
  4. La Pasarela de pagos en respuesta a la solicitud de registro devuelve un identificador único del pedido en el sistema de pagos.
  5. Opcional. Si la tienda en línea trabaja con comisión, la tienda en línea envía a la pasarela de pagos una solicitud del monto de comisión a través de verifyP2P.do / verifyP2PByBinding.do.
  6. Opcional. La Pasarela de pagos envía en respuesta el monto de comisión.
  7. La tienda en línea envía una solicitud de transferencia de fondos a la Pasarela de pagos a través de performP2P.do / performP2PByBinding.do, especificando los datos de la tarjeta de débito en el bloque fromCard.
    En esta etapa se inicia el trabajo de 3DS 2.0.
  8. La Pasarela de pagos verifica en el servidor 3DS si el cliente puede autenticarse utilizando el protocolo 2.0.
  9. La pasarela de pagos envía una respuesta a la solicitud realizada en el Paso 6. La respuesta también devuelve los siguientes parámetros:
    • is3DSVer2 - indicador de posibilidad de autenticación 3DSv2 (true/false)
    • threeDSServerTransId - identificador de transacción asignado por el servidor 3DS
    • threeDSMethodURLServer - dirección del servidor 3DS para la recopilación de datos del navegador
    • threeDSMethodURL - (opcional) dirección del servidor ACS para la recopilación de datos del navegador
    • threeDSMethodDataPacked - (opcional) datos para la recopilación de datos del navegador en ACS

    (Ver también descripción de la solicitud).
  10. La tienda online invoca threeDSMethodURLServer en un iframe separado utilizando el método POST, usando el valor obtenido de la respuesta a la solicitud de transferencia de fondos. Esto permite al servidor 3DS recopilar datos sobre el navegador del cliente.
  11. Opcional. Si en la respuesta a la solicitud de transferencia de fondos se obtuvieron los parámetros threeDSMethodURL y threeDSMethodDataPacked, la tienda online invoca en un iframe separado mediante método POST threeDSMethodURL.
  12. Transferencia de fondos - etapa 2. La tienda online envía nuevamente una solicitud para ejecutar la transferencia a través de performP2P.do / performP2PByBinding.do.
    Es necesario pasar el parámetro threeDSServerTransId - identificador de transacción que fue creado por el servidor 3DS y devuelto en el Paso 10.
  13. La pasarela de pagos envía una solicitud de autenticación al servidor 3DS.
  14. El servidor 3DS envía una solicitud de autenticación (AReq) al servidor ACS.
  15. El servidor ACS envía una respuesta a la solicitud de autenticación (ARes) al servidor 3DS.
  16. El servidor 3DS envía los datos recibidos a la pasarela de pagos.

    • Si el cliente no necesita pasar por autenticación en ACS, la pasarela de pagos devuelve una respuesta a la solicitud de transferencia de fondos. En este caso el escenario continúa desde el Paso 27.
    • Si el cliente necesita pasar por autenticación en ACS, la pasarela de pagos enviará una respuesta a la página de pagos con datos de redirección a ACS.
  17. La página de pago se redirige a acsUrl con el parámetro creq=packedCReq.
  18. ACS muestra la página de autenticación para el cliente (página challenge).
  19. El cliente está autenticado.
  20. El servidor ACS verifica la autenticidad de los datos de autenticación.
  21. Se produce un intercambio de datos entre los servidores ACS y 3DS y se confirma el resultado del procesamiento.
  22. El servidor ACS redirige al cliente a la página de la tienda.
  23. La tienda online envía una solicitud /p2p/finishThreeDsVer2.do a la pasarela de pagos.
  24. La pasarela de pagos envía a la tienda online una respuesta a la solicitud realizada.
  25. La tienda online envía getP2PStatus.do a la pasarela de pagos para conocer el estado del pedido.
  26. La pasarela de pagos envía una respuesta a la solicitud realizada.
  27. La tienda online muestra la página de resultado al cliente.

Transacción OCT

OCT (Original Credit Transaction) - tipo especial de transacciones para acreditar fondos monetarios al destinatario en tiempo real.

Escenario de realización de transacción OCT

sequenceDiagram participant C as Cliente participant OS as Tienda en línea participant PG as Pasarela de pago C ->> OS: 1. Formación de pedido OS ->> PG: 2. Registro de pedido PG -->> OS: 3. orderId, formUrl OS -->> C: 4. Redirección al formulario de recopilación de datos de tarjeta C ->> PG: 5. Envío de datos en el formulario completado PG ->> PG: 6. Transferencia de fondos PG -->> C: 7. Redirección del cliente a la tienda en línea C ->> OS: 8. Obtención de página con resultado OS ->> PG: 9. Verificación de estado PG -->> OS: 10. Estado del pedido OS -->> C: 11. Visualización del resultado
  1. El titular de la tarjeta (cliente) interactúa con la tienda en línea para crear el pedido.
  2. El sistema de la tienda en línea registra el pedido en la Pasarela de pago a través de registerP2P.do. Los parámetros de registro utilizados incluyen el monto de transferencia, moneda, número de pedido en el sistema del vendedor y URL de retorno para el cliente.
  3. La Pasarela de pago en respuesta a la solicitud de registro devuelve un identificador único del pedido en el sistema de pago y URL para redirigir al cliente al formulario de recopilación de datos de tarjeta.
  4. El sistema de la tienda en línea transmite la dirección URL de redirección obtenida en el Paso 3 al navegador del cliente.
  5. El cliente completa el formulario, y los datos se envían al servidor de la pasarela de pago.
  6. La Pasarela de pago realiza la transferencia de fondos a través de performP2P.do.
  7. Cuando el dinero es transferido, la pasarela de pago envía la URL de retorno al navegador web del cliente (la URL fue especificada durante el registro del pedido por la tienda en línea en el Paso 2).
  8. El navegador web del cliente solicita los resultados de la transferencia de dinero de la tienda en línea.
  9. El sistema de la tienda en línea solicita información sobre el estado del pedido a la pasarela de pago – getP2PStatus.do.
  10. La Pasarela de pago devuelve el estado del pedido.
  11. El sistema de la tienda en línea muestra al cliente el resultado del pago.

Llamadas API

Las solicitudes de transacciones P2P deben estar firmadas. La información sobre firmas de solicitudes está disponible en nuestra Guía de API.

Registro de pedido P2P

Para procesar un pedido de transferencia de dinero de tarjeta a tarjeta utilice la solicitud https://dev.bpcbt.com/payment/rest/api/p2p/registerP2P.do.


Al ejecutar la solicitud es necesario usar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

username String [1..30] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Obligatorio

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Obligatorio

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Obligatorio

returnUrl String [1..512] Dirección a la que se requiere redirigir al usuario en caso de pago exitoso. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

failUrl String [1..512] Dirección a la que se debe redirigir al usuario en caso de pago fallido. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

orderDescription String [1..600] Descripción del pedido transmitida al gateway de pago durante el registro.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Opcional

merchantLogin String [1..255] Para registrar un pedido en nombre de otro comerciante, especifica su login (para la cuenta API) en este parámetro.
Se puede usar solo si tienes permiso para ver las transacciones de otros vendedores o si el vendedor especificado es tu vendedor subsidiario.
Opcional

dynamicCallbackUrl String [1..512] Parámetro para transmitir la dirección dinámica para recibir notificaciones callback de "pago" por pedido, activadas para el comerciante (autorización exitosa, débito exitoso, devolución, cancelación, rechazo de pago por timeout, rechazo de pago card present).
Las notificaciones callback "no de pago" (activación/desactivación de vinculación, creación de vinculación), serán enviadas a la dirección callback estática.
Opcional

sessionTimeoutSecs Integer [1..9] Duración de vida del pedido en segundos. En caso de que el parámetro no esté especificado, se utilizará el valor indicado en la configuración del comerciante, o el tiempo por defecto (1200 segundos = 20 minutos). Si en la solicitud está presente el parámetro expirationDate, entonces el valor del parámetro sessionTimeoutSecs no se tiene en cuenta.
Opcional

sessionExpiredDate String Fecha y hora de vencimiento del pedido. Formato: yyyy-MM-ddTHH:mm:ss.
Si este parámetro no se transmite en la solicitud, entonces para determinar el tiempo de vencimiento del pedido se utiliza el parámetro sessionTimeoutSecs.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
  • Este pedido solo se puede pagar usando la vinculación;
  • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
Opcional

creditBindingId String [0..255] Identificador de vinculación de tarjeta para acreditación. Se utiliza en transferencias de tarjeta a tarjeta, cuando se conoce de antemano la tarjeta del destinatario. Este parámetro debe ser transmitido primero en la solicitud de registro de pago (registerP2P.do - aquí también debe ser transmitido el parámetro clientId), luego en la solicitud de transferencia de fondos por vinculación (performP2PByBinding.do - el valor del parámetro creditBindingId, transmitido en registerP2P.do, debe ser transmitido en el parámetro bindingId en el bloque toCard).
Condicional

transactionTypeIndicator String Se utiliza en tipos de transacciones unidireccionales.
Son posibles los siguientes valores:
  • A - Transferencia de tarjeta a tarjeta de un mismo propietario (de cuenta a cuenta)
  • B - Transferencia con el propósito de adquisición de criptomoneda
  • C - Transferencia para fines de compra de criptomoneda
  • D - Pago de fondos
  • F - Transferencia para apuestas en juegos de azar
  • G - Pago en juegos de azar en línea
  • H - Retiro de fondos (Cash Out). Retiro de fondos por agente.
  • I - Pagos gubernamentales
  • J - Transferencia de dinero iniciada por el banco
  • L - Transferencia para fines de liquidación de cuentas de tarjeta de crédito
  • O - Transferencia para fines de pago de deuda
  • P - Transferencia de tarjeta a tarjeta de diferentes propietarios
  • W - Transferencia a cuenta propia de billetera digital por etapas para pago
Condicional

features Object Contenedor para el parámetro feature, obligatorio para operaciones unidireccionales.
Si se ejecuta una operación AFT (transferencia de tarjeta a cuenta) - en el parámetro feature debe pasarse WITHOUT_TO_CARD. Además, si después de esta operación AFT se prevé ejecutar una operación OCT, es necesario pasar el valor OCT_EXPECTED.
Ejemplo: "features" : { "feature" : ["WITHOUT_TO_CARD"] }
Si se ejecuta una operación OCT (transferencia de cuenta a tarjeta) - en el parámetro feature debe pasarse WITHOUT_FROM_CARD.
Ejemplo: "features" : { "feature" : ["WITHOUT_FROM_CARD"] }
Opcional

params Object Campos de información adicional para almacenamiento posterior, se transmiten de la siguiente forma:
"params": [ {"name": "param1", "value": "value1"}, {"name": "param2", "value": "value2"} ].
Estos campos pueden ser transmitidos al procesamiento del banco para su posterior visualización en los registros del banco.
Por defecto se transmiten orderNumber (número de pedido) y orderDescription (descripción del pedido).orderDescription no debe exceder 99 caracteres, no utilice los siguientes caracteres: %, +, retorno de carro \r y salto de línea
).

Para habilitar esta funcionalidad, contacte al banco.
Opcional

feeInput String Tamaño de la comisión en unidades mínimas de moneda. La funcionalidad debe estar habilitada a nivel del vendedor en el gateway. Si para el comerciante está establecido el permiso correspondiente, y él realiza operaciones AFT, la comisión del comerciante llega en la solicitud de registro y se envía en el mensaje al procesamiento.
  • Si feeInput es mayor que 0, el atributo externalFee será agregado a TransactionModel, y al llamar verifyP2P.do la solicitud de verificación no será enviada al procesamiento. En la solicitud al procesamiento serán agregadas las siguientes etiquetas, si fueron transmitidas en los parámetros adicionales de la solicitud de registro: acc_number, contract, fio_sender, reference, fio_reciever.
  • Si feeInput no es transmitido o es igual a 0, entonces será ejecutada la solicitud estándar registerP2P.do (el atributo externalFee no será agregado a TransactionModel, y al llamar verifyP2P.do la solicitud de verificación será enviada al procesamiento.
Opcional shippingPayerData Object Objeto que contiene datos de entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.
Condicional billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor en el lado de la Pasarela de Pago. Debe haber sido incluido en la solicitud registerP2P.do o en la solicitud performP2P.do. Ver parámetros anidados.
Condicional billingRecipientData Object Bloque de datos sobre el destinatario. Obligatorio si la función está habilitada para el vendedor en el lado de la Pasarela de Pago. Debe haber sido incluido en la solicitud registerP2P.do o en la solicitud performP2P.do. Ver parámetros anidados.
Opcional

debitMdOrder String [1..36] Número único de pedido para el cual se ejecutó la transferencia AFT en iPay. Este parámetro se utiliza para operaciones OCT en transferencias P2P (AFT+OCT).

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Condición billingCity String [0..50] Ciudad registrada para una tarjeta específica en el Banco Emisor. Obligatorio para transacciones AFT con Visa.
Condición billingCountry String [0..50] País registrado para una tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país. Obligatorio para transacciones AFT con Visa.
Condición billingAddressLine1 String [0..50] Dirección registrada para una tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio de transmitir para verificación AVS. Obligatorio para transacciones AFT con Visa.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Condición payerLastName String [1..64] Apellido del remitente. Obligatorio para transacciones AFT con Visa.
Condición payerFirstName String [1..35] Nombre del remitente. Obligatorio para transacciones AFT con Visa.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Condición payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD. Obligatorio para transacciones AFT con Visa.

A continuación se presentan los parámetros del bloque billingRecipientData (datos sobre el destinatario).

Obligatoriedad Nombre Tipo Descripción
Opcional

recipientCity String [0..40] Código de ciudad del destinatario. Formato ISO 3166-1 alpha-3. Puede contener letras solo del alfabeto latino.
Condición

recipientCountry String [0..50] Código del país del destinatario. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de país de dos/tres letras. Obligatorio para transacciones AFT con Mastercard.
Opcional

recipientAddressLine1 String [0..50] Dirección del destinatario. Puede contener letras solo del alfabeto latino.
Opcional

recipientPostalCode String [0..9] Código postal del destinatario.
Opcional

recipientState String [0..50] Código del estado del destinatario. Formato: valor completo del código ISO 3166-2, su parte o denominación del estado/región. Puede contener letras únicamente del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Condición

recipientAccount String [0..32] Número de cuenta del destinatario. Obligatorio para transacciones AFT con Mastercard.
Condición

recipientAccountNumberType Integer [1..2] Tipo de cuenta del destinatario. Valores posibles:
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

Obligatorio para transacciones AFT con Mastercard.
Obligatorio

recipientLastName String [0..35] Apellido del destinatario.
Obligatorio

recipientFirstName String [0..35] Nombre del destinatario.
Opcional

recipientMiddleName String [0..35] Nombre patronímico del destinatario.
Opcional

recipientCombinedName String [0..99] Nombre completo del destinatario.
Opcional

recipientIdType String [1..8] Tipo de documento de identificación proporcionado del destinatario.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta ID de ciudadano
  • IDTP5 - Certificado de conducción de negocio
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marinero
Opcional

recipientIdNumber String [1..99] Número del documento de identificación proporcionado del destinatario.
Opcional

recipientBirthday String [1..20] Fecha de cumpleaños del destinatario en formato YYYYMMDD.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

formUrl String [1..512] URL del formulario de pago al cual será redirigido el comprador. La URL no se devuelve si el registro del pedido no se completó debido a un error especificado en errorCode.
Opcional

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.

Ejemplos

Ejemplo de solicitud

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/registerP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "amount" : 50000,
  "currency" : "978",
  "returnUrl" : "https://mybestmerchantreturnurl.com",
  "orderNumber": "1"
}'

Ejemplo de solicitud de operación OCT

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/registerP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "amount" : 50000,
  "currency" : "978",
  "returnUrl" : "https://mybestmerchantreturnurl.com",
  "orderNumber": "12",
  "clientId": "122313",
  "creditBindingId": "99ef0cee-34fe-7312-ad7c-78bc00b3236a",
  "transactionTypeIndicator": "A",
  "features":{
      "feature":["FEATURE_1", "FEATURE_2", .. "FEATURE_N"]
   }
}'

Ejemplo de solicitud con especificación de datos del remitente y destinatario

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/registerP2P.do' \
--header 'Content-Type: application/json' \
--data-raw '{ 
  "username": "test_user",
  "password": "test_user_password",
  "amount" : 1500,
  "currency" : "978",
  "returnUrl" : "https://mybestmerchantreturnurl.com",
  "failUrl" : "https://failUrl.com",
  "orderNumber": "01rthtbkuysgr",
  "email" : "test@test.com",

    "billingPayerData": {
        "payerAccount": "DE89370400440532013000",
        "payerLastName": "CHINA",
        "payerFirstName": "Mieville",
        "payerMiddleName": "Tom",
        "payerCombinedName": "CHINA Mieville",
        "payerIdType": "IDTP1",
        "payerIdNumber": "792209292",
        "billingCity": "BUD",
        "billingCountry": "348",
        "billingAddressLine1": "Terez krt",
        "billingAddressLine2": "Terez krt",
        "billingAddressLine3": "Terez krt",
        "billingPostalCode": "1067",
        "billingState": "VI",
        "payerBirthday": "19900101"
    },
    "billingRecipientData": {
        "recipientAccount": "DE89370400440532013000",
        "recipientLastName": "CHINA",
        "recipientFirstName": "Mieville",
        "recipientMiddleName": "Tom",
        "recipientCombinedName": "CHINA Mieville",
        "recipientIdType": "IDTP1",
        "recipientIdNumber": "792209292",
        "recipientCity": "BUD",
        "recipientCountry": "348",
        "recipientAddressLine1": "Terez krt",
        "recipientPostalCode": "1067",
        "recipientState": "VI",
        "recipientBirthday": "19900101"
    }
}'

Ejemplo de respuesta

{
  "errorCode": 0,
  "errorMessage": "Successful",
  "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
  "formUrl": "https://dev.bpcbt.com/payment/merchants/ecom/payment.html?mdOrder=0a4eaae8-653a-71a9-8259-46fc00a8ea58&language=en",
  "orderNumber": "2009"
}

Importe de comisión

Para obtener el importe de comisión por transferencia de dinero utilice la solicitud https://dev.bpcbt.com/payment/rest/api/p2p/verifyP2P.do.

La estructura de la solicitud supone la presencia del bloque fromCard para transmitir atributos de tarjeta para débito y del bloque toCard para transmitir atributos de tarjeta para acreditación.

Dependiendo de los procesos de negocio, al realizar transferencia de tarjeta a tarjeta pueden ser posibles las siguientes variantes:


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

username String [1..30] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
No obligatorio

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
No obligatorio

amount String [0..12] Importe de la transferencia en unidades mínimas de moneda (por ejemplo, en kopeks).
Este parámetro se transmite si el pagador decide cambiar el importe de la transferencia al realizar la transferencia monetaria.
No obligatorio

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
No obligatorio billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar verificación de dirección en marco de servicios AVS/AVV. Es obligatorio si la función está habilitada para el vendedor del lado del Pasarela de Pagos. Ver parámetros anidados.
Obligatorio

fromCard Object Bloque con atributos de la tarjeta de débito. Ver parámetros anidados.
Obligatorio

toCard Object Bloque con atributos de la tarjeta de acreditación. Ver parámetros anidados.

El bloque fromCard incluye los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condición

pan String [1..19] Número de tarjeta de débito de fondos monetarios.
Condición

cvc String [3] Código CVC/CVV2 en el reverso de la tarjeta de débito.
Obligatorio, si el pago no se realiza por vinculación y/o si el vendedor no tiene permiso para el pago sin CVC.
Solo se permiten dígitos.
Condición

expirationYear Integer [4] Año de vencimiento de la tarjeta de débito. Se aceptan valores de 2000 a 2200.
Condición

expirationMonth Integer [2] Mes de vencimiento de la tarjeta de débito. Valores disponibles: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Obligatorio

cardholderName String [1..26] Nombre del titular de la tarjeta de débito.
Condición

seToken String Datos encriptados de la tarjeta.
Obligatorio, si se usa en lugar de los datos de la tarjeta. Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Más detalles sobre la generación de seToken véase aquí.

El bloque toCard incluye los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condición

pan String [1..19] Número de tarjeta para el depósito de fondos monetarios.
No obligatorio

expirationYear Integer [4] Año de vencimiento de la tarjeta de acreditación. Se aceptan valores de 2000 a 2200.
No obligatorio

expirationMonth Integer [2] Mes de vencimiento de la tarjeta de acreditación. Valores disponibles: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
No obligatorio

cardholderName String [1..26] Nombre del titular de la tarjeta de acreditación.
Condición

seToken String Datos cifrados de la tarjeta.
Obligatorio si se utiliza en lugar de los datos de la tarjeta. Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Más detalles sobre la generación de seToken ver aquí.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Condición billingCity String [0..50] Ciudad registrada para una tarjeta específica en el Banco Emisor. Obligatorio para transacciones AFT con Visa.
Condición billingCountry String [0..50] País registrado para una tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país. Obligatorio para transacciones AFT con Visa.
Condición billingAddressLine1 String [0..50] Dirección registrada para una tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio de transmitir para verificación AVS. Obligatorio para transacciones AFT con Visa.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Condición payerLastName String [1..64] Apellido del remitente. Obligatorio para transacciones AFT con Visa.
Condición payerFirstName String [1..35] Nombre del remitente. Obligatorio para transacciones AFT con Visa.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Condición payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD. Obligatorio para transacciones AFT con Visa.

A continuación se presentan los parámetros del bloque billingRecipientData (datos sobre el destinatario).

Obligatoriedad Nombre Tipo Descripción
Opcional

recipientCity String [0..40] Código de ciudad del destinatario. Formato ISO 3166-1 alpha-3. Puede contener letras solo del alfabeto latino.
Condición

recipientCountry String [0..50] Código del país del destinatario. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de país de dos/tres letras. Obligatorio para transacciones AFT con Mastercard.
Opcional

recipientAddressLine1 String [0..50] Dirección del destinatario. Puede contener letras solo del alfabeto latino.
Opcional

recipientPostalCode String [0..9] Código postal del destinatario.
Opcional

recipientState String [0..50] Código del estado del destinatario. Formato: valor completo del código ISO 3166-2, su parte o denominación del estado/región. Puede contener letras únicamente del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Condición

recipientAccount String [0..32] Número de cuenta del destinatario. Obligatorio para transacciones AFT con Mastercard.
Condición

recipientAccountNumberType Integer [1..2] Tipo de cuenta del destinatario. Valores posibles:
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

Obligatorio para transacciones AFT con Mastercard.
Obligatorio

recipientLastName String [0..35] Apellido del destinatario.
Obligatorio

recipientFirstName String [0..35] Nombre del destinatario.
Opcional

recipientMiddleName String [0..35] Nombre patronímico del destinatario.
Opcional

recipientCombinedName String [0..99] Nombre completo del destinatario.
Opcional

recipientIdType String [1..8] Tipo de documento de identificación proporcionado del destinatario.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta ID de ciudadano
  • IDTP5 - Certificado de conducción de negocio
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marinero
Opcional

recipientIdNumber String [1..99] Número del documento de identificación proporcionado del destinatario.
Opcional

recipientBirthday String [1..20] Fecha de cumpleaños del destinatario en formato YYYYMMDD.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.

El bloque feeDescriptionList incluye los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
No obligatorio

feeAmount Integer [1..12] Importe de la comisión.
No obligatorio

feeCurrency String [3] Código de moneda de pago ISO 4217.
No obligatorio

feeDescription String [1..512] Descripción de la comisión.

Ejemplos

Ejemplo de solicitud

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/verifyP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
  "fromCard": {
    "cardholderName": "TEST CARDHOLDER",
    "cvc": "123",
    "expirationMonth": 12,
    "expirationYear": 2030,
    "pan": "5000001111111115"
  },
  "toCard": {
    "pan": "4000001111111118"
  },    
  "amount" : 50000
}'

Ejemplo de respuesta

{
  "errorCode": 0,
  "errorMessage": "Successful",
  "feeDescriptionList: [ {
    "feeAmount": 500,
    "feeCurrency": "978",
    "feeDescription": "Acquirer fee"
  } ]
}

Comisión por transferencia P2P por vinculación

Para obtener el monto de la comisión al transferir fondos por vinculación, utilice la solicitud https://dev.bpcbt.com/payment/rest/api/p2p/verifyP2PByBinding.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

Parámetros de la solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

username String [1..30] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Obligatorio

fromCard Object Bloque con atributos de la tarjeta de débito. Ver parámetros anidados.
Obligatorio

toCard Object Bloque con atributos de la tarjeta de acreditación. Ver parámetros anidados.

El bloque fromCard incluye los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condición

bindingId String [1..255] Identificador de vinculación creado al pagar el pedido o utilizado para el pago. Disponible solo si el vendedor tiene permitido crear vinculaciones.
Condición

pan String [1..19] Número de tarjeta de débito de fondos monetarios.
Condición

cvc String [3] Código CVC/CVV2 en el reverso de la tarjeta de débito.
Obligatorio, si el pago no se realiza por vinculación y/o si el vendedor no tiene permiso para el pago sin CVC.
Solo se permiten dígitos.
Condición

expirationYear Integer [4] Año de vencimiento de la tarjeta de débito. Se aceptan valores de 2000 a 2200.
Condición

expirationMonth Integer [2] Mes de vencimiento de la tarjeta de débito. Valores disponibles: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta de débito.
Condición

seToken String Datos encriptados de la tarjeta.
Obligatorio, si se usa en lugar de los datos de la tarjeta. Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Más detalles sobre la generación de seToken véase aquí.

El bloque toCard incluye los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condición

bindingId String [1..255] Identificador de vinculación creado al pagar el pedido o utilizado para el pago. Disponible solo si el vendedor tiene permitido crear vinculaciones.
Condición

pan String [1..19] Número de tarjeta para el depósito de fondos monetarios.
Opcional

expirationYear Integer [4] Año de vencimiento de la tarjeta de acreditación. Se aceptan valores de 2000 a 2200.
Opcional

expirationMonth Integer [2] Mes de vencimiento de la tarjeta de acreditación. Valores disponibles: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta de acreditación.
Condición

seToken String Datos cifrados de la tarjeta.
Obligatorio si se utiliza en lugar de los datos de la tarjeta. Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Más detalles sobre la generación de seToken ver aquí.

Parámetros de la respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

feeAmount Integer [1..12] Importe de la comisión.
Opcional

feeCurrency String [3] Código de moneda de pago ISO 4217.
Opcional

feeDescription String [1..512] Descripción de la comisión.

Ejemplos

Ejemplo de solicitud

curl --location --request POST 'https://dev.bpcbt.com/payment/rest/api/p2p/verifyP2PByBinding.do' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "test_user",
    "password": "test_user_password",
    "orderId": "fa71bf70-7c81-484e-a6fc-7db7e4283b2a",
    "bindingId": "4d792471-cee0-742c-922d-a265072e6148",
    "fromCard": {
        "seToken": "ofVx1r3aIJ3Mlx3nkfeOIJgFOnwfsgFK+V6Yzm+KxJgsq19l74GChhX0We/LEFq78Rhn9uFAEZGdeyDhnIc/KfuvObf0EzoDA65Uj1Z8FjwWyjnEwTBHZL4KmdFBCSk8jLxHt70mXwyjiHYyCVH1fT/UVOnsrkZVGrqmEG4MTi5dX9Znzf24DwRg4iezvdT8vf0dUW5lJdvY1tgOsOnBulwy6kH/YbHVsnR6yxO6d6IsdnT5f8PxaB+7ZyUqgrd6VA88FGJKJgdoxk4721pqKSG5dYroLJG96s23EDJ2Hpi4e9wU2rP7E6dlFw+qzATqX/eaJbaQ9eakkdMWnkj7aQ=="
    },
    "toCard": {
        "cardholderName": "IVAN IVANOV",
        "cvc": "123",
        "expirationMonth": 12,
        "expirationYear": 2024,
        "pan": "5555555555555599"
    },
    "amount": 1000,
    "currency": "978",
    "clientId": "123",
    "fromCard": {
        "bindingId": "fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc"
    },
    "toCard": {
        "pan": "4000001111111118"
    }
}'

Ejemplo de respuesta

{
  "errorCode" : 0,
  "errorMessage" : "Successful",
  "feeDescriptionList" : [ {
    "feeAmount" : 10,
    "feeCurrency" : "978",
    "feeDescription" : "Acquirer fee"
  } ]
}

Transferencia P2P

Para realizar una transferencia monetaria de tarjeta a tarjeta utilice la solicitud https://dev.bpcbt.com/payment/rest/api/p2p/performP2P.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

La estructura de la solicitud performP2P.do supone la presencia del bloque fromCard para transmitir atributos de la tarjeta para débito y del bloque toCard para transmitir atributos de la tarjeta para acreditación. Dependiendo de los procesos de negocio definidos para el banco y la tienda, al realizar la transferencia de tarjeta a tarjeta pueden ser posibles las siguientes variantes.

Parámetros de la solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

username String [1..30] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

email String [1..40] Correo electrónico del pagador.
Opcional

amount String [0..12] Importe de la transferencia en unidades mínimas de moneda (por ejemplo, en kopeks).
Este parámetro se transmite si el pagador decide cambiar el importe de la transferencia al realizar la transferencia monetaria.
Opcional

type String En caso de transferencia monetaria con datos solo de una tarjeta es necesario transmitir en este parámetro el valor correspondiente:
WITHOUT_FROM_CARD - sin indicación de tarjeta para el débito de fondos.
WITHOUT_TO_CARD - sin indicación de tarjeta para el abono.
Si se trata de una transferencia monetaria ordinaria de tarjeta a tarjeta, entonces aquí es necesario transmitir el siguiente valor: STANDARD.
Opcional

amountInput Integer [0..12] Importe de la transferencia en unidades mínimas de moneda (por ejemplo, en kopeks). Si se especifica un importe en este parámetro, la transferencia se realizará por este importe (independientemente del importe transmitido en la solicitud de procesamiento del pedido).
Opcional

captcha String CAPTCHA (texto destinado a distinguir la entrada humana de la entrada de máquina)
Optional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Se utiliza para transacciones AFT. Si se especifica este parámetro, la transacción será procesada dependiendo de su configuración en la pasarela de pagos: o se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente por día o suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pagos.
Opcional

threeDSSDK Boolean Valores posibles: true o false Bandera que indica que el pago proviene del 3DS SDK.
Opcional

threeDSSDKEncData String Datos cifrados del dispositivo.

Parámetro es obligatorio para SDK.

Opcional

threeDSSDKReferenceNumber String Identificador oficial del 3DS2 SDK
Opcional

threeDSSDKEphemPubKey String Parte pública de la clave efímera. Requerida para establecer sesión con ACS.

Parámetro es obligatorio para SDK.

Opcional

threeDSSDKAppId String Identificador único del SDK.

Parámetro es obligatorio para SDK.

Opcional

threeDSSDKTransId String Identificador único de la transacción en el SDK.

Parámetro es obligatorio para SDK.

Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.
Condicional

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Condicional

threeDSVer2MdOrder String [1..36] Número de pedido que fue registrado en la primera parte de la solicitud en el marco de la operación 3DS2. Obligatorio para la autenticación 3DS.
Si este parámetro está presente en la solicitud, entonces se utiliza mdOrder, que se transmite en el presente parámetro. En tal caso no ocurre el registro del pedido, sino que ocurre inmediatamente el pago del pedido.
Este parámetro se transmite solo al utilizar métodos de pago instantáneo, es decir, cuando el pedido se registra y se paga en el marco de una solicitud.
Opcional

bindingNotNeeded Boolean Valores permitidos:
  • true- la creación de vinculación después de realizar el pago está deshabilitada (la vinculación es el identificador del cliente transmitido en la solicitud de registro del pedido, que después de la solicitud de pago será eliminado de los detalles del pedido);
  • false – en caso de pago exitoso puede ser creada una vinculación (cumpliendo las condiciones necesarias). Este es el valor por defecto.
Condicional

originalPaymentNetRefNum String Identificador de la transacción original o anterior exitosa en el sistema de pago en relación con la operación ejecutada por vinculación - TRN ID. Se transmite si el valor del parámetro tii = R,U o F.
Obligatorio al usar las vinculaciones del comerciante en transferencias por vinculación.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Condicional tii String Identificador del iniciador de transacción. Parámetro que indica qué tipo de operación ejecutará el iniciador (Cliente o Comerciante).
Obligatorio para operaciones AFT y transferencia usando vinculación en el bloque fromCard o vinculación propia del comerciante.
Para operaciones OCT este parámetro no se transmite.
Valores posibles
Obligatorio

params Object Campos de información adicional para almacenamiento posterior, se transmiten de la siguiente forma: {"param":"value","param2":"value2"}.
Estos campos pueden ser transmitidos al procesamiento del banco para su posterior visualización en los registros del banco.
Por defecto se transmiten orderNumber (número de pedido) y orderDescription (descripción del pedido).orderDescription no debe exceder 99 caracteres, no utilice los siguientes caracteres: %, +, retorno de carro \r y salto de línea
).
Para habilitar esta funcionalidad, contacte con el banco.

En el objeto params de la solicitud de transferencia de dinero de tarjeta a tarjeta pueden ser transmitidos los siguientes datos del cliente (el formato de los valores depende del método utilizado de procesamiento de datos):
  • En el parámetro payerName - nombre del remitente de dinero.
  • En el parámetro payerAddress - dirección del remitente.
  • En el parámetro payerCity - ciudad del remitente.
  • En el parámetro payerCountry - país del remitente en forma de código ISO 3166-1 alpha-3 (código de tres letras).
  • En el parámetro payerPostalCode - código postal del remitente.
  • En el parámetro payerState - región del remitente.
Para el sistema de pago Visa en la solicitud de transferencia de dinero de tarjeta a tarjeta también es necesario transmitir en el parámetro params la siguiente información (el formato de los valores se determina por el método utilizado de procesamiento de datos):
  • En el parámetro recipientName - nombre del destinatario de dinero.

Si es necesario contacte con el equipo de soporte para indicar valores permanentes de los parámetros payer* y recipientName, para no transmitirlos cada vez en todas las solicitudes.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos del pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Condición billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor del lado de la Pasarela de Pago. Debió estar incluido en la solicitud registerP2P.do o en la solicitud performP2P.do. Ver parámetros anidados.
Condición billingRecipientData Object Bloque de datos sobre el destinatario. Obligatorio si la función está habilitada para el vendedor del lado de la Pasarela de Pago. Debió estar incluido en la solicitud registerP2P.do o en la solicitud performP2P.do. Ver parámetros anidados.
Obligatorio

fromCard Object Bloque con atributos de la tarjeta de débito. Ver parámetros anidados.
Obligatorio

toCard Object Bloque con atributos de la tarjeta de acreditación. Ver parámetros anidados.

Valores posibles del parámetro tii:

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Datos de tarjeta se guardan después de transacción Comentario
CI Iniciante - Normal (CIT) Iniciante Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de vinculación.
F Pago no programado (CIT) Subsecuente Comprador Cliente selecciona tarjeta en lugar de ingreso manual No Transacción de comercio electrónico, utilizando vinculación normal previamente guardada.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Condición billingCity String [0..50] Ciudad registrada para una tarjeta específica en el Banco Emisor. Obligatorio para transacciones AFT con Visa.
Condición billingCountry String [0..50] País registrado para una tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país. Obligatorio para transacciones AFT con Visa.
Condición billingAddressLine1 String [0..50] Dirección registrada para una tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio de transmitir para verificación AVS. Obligatorio para transacciones AFT con Visa.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Condición payerLastName String [1..64] Apellido del remitente. Obligatorio para transacciones AFT con Visa.
Condición payerFirstName String [1..35] Nombre del remitente. Obligatorio para transacciones AFT con Visa.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Condición payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD. Obligatorio para transacciones AFT con Visa.

A continuación se presentan los parámetros del bloque billingRecipientData (datos sobre el destinatario).

Obligatoriedad Nombre Tipo Descripción
Opcional

recipientCity String [0..40] Código de ciudad del destinatario. Formato ISO 3166-1 alpha-3. Puede contener letras solo del alfabeto latino.
Condición

recipientCountry String [0..50] Código del país del destinatario. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de país de dos/tres letras. Obligatorio para transacciones AFT con Mastercard.
Opcional

recipientAddressLine1 String [0..50] Dirección del destinatario. Puede contener letras solo del alfabeto latino.
Opcional

recipientPostalCode String [0..9] Código postal del destinatario.
Opcional

recipientState String [0..50] Código del estado del destinatario. Formato: valor completo del código ISO 3166-2, su parte o denominación del estado/región. Puede contener letras únicamente del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Condición

recipientAccount String [0..32] Número de cuenta del destinatario. Obligatorio para transacciones AFT con Mastercard.
Condición

recipientAccountNumberType Integer [1..2] Tipo de cuenta del destinatario. Valores posibles:
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

Obligatorio para transacciones AFT con Mastercard.
Obligatorio

recipientLastName String [0..35] Apellido del destinatario.
Obligatorio

recipientFirstName String [0..35] Nombre del destinatario.
Opcional

recipientMiddleName String [0..35] Nombre patronímico del destinatario.
Opcional

recipientCombinedName String [0..99] Nombre completo del destinatario.
Opcional

recipientIdType String [1..8] Tipo de documento de identificación proporcionado del destinatario.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta ID de ciudadano
  • IDTP5 - Certificado de conducción de negocio
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marinero
Opcional

recipientIdNumber String [1..99] Número del documento de identificación proporcionado del destinatario.
Opcional

recipientBirthday String [1..20] Fecha de cumpleaños del destinatario en formato YYYYMMDD.

El bloque fromCard incluye los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condición

pan String [1..19] Número de tarjeta de débito de fondos monetarios.
Condición

cvc String [3] Código CVC/CVV2 en el reverso de la tarjeta de débito.
Obligatorio, si el pago no se realiza por vinculación y/o si el vendedor no tiene permiso para el pago sin CVC.
Solo se permiten dígitos.
Condición

expirationYear Integer [4] Año de vencimiento de la tarjeta de débito. Se aceptan valores de 2000 a 2200.
Condición

expirationMonth Integer [2] Mes de vencimiento de la tarjeta de débito. Valores disponibles: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta de débito.
Condición

seToken String Datos encriptados de la tarjeta.
Obligatorio, si se usa en lugar de los datos de la tarjeta. Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Más detalles sobre la generación de seToken véase aquí.
Condición threeDsAuthResult Object Bloque con datos sobre el resultado de la autenticación 3 DS utilizando MPI/3DS Server del comerciante.
Obligatorio para transacciones de transferencia de tarjeta a tarjeta y AFT utilizando MPI/3DS Server del comerciante.
Ver parámetros anidados.

Al realizar pagos utilizando tokens (APPLE, SAMSUNG, GOOGLE) en lugar de los datos de la tarjeta en el bloque fromCard se transmite:

Obligatoriedad Nombre Tipo Descripción
Condición

vendor String Parámetro utilizado al realizar pagos mediante tokens. Como valor se transmite la denominación del proveedor del servicio de pago: APPLE, GOOGLE, SAMSUNG.
Este parámetro debe transmitirse simultáneamente con el parámetro paymentToken (valor del token).
Este parámetro no puede estar presente simultáneamente con los parámetros: pan, cvc, expiry, bindingId, seToken.
Condición

paymentToken String [1..8192] Valor del token del proveedor especificado en el parámetro vendor (APPLE, GOOGLE, SAMSUNG). Si vendor está especificado, el parámetro es obligatorio.
Este parámetro no puede estar presente simultáneamente con los parámetros: pan, cvc, expiry, bindingId, seToken.
No obligatorio

decryptedToken Boolean Token descifrado para pagos a través de vendedores (ApplePay, GooglePay, etc.). Valores posibles:
  • true – para token descifrado;
  • false – para token cifrado.

Si no se pasa este parámetro, por defecto se considerará que se pasó decryptedToken = false.
No obligatorio

protocolVersion String Versión del protocolo definida por Google para el token de pago: ECv1 (por defecto) o ECv2

A continuación se enumeran los parámetros del bloque threeDsAuthResult (datos sobre el resultado de autenticación 3 DS).

Obligatoriedad Nombre Tipo Descripción
Opcional

cavv String [0..200] Valor de verificación de autenticación del titular de la tarjeta. Se especifica solo después del pago del pedido y en caso de tener el permiso correspondiente.
Opcional

xid String [1..80] Identificador comercial electrónico de la transacción. Se especifica solo después del pago del pedido y en caso de tener el permiso correspondiente.
Opcional

eci Integer [1..4] Indicador de comercio electrónico. Especificado solo después del pago del pedido y en caso de tener el permiso correspondiente. A continuación se proporciona la descripción de los códigos ECI.
  • ECI=01 o ECI=06 - el comerciante soporta 3-D Secure, la tarjeta de pago no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
  • ECI=02 o ECI=05 - tanto el comerciante como la tarjeta de pago soportan 3-D Secure;
  • ECI=07 - el comerciante no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
Condicional

threeDsType String Tipo de autenticación 3DS. Este parámetro es obligatorio para el pago a través de su servidor 3DS con 3DS 2. Para pagos SSL este parámetro es opcional y se determina dependiendo del valor ECI. Valores permitidos:
  • 0 - Autenticación SSL
  • 3 - Autenticación fuerte del cliente (SCA) con 3DS 2
  • 4 - Autenticación basada en riesgo (RBA) con 3DS 2
  • 5 - Intento de autenticación 3DS 2
  • 7 - Autenticación 3RI con 3DS 2
  • 8 - Intento de autenticación 3RI con 3DS 2
Opcional

threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).

El bloque toCard incluye los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condición

pan String [1..19] Número de tarjeta para el depósito de fondos monetarios.
Opcional

expirationYear Integer [4] Año de vencimiento de la tarjeta de acreditación. Se aceptan valores de 2000 a 2200.
Opcional

expirationMonth Integer [2] Mes de vencimiento de la tarjeta de acreditación. Valores disponibles: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta de acreditación.
Condición

seToken String Datos cifrados de la tarjeta.
Obligatorio si se utiliza en lugar de los datos de la tarjeta. Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Más detalles sobre la generación de seToken ver aquí.

En la autenticación por protocolo 3DS2 también se transmiten los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Opcional

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

info String Resultado del intento de transferencia de fondos.

Valor en caso de transferencia exitosa: "Su pago ha sido procesado, se está realizando la redirección..."

Valor en caso de error: "Se está realizando la redirección..."
Condicional

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Condicional

paReq String [1..255] PAReq (Payment Authentication Request) — mensaje que debe enviarse al ACS junto con la redirección. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección al ACS. Este mensaje contiene datos en codificación Base64, necesarios para la autenticación del portador de la tarjeta. Para más detalles ver Redirección al ACS.
Opcional

termUrl String [1..512] En caso de respuesta exitosa en caso de pago 3D-Secure. URL para redirigir al cliente después de la interacción con ACS para completar el pago.
Opcional

originalPaymentNetRefNum String Identificador de la transacción original o anterior exitosa en el sistema de pago en relación con la operación ejecutada por vinculación - TRN ID. Se transmite si el valor del parámetro tii = R,U o F.
Obligatorio al usar las vinculaciones del comerciante en transferencias por vinculación.
Condicional

mcTransactionReference String [1..19] Identificador de transacción AFT por tarjeta Mastercard. Aplicable (y obligatorio) solo para Mastercard.
Condicional statusResponse Object Parámetros del estado de respuesta. Este bloque se devuelve solo si tienes habilitada la configuración correspondiente. Para habilitar esta funcionalidad, contacta al soporte técnico. Ver parámetros anidados.

En la autenticación por protocolo 3DS2 en respuesta a la primera solicitud llegan los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

is3DSVer2 Boolean Valores posibles: true o false Bandera que muestra que el pago proviene de 3DS2.
Obligatorio

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSMethodUrl String [1..512] URL del servidor ACS para la recopilación de datos del navegador.
Obligatorio

threeDSMethodUrlServer String [1..512] Dirección URL del servidor 3DS para la recopilación de datos del navegador que se incluirán en AReq (Authentication Request) desde el servidor 3DS al servidor ACS.
Opcional

threeDSMethodDataPacked String [1..1024] Datos CReq (Challenge Response) en codificación Base-64 para envío al servidor ACS.
Opcional

threeDSMethodURLServerDirect String [1..512] Dirección URL 3dsmethod.do para ejecutar el método 3DS en el servidor 3DS a través de la pasarela de pago (si existe el permiso correspondiente a nivel de comerciante).

A continuación se presentan los parámetros que deben estar presentes en la respuesta, después de la solicitud repetida de pago y la necesidad de redirigir al cliente al ACS en la autenticación por protocolo 3DS2:

Obligatoriedad Nombre Tipo Descripción
Condicional

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Condicional

packedCReq String Datos empaquetados de challenge request. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Este valor debe usarse como valor del parámetro creq del enlace a ACS (acsUrl), para redirigir el cliente a ACS. Para más detalles ver Redirección a ACS.

Parámetros del bloque statusResponse:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

orderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
  • 0 - pedido registrado, pero no pagado;
  • 2 - realizada autorización completa del monto del pedido;
  • 3 - autorización cancelada;
  • 5 - iniciada autorización a través de ACS del banco emisor;
  • 6 - autorización rechazada;
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

panMaskedFrom String [1..19] Número de tarjeta enmascarado para el débito de fondos.
Opcional

panMaskedTo String [1..19] Número de tarjeta enmascarado para el depósito de fondos.
Opcional

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

creationDate Integer Fecha de registro del pedido.
Opcional

orderDescription String [1..600] Descripción del pedido transmitida al gateway de pago durante el registro.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Obligatorio

resultCode Integer Código de error al ejecutar la solicitud. Valores posibles:
  • 0 - en caso de éxito;
  • 1 - en caso de error.
Opcional

orderParams Object Objeto con atributos del vendedor. En la respuesta puede presentarse más de un bloque orderParams.
El objeto debe transmitirse de la siguiente manera: {"param":"value","param2":"value2"}.
Opcional

operationList Object Objeto que contiene información sobre las transacciones completadas en el pedido. En la respuesta puede estar presente más de un bloque operationList.
Los parámetros que se pueden transmitir están descritos abajo.
Opcional

binding String Identificador de enlace (si ya ha sido creado). Este parámetro se devuelve solo si la versión de getP2PStatus es igual a 3 o superior.
Opcional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Opcional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.
Opcional

paymentNetRefNum String [1..512] Original Network Reference Number - es un identificador que asigna la red de pagos (Mastercard, Visa, etc.) al realizar la primera transacción (por ejemplo, compra). Al ejecutar la operación inversa (devolución, contracargo, pago repetido), este número:
  • se copia de la transacción original
  • se transmite en el campo Original Network Reference Number
  • permite al sistema de pagos vincular la nueva operación con la inicial
Este parámetro está presente en la respuesta, solo si se utiliza la consulta getP2PStatus version versión 7 o superior.

Para completar la transacción utilice el método /p2p/finishThreeDsVer2.do.

Ejemplos

Ejemplo de primera solicitud en caso de autenticación por protocolo 3DS2

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
  "amount" : "50000",
  "fromCard": {
    "vendor": "APPLE",
    "paymentToken": "eyJkZXZpY2VNYW51ZmFjdHVyZXJJZGVudGlmaWVyIjoiMDUwMTEwMDMwMjczIiwiY3VycmVuY3lDb2RlIjoiOTc4IiwiYXBwbGljYXRpb25FeHBpcmF0aW9uRGF0ZSI6IjI3MDEzMSIsInBheW1lbnREYXRhIjp7Im9ubGluZVBheW1lbnRDcnlwdG9ncmFtIjoiQUc5WW5Pak1YOUJXQUFSaElJOFBBb0FCRkE9PSJ9LCJwYXltZW50RGF0YVR5cGUiOiIzRFNlY3VyZSIsInRyYW5zYWN0aW9uQW1vdW50IjoxMDAsImFwcGxpY2F0aW9uUHJpbWFyeUFjY291bnROdW1iZXIiOiI1NTU1NTU1NTU1NTU1NTk5In0=",
    "decryptedToken":true,
    "protocolVersion":"ECv1"
  },
  "toCard" : {
    "pan" : "4111111111111111"
  },
  "params" : [
        {"name" : "recipientName", "Name" : "Surname"},
        {"name" : "payerName", "value" : "Name1 Surname1"},
        {"name" : "payerCity", "value" : "City"},
        {"name" : "payerCountry", "value" : "Country"},
        {"name" : "payerPostalCode", "value" : "777777"},
        {"name" : "payerState", "value" : "State"},
        {"name" : "payerAddress", "value" : "street, 18"]
  },        

}'

Ejemplo de segunda solicitud en caso de autenticación por protocolo 3DS2

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
  "fromCard": {
    "cardholderName": "TEST CARDHOLDER",
    "cvc": "123",
    "expirationMonth": 12,
    "expirationYear": 2030,
    "pan": "5000001111111115"
  },
  "toCard": {
    "pan": "4000001111111118"
  },    
  "amount" : 50000,
  "params" : [
        {"name" : "recipientName", "Name" : "Surname"},
        {"name" : "payerName", "value" : "Name1 Surname1"},
        {"name" : "payerCity", "value" : "City"},
        {"name" : "payerCountry", "value" : "Country"},
        {"name" : "payerPostalCode", "value" : "777777"},
        {"name" : "payerState", "value" : "State"},
        {"name" : "payerAddress", "value" : "street, 18"
  "threeDSServerTransId" : "3afc168a-94b4-4eb3-8e2e-80f6c186669d",
  "threeDSVer2FinishUrl" : "https://example.com/acs2/acs/3dsMethod"
}'

Ejemplo de solicitud de transferencia AFT

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
    "username": "test_user",
    "password": "test_user_password",
    "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
    "fromCard": {
        "cardholderName": "TEST CARDHOLDER",
        "cvc": "123",
        "expirationMonth": 12,
        "expirationYear": 2030,
        "pan": "5000001111111115"
    },
    "amountInput": "1000025",
    "type": "STANDARD"
}'

Ejemplo de respuesta a la primera solicitud en caso de autenticación por protocolo 3DS2

{
  "errorCode": 0,
  "is3DSVer2": true,
  "threeDSServerTransId": "3afc168a-94b4-4eb3-8e2e-80f6c186669d",
  "threeDSMethodURL": "https://example.com/acs2/acs/3dsMethod",
  "threeDSMethodURLServer": "https://example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=3afc168a-94b4-4eb3-8e2e-80f6c186669d",
  "threeDSMethodDataPacked": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9hY3F1aXJlci5jb20vM2Rzc2VydmVyL2FwaS92MS9hY3Mvbm90aWZpY2F0aW9uP3RocmVlRFNTZXJ2ZXJUcmFuc0lEPTNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiM2FmYzE2OGEtOTRiNC00ZWIzLThlMmUtODBmNmMxODY2NjlkIn0="
}

Ejemplo de respuesta a la segunda solicitud en caso de autenticación por protocolo 3DS2

{
  "errorCode": 0,
  "info": "Your order is proceeded, redirecting...",
  "acsUrl": "https://example.com/acs2/acs/creq",
  "is3DSVer2": true,
  "packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiOWM3NTkxMmEtZTg0NC00ODgyLWI5YzctYzZmYmMzNjIyNGQ3IiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}

Transferencia P2P por vinculación

Para realizar una transferencia de tarjeta a tarjeta utilizando vinculación, utilice la solicitud https://dev.bpcbt.com/payment/rest/api/p2p/performP2PByBinding.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatorio Nombre Tipo Descripción
Obligatorio

username String [1..30] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

email String [1..40] Correo electrónico para mostrar en la página de pago. Si se configuran las notificaciones del cliente para el vendedor, es necesario especificar el correo electrónico. Ejemplo: client_mail@email.com.
Para pagos con VISA con autorización 3DS es necesario especificar el correo electrónico o el número de teléfono del titular de la tarjeta.
Condición

type String En caso de transferencia monetaria con datos solo de una tarjeta es necesario transmitir en este parámetro el valor correspondiente:
WITHOUT_FROM_CARD - sin indicación de tarjeta para el débito de fondos.
WITHOUT_TO_CARD - sin indicación de tarjeta para el abono.
Si se trata de una transferencia monetaria ordinaria de tarjeta a tarjeta, entonces aquí es necesario transmitir el siguiente valor: STANDARD.
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Opcional

amountInput Integer [0..12] Importe de la transferencia en unidades mínimas de moneda (por ejemplo, en kopeks). Si se especifica un importe en este parámetro, la transferencia se realizará por este importe (independientemente del importe transmitido en la solicitud de procesamiento del pedido).
Opcional

amountInput Integer [0..12] Importe de la transferencia en unidades mínimas de moneda (por ejemplo, en kopeks). Si se especifica un importe en este parámetro, la transferencia se realizará por este importe (independientemente del importe transmitido en la solicitud de procesamiento del pedido).
Opcional

captcha String CAPTCHA (texto destinado a distinguir la entrada humana de la entrada de máquina)
Optional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Se utiliza para transacciones AFT. Si se especifica este parámetro, la transacción será procesada dependiendo de su configuración en la pasarela de pagos: o se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente por día o suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pagos.
Opcional

threeDSSDK Boolean Valores posibles: true o false Bandera que indica que el pago proviene del 3DS SDK.
Opcional

threeDSSDKEncData String Datos cifrados del dispositivo.

Parámetro es obligatorio para SDK.

Opcional

threeDSSDKReferenceNumber String Identificador oficial del 3DS2 SDK
Opcional

threeDSSDKEphemPubKey String Parte pública de la clave efímera. Requerida para establecer sesión con ACS.

Parámetro es obligatorio para SDK.

Opcional

threeDSSDKAppId String Identificador único del SDK.

Parámetro es obligatorio para SDK.

Opcional

threeDSSDKTransId String Identificador único de la transacción en el SDK.

Parámetro es obligatorio para SDK.

Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.
Condición

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Condición

threeDSVer2MdOrder String [1..36] Número de pedido que fue registrado en la primera parte de la solicitud en el marco de la operación 3DS2. Obligatorio para la autenticación 3DS.
Si este parámetro está presente en la solicitud, entonces se utiliza mdOrder, que se transmite en el presente parámetro. En tal caso no ocurre el registro del pedido, sino que ocurre inmediatamente el pago del pedido.
Este parámetro se transmite solo al utilizar métodos de pago instantáneo, es decir, cuando el pedido se registra y se paga en el marco de una solicitud.
Opcional

bindingNotNeeded Boolean Valores permitidos:
  • true- la creación de vinculación después de realizar el pago está deshabilitada (la vinculación es el identificador del cliente transmitido en la solicitud de registro del pedido, que después de la solicitud de pago será eliminado de los detalles del pedido);
  • false – en caso de pago exitoso puede ser creada una vinculación (cumpliendo las condiciones necesarias). Este es el valor por defecto.
Condición

originalPaymentNetRefNum String Identificador de la transacción original o anterior exitosa en el sistema de pago en relación con la operación ejecutada por vinculación - TRN ID. Se transmite si el valor del parámetro tii = R,U o F.
Obligatorio al usar las vinculaciones del comerciante en transferencias por vinculación.
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Condición tii String Identificador del iniciador de transacción. Parámetro que indica qué tipo de operación realizará el iniciador (Cliente o Comercio).
Obligatorio para operaciones AFT y transferencia utilizando vinculación en el bloque fromCard o vinculación propia del comercio.
Para operaciones OCT este parámetro no se transmite.
Valores posibles
Opcional

params Object Campos de información adicional para almacenamiento posterior, se transmiten de la siguiente forma: {"param":"value","param2":"value2"}.
Estos campos pueden ser transmitidos al procesamiento del banco para su posterior visualización en los registros del banco.
Por defecto se transmiten orderNumber (número de pedido) y orderDescription (descripción del pedido).orderDescription no debe exceder 99 caracteres, no utilice los siguientes caracteres: %, +, retorno de carro \r y salto de línea
).
Para habilitar esta funcionalidad, contacte con el banco.

En el objeto params de la solicitud de transferencia de dinero de tarjeta a tarjeta pueden ser transmitidos los siguientes datos del cliente (el formato de los valores depende del método utilizado de procesamiento de datos):
  • En el parámetro payerName - nombre del remitente de dinero.
  • En el parámetro payerAddress - dirección del remitente.
  • En el parámetro payerCity - ciudad del remitente.
  • En el parámetro payerCountry - país del remitente en forma de código ISO 3166-1 alpha-3 (código de tres letras).
  • En el parámetro payerPostalCode - código postal del remitente.
  • En el parámetro payerState - región del remitente.
Para el sistema de pago Visa en la solicitud de transferencia de dinero de tarjeta a tarjeta también es necesario transmitir en el parámetro params la siguiente información (el formato de los valores se determina por el método utilizado de procesamiento de datos):
  • En el parámetro recipientName - nombre del destinatario de dinero.

Si es necesario contacte con el equipo de soporte para indicar valores permanentes de los parámetros payer* y recipientName, para no transmitirlos cada vez en todas las solicitudes.
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos de pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.
Condición billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor en el lado de la Pasarela de Pagos. Ver parámetros anidados.
Condición billingRecipientData Object Bloque de datos sobre el destinatario. Obligatorio si la función está habilitada para el vendedor en el lado de la Pasarela de Pagos. Ver parámetros anidados.
Obligatorio

fromCard Object Bloque con atributos de la tarjeta de débito. Ver parámetros anidados.
Obligatorio

toCard Object Bloque con atributos de la tarjeta de acreditación. Ver parámetros anidados.

Valores posibles del parámetro tii:

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Datos de tarjeta se guardan después de transacción Comentario
CI Iniciante - Normal (CIT) Iniciante Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de vinculación.
F Pago no programado (CIT) Subsecuente Comprador Cliente selecciona tarjeta en lugar de ingreso manual No Transacción de comercio electrónico, utilizando vinculación normal previamente guardada.

El bloque fromCard incluye los siguientes parámetros:

Obligatorio Nombre Tipo Descripción
Condición

bindingId String [1..255] Identificador de vinculación creado al pagar el pedido o utilizado para el pago. Disponible solo si el vendedor tiene permitido crear vinculaciones.
Condición

pan String [1..19] Número de tarjeta de débito de fondos monetarios.
Condición

cvc String [3] Código CVC/CVV2 en el reverso de la tarjeta de débito.
Obligatorio, si el pago no se realiza por vinculación y/o si el vendedor no tiene permiso para el pago sin CVC.
Solo se permiten dígitos.
Condición

expirationYear Integer [4] Año de vencimiento de la tarjeta de débito. Se aceptan valores de 2000 a 2200.
Condición

expirationMonth Integer [2] Mes de vencimiento de la tarjeta de débito. Valores disponibles: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta de débito.
Condición

seToken String Datos encriptados de la tarjeta.
Obligatorio, si se usa en lugar de los datos de la tarjeta. Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Más detalles sobre la generación de seToken véase aquí.
Condición threeDsAuthResult Object Bloque con datos sobre el resultado de autenticación 3 DS utilizando MPI/3DS Server del comercio.
Obligatorio para transacciones de transferencia de tarjeta a tarjeta y AFT utilizando MPI/3DS Server del comercio.
Ver parámetros anidados.

A continuación se enumeran los parámetros del bloque threeDsAuthResult (datos sobre el resultado de autenticación 3 DS).

Obligatoriedad Nombre Tipo Descripción
Opcional

cavv String [0..200] Valor de verificación de autenticación del titular de la tarjeta. Se especifica solo después del pago del pedido y en caso de tener el permiso correspondiente.
Opcional

xid String [1..80] Identificador comercial electrónico de la transacción. Se especifica solo después del pago del pedido y en caso de tener el permiso correspondiente.
Opcional

eci Integer [1..4] Indicador de comercio electrónico. Especificado solo después del pago del pedido y en caso de tener el permiso correspondiente. A continuación se proporciona la descripción de los códigos ECI.
  • ECI=01 o ECI=06 - el comerciante soporta 3-D Secure, la tarjeta de pago no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
  • ECI=02 o ECI=05 - tanto el comerciante como la tarjeta de pago soportan 3-D Secure;
  • ECI=07 - el comerciante no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
Condicional

threeDsType String Tipo de autenticación 3DS. Este parámetro es obligatorio para el pago a través de su servidor 3DS con 3DS 2. Para pagos SSL este parámetro es opcional y se determina dependiendo del valor ECI. Valores permitidos:
  • 0 - Autenticación SSL
  • 3 - Autenticación fuerte del cliente (SCA) con 3DS 2
  • 4 - Autenticación basada en riesgo (RBA) con 3DS 2
  • 5 - Intento de autenticación 3DS 2
  • 7 - Autenticación 3RI con 3DS 2
  • 8 - Intento de autenticación 3RI con 3DS 2
Opcional

threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).

El bloque toCard incluye los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condición

bindingId String [1..255] Identificador de vinculación creado al pagar el pedido o utilizado para el pago. Disponible solo si el vendedor tiene permitido crear vinculaciones.
Condición

pan String [1..19] Número de tarjeta para el depósito de fondos monetarios.
Opcional

expirationYear Integer [4] Año de vencimiento de la tarjeta de acreditación. Se aceptan valores de 2000 a 2200.
Opcional

expirationMonth Integer [2] Mes de vencimiento de la tarjeta de acreditación. Valores disponibles: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta de acreditación.
Condición

seToken String Datos cifrados de la tarjeta.
Obligatorio si se utiliza en lugar de los datos de la tarjeta. Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Más detalles sobre la generación de seToken ver aquí.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Condición billingCity String [0..50] Ciudad registrada para una tarjeta específica en el Banco Emisor. Obligatorio para transacciones AFT con Visa.
Condición billingCountry String [0..50] País registrado para una tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país. Obligatorio para transacciones AFT con Visa.
Condición billingAddressLine1 String [0..50] Dirección registrada para una tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio de transmitir para verificación AVS. Obligatorio para transacciones AFT con Visa.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Condición payerLastName String [1..64] Apellido del remitente. Obligatorio para transacciones AFT con Visa.
Condición payerFirstName String [1..35] Nombre del remitente. Obligatorio para transacciones AFT con Visa.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Condición payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD. Obligatorio para transacciones AFT con Visa.

A continuación se presentan los parámetros del bloque billingRecipientData (datos sobre el destinatario).

Obligatoriedad Nombre Tipo Descripción
Opcional

recipientCity String [0..40] Código de ciudad del destinatario. Formato ISO 3166-1 alpha-3. Puede contener letras solo del alfabeto latino.
Condición

recipientCountry String [0..50] Código del país del destinatario. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de país de dos/tres letras. Obligatorio para transacciones AFT con Mastercard.
Opcional

recipientAddressLine1 String [0..50] Dirección del destinatario. Puede contener letras solo del alfabeto latino.
Opcional

recipientPostalCode String [0..9] Código postal del destinatario.
Opcional

recipientState String [0..50] Código del estado del destinatario. Formato: valor completo del código ISO 3166-2, su parte o denominación del estado/región. Puede contener letras únicamente del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Condición

recipientAccount String [0..32] Número de cuenta del destinatario. Obligatorio para transacciones AFT con Mastercard.
Condición

recipientAccountNumberType Integer [1..2] Tipo de cuenta del destinatario. Valores posibles:
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

Obligatorio para transacciones AFT con Mastercard.
Obligatorio

recipientLastName String [0..35] Apellido del destinatario.
Obligatorio

recipientFirstName String [0..35] Nombre del destinatario.
Opcional

recipientMiddleName String [0..35] Nombre patronímico del destinatario.
Opcional

recipientCombinedName String [0..99] Nombre completo del destinatario.
Opcional

recipientIdType String [1..8] Tipo de documento de identificación proporcionado del destinatario.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta ID de ciudadano
  • IDTP5 - Certificado de conducción de negocio
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marinero
Opcional

recipientIdNumber String [1..99] Número del documento de identificación proporcionado del destinatario.
Opcional

recipientBirthday String [1..20] Fecha de cumpleaños del destinatario en formato YYYYMMDD.

Al autenticar por protocolo 3DS2 también se transmiten los siguientes parámetros:

Obligatorio Nombre Tipo Descripción
Opcional

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

info String Resultado del intento de transferencia de fondos.

Valor en caso de transferencia exitosa: "Su pago ha sido procesado, se está realizando la redirección..."

Valor en caso de error: "Se está realizando la redirección..."
Condición

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Condición

paReq String [1..255] PAReq (Payment Authentication Request) — mensaje que debe enviarse al ACS junto con la redirección. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección al ACS. Este mensaje contiene datos en codificación Base64, necesarios para la autenticación del portador de la tarjeta. Para más detalles ver Redirección al ACS.
Condición

termUrl String [1..512] En caso de respuesta exitosa en caso de pago 3D-Secure. Esta es la URL a la cual ACS redirige al portador de la tarjeta después de la autenticación. Para más detalles consulte Redirección al ACS.
Condición statusResponse Object Parámetros del estado de respuesta. Este bloque se devuelve solo si tiene habilitada la configuración correspondiente. Para habilitar esta funcionalidad, contacte al soporte técnico. Ver parámetros anidados.

Al autenticar por protocolo 3DS2 en respuesta a la primera solicitud llegan los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

is3DSVer2 Boolean Valores posibles: true o false Bandera que muestra que el pago proviene de 3DS2.
Obligatorio

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSMethodUrl String [1..512] URL del servidor ACS para la recopilación de datos del navegador.
Obligatorio

threeDSMethodUrlServer String [1..512] Dirección URL del servidor 3DS para la recopilación de datos del navegador que se incluirán en AReq (Authentication Request) desde el servidor 3DS al servidor ACS.
Opcional

threeDSMethodDataPacked String [1..1024] Datos CReq (Challenge Response) en codificación Base-64 para envío al servidor ACS.
Opcional

threeDSMethodURLServerDirect String [1..512] Dirección URL 3dsmethod.do para ejecutar el método 3DS en el servidor 3DS a través de la pasarela de pago (si existe el permiso correspondiente a nivel de comerciante).

A continuación se presentan los parámetros que deben estar presentes en la respuesta, después de la solicitud repetida de pago y la necesidad de redirigir al cliente al ACS al autenticar por protocolo 3DS2:

Obligatoriedad Nombre Tipo Descripción
Condición

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Condición

packedCReq String Datos empaquetados de challenge request. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Este valor debe usarse como valor del parámetro creq del enlace a ACS (acsUrl), para redirigir el cliente a ACS. Para más detalles ver Redirección a ACS.

Parámetros del bloque statusResponse:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

orderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
  • 0 - pedido registrado, pero no pagado;
  • 2 - realizada autorización completa del monto del pedido;
  • 3 - autorización cancelada;
  • 5 - iniciada autorización a través de ACS del banco emisor;
  • 6 - autorización rechazada;
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

panMaskedFrom String [1..19] Número de tarjeta enmascarado para el débito de fondos.
Opcional

panMaskedTo String [1..19] Número de tarjeta enmascarado para el depósito de fondos.
Opcional

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

creationDate Integer Fecha de registro del pedido.
Opcional

orderDescription String [1..600] Descripción del pedido transmitida al gateway de pago durante el registro.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Obligatorio

resultCode Integer Código de error al ejecutar la solicitud. Valores posibles:
  • 0 - en caso de éxito;
  • 1 - en caso de error.
Opcional

orderParams Object Objeto con atributos del vendedor. En la respuesta puede presentarse más de un bloque orderParams.
El objeto debe transmitirse de la siguiente manera: {"param":"value","param2":"value2"}.
Opcional

operationList Object Objeto que contiene información sobre las transacciones completadas en el pedido. En la respuesta puede estar presente más de un bloque operationList.
Los parámetros que se pueden transmitir están descritos abajo.
Opcional

binding String Identificador de enlace (si ya ha sido creado). Este parámetro se devuelve solo si la versión de getP2PStatus es igual a 3 o superior.
Opcional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Opcional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.
Opcional

paymentNetRefNum String [1..512] Original Network Reference Number - es un identificador que asigna la red de pagos (Mastercard, Visa, etc.) al realizar la primera transacción (por ejemplo, compra). Al ejecutar la operación inversa (devolución, contracargo, pago repetido), este número:
  • se copia de la transacción original
  • se transmite en el campo Original Network Reference Number
  • permite al sistema de pagos vincular la nueva operación con la inicial
Este parámetro está presente en la respuesta, solo si se utiliza la consulta getP2PStatus version versión 7 o superior.

Ejemplos

Ejemplo de solicitud

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2PByBinding.do'
-H 'Content-Type: application/json'
--data-raw '{ 
  "amountInput" : 1000,
  "fromCard" : {
     "seToken": "ofVx1r3aIJ3Mlx3nkfeOIJgFOnwfsgFK+V6Yzm+KxJgsq19l74GChhX0We/LEFq78Rhn9uFAEZGdeyDhnIc/KfuvObf0EzoDA65Uj1Z8FjwWyjnEwTBHZL4KmdFBCSk8jLxHt70mXwyjiHYyCVH1fT/UVOnsrkZVGrqmEG4MTi5dX9Znzf24DwRg4iezvdT8vf0dUW5lJdvY1tgOsOnBulwy6kH/YbHVsnR6yxO6d6IsdnT5f8PxaB+7ZyUqgrd6VA88FGJKJgdoxk4721pqKSG5dYroLJG96s23EDJ2Hpi4e9wU2rP7E6dlFw+qzATqX/eaJbaQ9eakkdMWnkj7aQ=="
  },
  "toCard": {
        "cardholderName": "TEST CARDHOLDER",
        "expirationMonth": 12,
        "expirationYear": 2029,
        "pan": "5555555555555599"
  },
  "orderId" : "3dbaf8bb-1d68-76b3-b4e6-784700f26b04",
  "password" : "test_user_password",
  "type" : "WITHOUT_TO_CARD",
  "username" : "test_user"
}'

Ejemplo de primera solicitud en caso de autenticación por protocolo 3DS2

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2PByBinding.do'
-H 'Content-Type: application/json'
--data-raw '{ 
  "amountInput" : 1000,
  "currency" : "978",
  "fromCard" : {
    "bindingId" : "fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc"
  },
  "orderId" : "38b7a9e0-7cfa-46f7-8655-f206a8898e7a",
  "password" : "test_user_password",
  "type" : "WITHOUT_TO_CARD",
  "username" : "test_user",
  "params" : {
    "name" : "payerAddress",
    "value" : "payer Address"
  }
}'

Ejemplo de segunda solicitud en caso de autenticación por protocolo 3DS2

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/performP2PByBinding.do'
-H 'Content-Type: application/json'
--data-raw '{ 
  "amountInput" : 1000,
  "currency" : "978",
  "fromCard" : {
    "bindingId" : "fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc"
  },
  "orderId" : "38b7a9e0-7cfa-46f7-8655-f206a8898e7a",
  "password" : "test_user_password",
  "type" : "WITHOUT_TO_CARD",
  "username" : "test_user",
  "params" : {
    "name" : "payerAddress",
    "value" : "payer Address"
  },
  "threeDSServerTransId" : "f44d6d21-1874-45a5-aeb0-1c710dd6e134",
  "threeDSVer2FinishUrl" : "https://example.com/acs2/acs/3dsMethod"
}'

Ejemplo de respuesta

{
  "errorCode" : 0,
  "errorMessage" : "Successful",
  "info" : "Your order is proceeded, redirecting...",
  "redirect" : "https://example.com/?orderId=47743354-be15-7c70-b9ef-4bfc482e68dc&lang=en",
  "is3DSVer2" : false
}

Ejemplo de respuesta a la primera solicitud en caso de autenticación por protocolo 3DS2

{
  "errorCode": 0,
  "is3DSVer2": true,
  "threeDSServerTransId": "f44d6d21-1874-45a5-aeb0-1c710dd6e134",
  "threeDSMethodURLServer": "https://example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=f44d6d21-1874-45a5-aeb0-1c710dd6e134",
}

Ejemplo de respuesta a la segunda solicitud en caso de autenticación por protocolo 3DS2

{
  "errorCode": 0,
  "info": "Your order is proceeded, redirecting...",
  "acsUrl": "https://example.com/acs2/acs/creq",
  "is3DSVer2": true,
  "packedCReq" : "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjVmMzEyMjdlLTljZmQtNDQwYi1hNDNjLTE4NjljMzNhNGI5YiIsImFjc1RyYW5zSUQiOiI5YTQyYzQ4ZC1hNWRiLTQ3NjEtYmI4Mi05ZmY5MmM0NzZiM2QiLCJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDQiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0="
}

Transferencia instantánea P2P

Para realizar una transferencia instantánea P2P sin invocar una solicitud de registro de pedido, utilice la solicitud https://dev.bpcbt.com/payment/rest/api/p2p/instantPerformP2P.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

La estructura de la solicitud instantPerformP2P.do presupone la presencia del bloque fromCard para transmitir los atributos de la tarjeta para el cargo y del bloque toCard para transmitir los atributos de la tarjeta para el abono. Dependiendo de los procesos de negocio definidos para el banco y la tienda, al realizar la transferencia de tarjeta a tarjeta pueden ser posibles las siguientes variantes.

Parámetros de la solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

username String [1..30] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Obligatorio

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

clientId String [0..255] Número de cliente (ID) en el sistema del comerciante — hasta 255 caracteres. Se utiliza para implementar la funcionalidad de vinculaciones. Puede devolverse en la respuesta, si al comerciante se le permite crear vinculaciones.
La especificación de este parámetro al procesar pagos por vinculación es obligatoria. En caso contrario, el pago será imposible.
Opcional

bindingId String [1..255] Identificador de una vinculación ya existente (identificador de tarjeta tokenizada por el gateway). Solo se puede usar si el comerciante tiene permiso para trabajar con vinculaciones. Si este parámetro se transmite en esta solicitud, significa que:
  • Este pedido solo se puede pagar usando la vinculación;
  • El pagador será redirigido a la página de pago donde solo se requiere ingresar el CVC.
Opcional

creditBindingId String [0..255] Identificador de vinculación de tarjeta para acreditación. Se utiliza en transferencias de tarjeta a tarjeta, cuando se conoce de antemano la tarjeta del destinatario. Este parámetro debe ser transmitido primero en la solicitud de registro de pago (registerP2P.do - aquí también debe ser transmitido el parámetro clientId), luego en la solicitud de transferencia de fondos por vinculación (performP2PByBinding.do - el valor del parámetro creditBindingId, transmitido en registerP2P.do, debe ser transmitido en el parámetro bindingId en el bloque toCard).
Opcional

email String [1..40] Correo electrónico del pagador.
Obligatorio

amount String [0..12] Importe de la transferencia en unidades mínimas de moneda (por ejemplo, en kopeks).
Este parámetro se transmite si el pagador decide cambiar el importe de la transferencia al realizar la transferencia monetaria.
Obligatorio

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

type String En caso de transferencia monetaria con datos solo de una tarjeta es necesario transmitir en este parámetro el valor correspondiente:
WITHOUT_FROM_CARD - sin indicación de tarjeta para el débito de fondos.
WITHOUT_TO_CARD - sin indicación de tarjeta para el abono.
Si se trata de una transferencia monetaria ordinaria de tarjeta a tarjeta, entonces aquí es necesario transmitir el siguiente valor: STANDARD.
Opcional

orderDescription String [1..600] Descripción del pedido transmitida al gateway de pago durante el registro.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

params Object Campos de información adicional para almacenamiento posterior, se transmiten de la siguiente forma:
"params": [ {"name": "param1", "value": "value1"}, {"name": "param2", "value": "value2"} ].
Estos campos pueden ser transmitidos al procesamiento del banco para su posterior visualización en los registros del banco.
Por defecto se transmiten orderNumber (número de pedido) y orderDescription (descripción del pedido).orderDescription no debe exceder 99 caracteres, no utilice los siguientes caracteres: %, +, retorno de carro \r y salto de línea
).

Para habilitar esta funcionalidad, contacte al banco.
Opcional

feeInput Integer [0..8] Tamaño de la comisión en unidades mínimas de moneda. La funcionalidad debe estar habilitada a nivel del comerciante en el gateway.
Obligatorio

returnUrl String [1..512] Dirección a la que se requiere redirigir al usuario en caso de pago exitoso. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Opcional

failUrl String [1..512] Dirección a la que se debe redirigir al usuario en caso de pago fallido. La dirección debe especificarse completamente, incluyendo el protocolo utilizado (por ejemplo, https://mybestmerchantreturnurl.com en lugar de mybestmerchantreturnurl.com). De lo contrario, el usuario será redirigido a una dirección del siguiente tipo: https://dev.bpcbt.com/payment/<merchant_address>.
Obligatorio

transactionTypeIndicator String Se utiliza en tipos de transacciones unidireccionales.
Son posibles los siguientes valores:
  • A - Transferencia de tarjeta a tarjeta de un mismo propietario (de cuenta a cuenta)
  • B - Transferencia con el propósito de adquisición de criptomoneda
  • C - Transferencia para fines de compra de criptomoneda
  • D - Pago de fondos
  • F - Transferencia para apuestas en juegos de azar
  • G - Pago en juegos de azar en línea
  • H - Retiro de fondos (Cash Out). Retiro de fondos por agente.
  • I - Pagos gubernamentales
  • J - Transferencia de dinero iniciada por el banco
  • L - Transferencia para fines de liquidación de cuentas de tarjeta de crédito
  • O - Transferencia para fines de pago de deuda
  • P - Transferencia de tarjeta a tarjeta de diferentes propietarios
  • W - Transferencia a cuenta propia de billetera digital por etapas para pago
Condicional

features Object Contenedor para el parámetro feature, obligatorio para operaciones unidireccionales.
Si se ejecuta una operación AFT (transferencia de tarjeta a cuenta) - en el parámetro feature debe pasarse WITHOUT_TO_CARD. Además, si después de esta operación AFT se prevé ejecutar una operación OCT, es necesario pasar el valor OCT_EXPECTED.
Ejemplo: "features" : { "feature" : ["WITHOUT_TO_CARD"] }
Si se ejecuta una operación OCT (transferencia de cuenta a tarjeta) - en el parámetro feature debe pasarse WITHOUT_FROM_CARD.
Ejemplo: "features" : { "feature" : ["WITHOUT_FROM_CARD"] }
Opcional

mcc Integer [4] Merchant Category Code (código de categoría del comerciante). Para transmitir este parámetro es necesario un permiso especial. Solo se pueden usar valores de la lista permitida de MCC. Para obtener información más detallada, contacte al soporte técnico.
Opcional

merchantLogin String [1..255] Para registrar un pedido en nombre de otro comerciante, especifica su login (para la cuenta API) en este parámetro.
Se puede usar solo si tienes permiso para ver las transacciones de otros vendedores o si el vendedor especificado es tu vendedor subsidiario.
Opcional

dynamicCallbackUrl String [1..512] Parámetro para transmitir la dirección dinámica para recibir notificaciones callback de "pago" por pedido, activadas para el comerciante (autorización exitosa, débito exitoso, devolución, cancelación, rechazo de pago por timeout, rechazo de pago card present).
Las notificaciones callback "no de pago" (activación/desactivación de vinculación, creación de vinculación), serán enviadas a la dirección callback estática.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Opcional

type String En caso de transferencia monetaria con datos solo de una tarjeta es necesario transmitir en este parámetro el valor correspondiente:
WITHOUT_FROM_CARD - sin indicación de tarjeta para el débito de fondos.
WITHOUT_TO_CARD - sin indicación de tarjeta para el abono.
Si se trata de una transferencia monetaria ordinaria de tarjeta a tarjeta, entonces aquí es necesario transmitir el siguiente valor: STANDARD.
Opcional

captcha String CAPTCHA (texto destinado a distinguir la entrada humana de la entrada de máquina)
Opcional

threeDSSDK Boolean Valores posibles: true o false Bandera que indica que el pago proviene del 3DS SDK.
Opcional

threeDSSDKEncData String Datos cifrados del dispositivo.

Parámetro es obligatorio para SDK.

Opcional

threeDSSDKReferenceNumber String Identificador oficial del 3DS2 SDK
Opcional

threeDSSDKEphemPubKey String Parte pública de la clave efímera. Requerida para establecer sesión con ACS.

Parámetro es obligatorio para SDK.

Opcional

threeDSSDKAppId String Identificador único del SDK.

Parámetro es obligatorio para SDK.

Opcional

threeDSSDKTransId String Identificador único de la transacción en el SDK.

Parámetro es obligatorio para SDK.

Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.
Condicional

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Condicional

threeDSVer2MdOrder String [1..36] Número de pedido que fue registrado en la primera parte de la solicitud en el marco de la operación 3DS2. Obligatorio para la autenticación 3DS.
Si este parámetro está presente en la solicitud, entonces se utiliza mdOrder, que se transmite en el presente parámetro. En tal caso no ocurre el registro del pedido, sino que ocurre inmediatamente el pago del pedido.
Este parámetro se transmite solo al utilizar métodos de pago instantáneo, es decir, cuando el pedido se registra y se paga en el marco de una solicitud.
Opcional

bindingNotNeeded Boolean Valores permitidos:
  • true- la creación de vinculación después de realizar el pago está deshabilitada (la vinculación es el identificador del cliente transmitido en la solicitud de registro del pedido, que después de la solicitud de pago será eliminado de los detalles del pedido);
  • false – en caso de pago exitoso puede ser creada una vinculación (cumpliendo las condiciones necesarias). Este es el valor por defecto.
Opcional

externalScaExemptionIndicator String Tipo de excepción SCA (Strong Customer Authentication). Se utiliza para transacciones AFT. Si se especifica este parámetro, la transacción será procesada dependiendo de su configuración en la pasarela de pagos: o se ejecutará una operación SSL forzada, o el banco emisor recibirá información sobre la excepción SCA y tomará la decisión de realizar la operación con autenticación 3DS o sin ella (para obtener información detallada contacte con nuestro servicio de soporte). Valores permitidos:
  • LVP – transacción tipo Low Value Payments. La transacción puede ser clasificada como transacción de bajo nivel de riesgo basándose en el monto de la transacción, cantidad de transacciones del cliente por día o suma diaria total de pagos del cliente.
  • TRA – transacción tipo Transaction Risk Analysis, es decir, transacción que pasó exitosamente la verificación antifraude.

Para transmitir este parámetro debe tener derechos suficientes en la pasarela de pagos.
Condicional

originalPaymentNetRefNum String Identificador de la transacción original o anterior exitosa en el sistema de pago en relación con la operación ejecutada por vinculación - TRN ID. Se transmite si el valor del parámetro tii = R,U o F.
Obligatorio al usar las vinculaciones del comerciante en transferencias por vinculación.
Condicional tii String Identificador del iniciador de la transacción. Parámetro que indica qué tipo de operación ejecutará el iniciador (Cliente o Comerciante).
Obligatorio para operaciones AFT y transferencia utilizando vinculación en el bloque fromCard o vinculación propia del comerciante.
Para operaciones OCT este parámetro no se transmite.
Valores posibles
Opcional shippingPayerData Object Objeto que contiene datos sobre la entrega al cliente. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional preOrderPayerData Object Objeto que contiene datos del pedido preliminar. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional orderPayerData Object Objeto que contiene datos sobre el pagador del pedido. Este parámetro se utiliza para la posterior autenticación 3DS del cliente. Ver parámetros anidados.
Opcional

billingAndShippingAddressMatchIndicator String [1] Indicador de coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío. Este parámetro se utiliza para la posterior autenticación 3DS del cliente.
Valores posibles:
  • Y - coincidencia de la dirección de facturación del titular de la tarjeta y la dirección de envío;
  • N - la dirección de facturación del titular de la tarjeta y la dirección de envío no coinciden.
Condición billingPayerData Object Bloque con datos de registro del cliente (dirección, código postal), necesario para pasar la verificación de dirección en el marco de los servicios AVS/AVV. Obligatorio si la función está habilitada para el vendedor en el lado de la Pasarela de Pago. Ver parámetros anidados.
Condición billingRecipientData Object Bloque con datos sobre el destinatario. Obligatorio si la función está habilitada para el vendedor en el lado de la Pasarela de Pago. Ver parámetros anidados.
Obligatorio

fromCard Object Bloque con atributos de tarjeta de débito. Ver parámetros anidados.
Obligatorio

toCard Object Bloque con atributos de la tarjeta de acreditación. Ver parámetros anidados.
Opcional

debitMdOrder String [1..36] Número único de pedido para el cual se ejecutó la transferencia AFT en iPay. Este parámetro se utiliza para operaciones OCT en transferencias P2P (AFT+OCT).

Valores posibles del parámetro tii:

Valor tii Descripción Tipo de transacción Iniciador de transacción Datos de tarjeta para transacción Datos de tarjeta se guardan después de transacción Comentario
CI Iniciante - Normal (CIT) Iniciante Comprador Ingresado por comprador Transacción de comercio electrónico con guardado de vinculación.
F Pago no programado (CIT) Subsecuente Comprador Cliente selecciona tarjeta en lugar de ingreso manual No Transacción de comercio electrónico, utilizando vinculación normal previamente guardada.

Descripción de los parámetros del objeto shippingPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional shippingCity String [1..50] Ciudad del cliente (de la dirección de entrega)
Opcional shippingCountry String [1..50] País del cliente
Opcional shippingAddressLine1 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine2 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingAddressLine3 String [1..50] Dirección principal del cliente (de la dirección de entrega)
Opcional shippingPostalCode String [1..16] Código postal del cliente para entrega
Opcional shippingState String [1..50] Estado/región del comprador (de la dirección de entrega)
Opcional shippingMethodIndicator Integer [2] Indicador del método de entrega.
Valores posibles:
  • 01 - entrega a la dirección de pago del titular de la tarjeta.
  • 02 - entrega a otra dirección verificada por el Comerciante.
  • 03 - entrega a una dirección diferente de la dirección principal del titular de la tarjeta.
  • 04 - envío a la tienda/recogida en tienda (la dirección de la tienda debe especificarse en los parámetros de entrega correspondientes)
  • 05 - Distribución digital (incluye servicios en línea y tarjetas de regalo electrónicas)
  • 06 - billetes de viaje y eventos que no se pueden entregar.
  • 07 - Otros (por ejemplo, juegos, productos digitales no entregables, suscripciones digitales, etc.)
Opcional deliveryTimeframe Integer [2] Plazo de entrega del producto.
Valores posibles:
  • 01 - distribución digital
  • 02 - entrega el mismo día
  • 03 - entrega al día siguiente
  • 04 - entrega dentro de 2 días después del pago y más tarde.
Opcional deliveryEmail String [1..254] Dirección de correo electrónico de destino para la entrega de distribución digital. Es preferible transmitir el correo electrónico en el parámetro de solicitud independiente email (pero si lo transmite en este bloque, se aplicarán las mismas reglas).

Descripción de los parámetros del objeto preOrderPayerData:

Obligatoriedad Nombre Tipo Descripción
Opcional preOrderDate String [10] Fecha esperada de entrega (para compras de preorden) en formato AAAAMMDD.
Opcional preOrderPurchaseInd Integer [2] Indicador de colocación por el cliente de un pedido para entrega disponible o futura.
Valores posibles:
  • 01 - entrega posible;
  • 02 - entrega futura
Opcional reorderItemsInd Integer [2] Indicador de que el cliente vuelve a reservar una entrega previamente pagada como parte de un nuevo pedido.
Valores posibles:
  • 01 - pedido colocado por primera vez;
  • 02 - pedido repetido

Descripción de los parámetros del objeto orderPayerData.

Obligatoriedad Nombre Tipo Descripción
Opcional homePhone String [7..15] Teléfono de casa del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional workPhone String [7..15] Teléfono de trabajo del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Opcional mobilePhone String [7..15] Número de teléfono móvil del propietario de la tarjeta. Es necesario indicar siempre el código del país, pero el signo + o 00 al inicio se puede indicar u omitir. El número debe tener una longitud de 7 a 15 dígitos. De este modo, son posibles los siguientes valores:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Para los pagos por VISA con autorización 3DS es necesario indicar el correo electrónico o el número de teléfono del propietario de la tarjeta. Si tiene configurada la visualización del número de teléfono en la página de pago y usted indicó un número de teléfono incorrecto, el cliente podrá corregirlo en la página de pago.

A continuación se muestran los parámetros del bloque billingPayerData (datos sobre la dirección de registro del cliente).

Obligatoriedad Nombre Tipo Descripción
Condición billingCity String [0..50] Ciudad registrada para una tarjeta específica en el Banco Emisor. Obligatorio para transacciones AFT con Visa.
Condición billingCountry String [0..50] País registrado para una tarjeta específica del banco emisor. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de dos/tres letras del país. Obligatorio para transacciones AFT con Visa.
Condición billingAddressLine1 String [0..50] Dirección registrada para una tarjeta específica en el Banco Emisor (dirección del pagador). Línea 1. Obligatorio de transmitir para verificación AVS. Obligatorio para transacciones AFT con Visa.
Opcional

billingAddressLine2 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 2.
Opcional

billingAddressLine3 String [0..50] Dirección registrada para la tarjeta específica en el Banco Emisor. Línea 3.
Opcional

billingPostalCode String [0..9] Código postal registrado para la tarjeta específica en el Banco Emisor. Obligatorio para la verificación AVS.
Opcional

billingState String [0..50] Estado registrado para la tarjeta específica en el Banco Emisor. Formato: valor completo del código ISO 3166-2, su parte o nombre del estado/región. Puede contener letras solo del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Obligatorio

payerAccount String [1..32] Número de cuenta del remitente.
Condición payerLastName String [1..64] Apellido del remitente. Obligatorio para transacciones AFT con Visa.
Condición payerFirstName String [1..35] Nombre del remitente. Obligatorio para transacciones AFT con Visa.
Opcional

payerMiddleName String [1..35] Patronímico del remitente.
Opcional

payerCombinedName String [1..99] Nombre completo del remitente.
Opcional

payerIdType String [1..8] Tipo de documento de identificación proporcionado del remitente.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta de identidad de ciudadano
  • IDTP5 - Certificado de conducción de negocios
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marino
Opcional

payerIdNumber String [1..99] Número del documento de identificación proporcionado del remitente.
Condición payerBirthday String [1..20] Fecha de nacimiento del remitente en formato YYYYMMDD. Obligatorio para transacciones AFT con Visa.

A continuación se presentan los parámetros del bloque billingRecipientData (datos sobre el destinatario).

Obligatoriedad Nombre Tipo Descripción
Opcional

recipientCity String [0..40] Código de ciudad del destinatario. Formato ISO 3166-1 alpha-3. Puede contener letras solo del alfabeto latino.
Condición

recipientCountry String [0..50] Código del país del destinatario. Formato: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) o nombre del país. Recomendamos transmitir el código ISO de país de dos/tres letras. Obligatorio para transacciones AFT con Mastercard.
Opcional

recipientAddressLine1 String [0..50] Dirección del destinatario. Puede contener letras solo del alfabeto latino.
Opcional

recipientPostalCode String [0..9] Código postal del destinatario.
Opcional

recipientState String [0..50] Código del estado del destinatario. Formato: valor completo del código ISO 3166-2, su parte o denominación del estado/región. Puede contener letras únicamente del alfabeto latino. Recomendamos transmitir el código ISO de dos letras del estado/región.
Condición

recipientAccount String [0..32] Número de cuenta del destinatario. Obligatorio para transacciones AFT con Mastercard.
Condición

recipientAccountNumberType Integer [1..2] Tipo de cuenta del destinatario. Valores posibles:
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

Obligatorio para transacciones AFT con Mastercard.
Obligatorio

recipientLastName String [0..35] Apellido del destinatario.
Obligatorio

recipientFirstName String [0..35] Nombre del destinatario.
Opcional

recipientMiddleName String [0..35] Nombre patronímico del destinatario.
Opcional

recipientCombinedName String [0..99] Nombre completo del destinatario.
Opcional

recipientIdType String [1..8] Tipo de documento de identificación proporcionado del destinatario.
Valores posibles:
  • IDTP1 - Pasaporte
  • IDTP2 - Licencia de conducir
  • IDTP3 - Tarjeta social
  • IDTP4 - Tarjeta ID de ciudadano
  • IDTP5 - Certificado de conducción de negocio
  • IDTP6 - Certificado de refugiado
  • IDTP7 - Permiso de residencia
  • IDTP8 - Pasaporte extranjero
  • IDTP9 - Pasaporte oficial
  • IDTP10 - Pasaporte temporal
  • IDTP11 - Pasaporte de marinero
Opcional

recipientIdNumber String [1..99] Número del documento de identificación proporcionado del destinatario.
Opcional

recipientBirthday String [1..20] Fecha de cumpleaños del destinatario en formato YYYYMMDD.

El bloque fromCard incluye los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condición

pan String [1..19] Número de tarjeta de débito de fondos monetarios.
Condición

cvc String [3] Código CVC/CVV2 en el reverso de la tarjeta de débito.
Obligatorio, si el pago no se realiza por vinculación y/o si el vendedor no tiene permiso para el pago sin CVC.
Solo se permiten dígitos.
Condición

expirationYear Integer [4] Año de vencimiento de la tarjeta de débito. Se aceptan valores de 2000 a 2200.
Condición

expirationMonth Integer [2] Mes de vencimiento de la tarjeta de débito. Valores disponibles: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta de débito.
Condición

seToken String Datos encriptados de la tarjeta.
Obligatorio, si se usa en lugar de los datos de la tarjeta. Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Más detalles sobre la generación de seToken véase aquí.
Condición threeDsAuthResult Object Bloque con datos sobre el resultado de autenticación 3 DS utilizando MPI/3DS Server del comerciante.
Obligatorio para transacciones de transferencia de tarjeta a tarjeta y AFT utilizando MPI/3DS Server del comerciante.
Ver parámetros anidados.

Al realizar pagos utilizando tokens (APPLE, SAMSUNG, GOOGLE) en lugar de los datos de la tarjeta en el bloque fromCard se transmite:

Obligatoriedad Nombre Tipo Descripción
Condición

vendor String Parámetro utilizado al realizar pagos mediante tokens. Como valor se transmite la denominación del proveedor del servicio de pago: APPLE, GOOGLE, SAMSUNG.
Este parámetro debe transmitirse simultáneamente con el parámetro paymentToken (valor del token).
Este parámetro no puede estar presente simultáneamente con los parámetros: pan, cvc, expiry, bindingId, seToken.
Condición

paymentToken String [1..8192] Valor del token del proveedor especificado en el parámetro vendor (APPLE, GOOGLE, SAMSUNG). Si vendor está especificado, el parámetro es obligatorio.
Este parámetro no puede estar presente simultáneamente con los parámetros: pan, cvc, expiry, bindingId, seToken.
No obligatorio

decryptedToken Boolean Token descifrado para pagos a través de vendedores (ApplePay, GooglePay, etc.). Valores posibles:
  • true – para token descifrado;
  • false – para token cifrado.

Si no se pasa este parámetro, por defecto se considerará que se pasó decryptedToken = false.
No obligatorio

protocolVersion String Versión del protocolo definida por Google para el token de pago: ECv1 (por defecto) o ECv2

A continuación se enumeran los parámetros del bloque threeDsAuthResult (datos sobre el resultado de autenticación 3 DS).

Obligatoriedad Nombre Tipo Descripción
Opcional

cavv String [0..200] Valor de verificación de autenticación del titular de la tarjeta. Se especifica solo después del pago del pedido y en caso de tener el permiso correspondiente.
Opcional

xid String [1..80] Identificador comercial electrónico de la transacción. Se especifica solo después del pago del pedido y en caso de tener el permiso correspondiente.
Opcional

eci Integer [1..4] Indicador de comercio electrónico. Especificado solo después del pago del pedido y en caso de tener el permiso correspondiente. A continuación se proporciona la descripción de los códigos ECI.
  • ECI=01 o ECI=06 - el comerciante soporta 3-D Secure, la tarjeta de pago no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
  • ECI=02 o ECI=05 - tanto el comerciante como la tarjeta de pago soportan 3-D Secure;
  • ECI=07 - el comerciante no soporta 3-D Secure, el pago se procesa basándose en el código CVV2/CVC.
Condicional

threeDsType String Tipo de autenticación 3DS. Este parámetro es obligatorio para el pago a través de su servidor 3DS con 3DS 2. Para pagos SSL este parámetro es opcional y se determina dependiendo del valor ECI. Valores permitidos:
  • 0 - Autenticación SSL
  • 3 - Autenticación fuerte del cliente (SCA) con 3DS 2
  • 4 - Autenticación basada en riesgo (RBA) con 3DS 2
  • 5 - Intento de autenticación 3DS 2
  • 7 - Autenticación 3RI con 3DS 2
  • 8 - Intento de autenticación 3RI con 3DS 2
Opcional

threeDSProtocolVersion String Versión del protocolo 3DS. Valores posibles: "2.1.0", "2.2.0" para 3DS2.
Si en la solicitud no se transmite threeDSProtocolVersion, entonces para la autorización 3D Secure se utilizará el valor por defecto (2.1.0 - para 3DS 2).

El bloque toCard incluye los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Condición

pan String [1..19]
Opcional

expirationYear Integer [4] Año de vencimiento de la tarjeta de acreditación. Se aceptan valores de 2000 a 2200.
Opcional

expirationMonth Integer [2] Mes de vencimiento de la tarjeta de acreditación. Valores disponibles: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Opcional

cardholderName String [1..26] Nombre del titular de la tarjeta de acreditación.
Condición

seToken String Datos cifrados de la tarjeta.
Obligatorio si se utiliza en lugar de los datos de la tarjeta. Parámetros obligatorios para la cadena seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Más detalles sobre la generación de seToken ver aquí.

En algunos casos, la solicitud para transacción AFT incluye el bloque toCard con bloque anidado replacementData con datos para reemplazar el destino de transferencia en transacciones AFT. Contiene el número de tarjeta y el número de cuenta de tránsito del destinatario. Algunos sistemas de pago requieren la transmisión de estos datos en transacciones AFT, es decir, estos datos se utilizan para autenticación en ACS durante la autorización 3DS.
Para utilizar este bloque, el comerciante necesita tener permiso especial (consulte con el equipo de soporte).

A continuación se enumeran los parámetros del bloque replacementData (datos para reemplazar el destino en transacciones AFT):

Obligatoriedad Nombre Tipo Descripción
Opcional card String [1..19] Número de tarjeta del destinatario, si es conocido al momento de la transferencia.
Opcional account String [1..30] Número de cuenta de tránsito (cualquier número proporcionado por el banco).

Durante la autenticación por protocolo 3DS2 también se transmiten los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Opcional

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSVer2FinishUrl String [1..512] URL al que el cliente debe ser redirigido después de la autenticación en el servidor ACS.
Opcional

threeDSMethodNotificationUrl String [1..512] URL para envío de notificación sobre la verificación completada en ACS.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

info String Resultado del intento de transferencia de fondos.

Valor en caso de transferencia exitosa: "Su pago ha sido procesado, se está realizando la redirección..."

Valor en caso de error: "Se está realizando la redirección..."
Opcional

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Opcional

redirect String [1..512] Este parámetro se devuelve si el pago fue exitoso y no se realizó una verificación de la tarjeta para su participación en 3-D Secure. Los vendedores pueden usarlo si quieren redirigir al usuario a la página del gateway de pago. Si el vendedor usa su propia página, este valor puede ignorarse.
Opcional

threeDSSDKKey String Clave de cifrado de datos del dispositivo.

Parámetro es obligatorio para SDK.

Opcional

threeDSAcsTransactionId String Identificador de transacción 3DS en ACS.

Parámetro es obligatorio para SDK.

Opcional

threeDSAcsRefNumber String Número de referencia en ACS.
Opcional

threeDSAcsSignedContent String Contenido firmado para SDK, el contenido incluye la URL de ACS.

Parámetro es obligatorio para SDK.

Opcional

threeDSDsTransID String Identificador único de transacción dentro del MPS.

Parámetro es obligatorio para SDK.

Condicional statusResponse Object Parámetros del estado de respuesta. Este bloque se devuelve solo si tiene habilitada la configuración correspondiente. Para habilitar esta funcionalidad, póngase en contacto con el soporte técnico. Consulte parámetros anidados.

Parámetros del bloque statusResponse:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

orderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
  • 0 - pedido registrado, pero no pagado;
  • 2 - realizada autorización completa del monto del pedido;
  • 3 - autorización cancelada;
  • 5 - iniciada autorización a través de ACS del banco emisor;
  • 6 - autorización rechazada;
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

panMaskedFrom String [1..19] Número de tarjeta enmascarado para el débito de fondos.
Opcional

panMaskedTo String [1..19] Número de tarjeta enmascarado para el depósito de fondos.
Opcional

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

creationDate Integer Fecha de registro del pedido.
Opcional

orderDescription String [1..600] Descripción del pedido transmitida al gateway de pago durante el registro.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Obligatorio

resultCode Integer Código de error al ejecutar la solicitud. Valores posibles:
  • 0 - en caso de éxito;
  • 1 - en caso de error.
Opcional

orderParams Object Objeto con atributos del vendedor. En la respuesta puede presentarse más de un bloque orderParams.
El objeto debe transmitirse de la siguiente manera: {"param":"value","param2":"value2"}.
Opcional

operationList Object Objeto que contiene información sobre las transacciones completadas en el pedido. En la respuesta puede estar presente más de un bloque operationList.
Los parámetros que se pueden transmitir están descritos abajo.
Opcional

binding String Identificador de enlace (si ya ha sido creado). Este parámetro se devuelve solo si la versión de getP2PStatus es igual a 3 o superior.
Opcional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Opcional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.
Opcional

paymentNetRefNum String [1..512] Original Network Reference Number - es un identificador que asigna la red de pagos (Mastercard, Visa, etc.) al realizar la primera transacción (por ejemplo, compra). Al ejecutar la operación inversa (devolución, contracargo, pago repetido), este número:
  • se copia de la transacción original
  • se transmite en el campo Original Network Reference Number
  • permite al sistema de pagos vincular la nueva operación con la inicial
Este parámetro está presente en la respuesta, solo si se utiliza la consulta getP2PStatus version versión 7 o superior.

Durante la autenticación por protocolo 3DS2 en respuesta a la primera solicitud llegan los siguientes parámetros:

Obligatoriedad Nombre Tipo Descripción
Obligatorio

threeDSServerTransId String [1..36] Identificador de transacción creado en el servidor 3DS. Obligatorio para la autenticación 3DS.
Opcional

threeDSMethodUrl String [1..512] URL del servidor ACS para la recopilación de datos del navegador.
Obligatorio

threeDSMethodUrlServer String [1..512] Dirección URL del servidor 3DS para la recopilación de datos del navegador que se incluirán en AReq (Authentication Request) desde el servidor 3DS al servidor ACS.
Opcional

threeDSMethodDataPacked String [1..1024] Datos CReq (Challenge Response) en codificación Base-64 para envío al servidor ACS.
Opcional

threeDSMethodURLServerDirect String [1..512] Dirección URL 3dsmethod.do para ejecutar el método 3DS en el servidor 3DS a través de la pasarela de pago (si existe el permiso correspondiente a nivel de comerciante).

A continuación se presentan los parámetros que deben estar presentes en la respuesta, después de la solicitud repetida de pago y la necesidad de redirigir al cliente al ACS durante la autenticación por protocolo 3DS2:

Obligatoriedad Nombre Tipo Descripción
Condicional

acsUrl String [1..512] Dirección URL para redirección a ACS. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Para más detalles ver Redirección a ACS.
Condicional

packedCReq String Datos empaquetados de challenge request. Se devuelve en respuesta exitosa en caso de pago 3D-Secure, si se requiere redirección a ACS. Este valor debe usarse como valor del parámetro creq del enlace a ACS (acsUrl), para redirigir el cliente a ACS. Para más detalles ver Redirección a ACS.

Para completar la transacción utilice el método /p2p/finishThreeDsVer2.do.

Ejemplos

Ejemplo de transacción AFT:

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/instantPerformP2P.do' '
--header 'Content-Type: application/json' \
--data '{
  "username": "test_user",
  "password": "test_user_password",
  "email" : "test@example.com",
  "orderNumber" : "abcd1234abchh",
  "amount" : 1500,
  "currency" : "978",
  "returnUrl" : "https://mybestmerchantreturnurl.com",
  "failUrl" : "https://failUrl.com",
  "transactionTypeIndicator": "A",
  "features" : {
    "feature" : ["WITHOUT_TO_CARD"]
        },
  "fromCard" : {
    "cardholderName": "TEST CARDHOLDER",
    "pan" : "5000001111111115",
    "cvc" : "123",
    "expirationYear" : "2024",
    "expirationMonth" : "12"
        },
  "amountInput": "6000",
  "billingPayerData": {
    "billingCountry":"CYP",
    "billingCity":"Larnaka",
    "billingAddressLine1":"Stadiou 1",
    "payerBirthday": "20211512",
    "payerAccount": "DE1051078567",
    "payerLastName": "Kostas",
    "payerFirstName": "Parnas",
    "payerMiddleName": "Illigel",
    "payerCombinedName": "Kostas Parnas Illigel"
    },
  "billingRecipientData": {
    "recipientFirstName": "Rodetos",
    "recipientLastName": "Castinos",
    "recipientMiddleName": "Internal",
    recipientCombinedName": "Rodetos Castinos Internal",
    "recipientCountry": "CYP",   
    "recipientAccount": "DE3840401048",
    "recipientAccountNumberType": 1
    },
  }'

Ejemplo de transacción OCT

curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/instantPerformP2P.do' '
--header 'Content-Type: application/json' \
--data '{
  "username": "test_user",
  "password": "test_user_password",
  "email" : "test@example.com",
  "orderNumber" : "abcd1234abchh",
  "amount" : 1500,
  "currency" : "978",
  "returnUrl" : "https://mybestmerchantreturnurl.com",
  "failUrl" : "https://failUrl.com",
  "toCard": {
        "pan": "4000001111111118"
    },
    "transactionTypeIndicator": "G",
    "features": {
        "feature": [
            "WITHOUT_FROM_CARD"
        ]
    }
  }'

Ejemplo de respuesta a la solicitud:

{
    "errorCode": 0,
    "info": "Your order is proceeded, redirecting...",
    "acsUrl": "https://example.com/acs2/acs/creq",
    "is3DSVer2": true,
    "packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiOWM3NTkxMmEtZTg0NC00ODgyLWI5YzctYzZmYmMzNjIyNGQ3IiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}

Reembolso de fondos para AFT

Utilice el método https://dev.bpcbt.com/payment/rest/api/p2p/refund.do para enviar solicitudes de reembolso de fondos por transacción AFT.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json.

Con esta solicitud los fondos del pedido indicado serán devueltos al pagador. La solicitud finalizará con error si los fondos de este pedido no fueron debitados. El sistema permite devolver fondos más de una vez, pero en total no más que el importe inicial del débito.

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

username String [1..30] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Opcional

amount String [0..12] Importe del reembolso en unidades mínimas de la moneda (por ejemplo, en céntimos). El importe del reembolso debe ser menor o igual al importe del pedido.
Si este parámetro no se transmite, el reembolso se ejecuta por el importe total del pedido.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Opcional

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.

Ejemplos

Ejemplo de solicitud

curl --location --request POST 'https://dev.bpcbt.com/payment/rest/api/p2p/refund.do' 
--header 'Content-Type: application/json' 
--data-raw '{   
   "username":"test_user",  
   "password":"test_user_password", 
   "orderId":"4c1a9960-a59a-763b-93ea-a6de09631b58",    
   "amount": 200,
   "language": "en"
}'

Ejemplo de respuesta

{
  "errorCode": 0,
  "errorMessage":"Success"
}

Cancelación de pago AFT

Para cancelar el pago por transacción AFT se utiliza la solicitud https://dev.bpcbt.com/payment/rest/api/p2p/reverse.do.

La cancelación es posible solo durante un período determinado de tiempo después del pago. Póngase en contacto con el equipo de soporte para conocer el período exacto, ya que varía.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

username String [1..30] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Obligatorio

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Opcional

amount String [0..12] Importe de cancelación en unidades mínimas de la moneda (por ejemplo, en centavos). Este parámetro le permite realizar cancelaciones parciales y debe ser menor o igual al importe autorizado del pedido.
Si este parámetro no se transmite, se realiza la cancelación de todo el importe del pedido.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Opcional

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Opcional

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.

Ejemplos

Ejemplo de solicitud

curl --location --request POST 'https://dev.bpcbt.com/payment/rest/api/p2p/reverse.do' 
--header 'Content-Type: application/json' 
--data-raw '{   
   "username":"test_user",  
   "password":"test_user_password", 
   "orderId":"4c1a9960-a59a-763b-93ea-a6de09631b58",    
   "amount": 200,
   "language": "en"
}'

Ejemplo de respuesta

{
  "errorCode": 0,
  "errorMessage":"Success"
}

Estado de transferencia P2P

Para obtener el estado de un pedido P2P registrado, utilice la solicitud https://dev.bpcbt.com/payment/rest/api/p2p/getP2PStatus.do.


Al ejecutar la solicitud es necesario utilizar el encabezado: Content-Type: application/json

Parámetros de solicitud

Obligatoriedad Nombre Tipo Descripción
Obligatorio

username String [1..30] Nombre de usuario de la cuenta API del vendedor.
Obligatorio

password String [1..30] Contraseña de la cuenta API del vendedor.
Opcional

language String [2] Clave de idioma según ISO 639-1. Si no se especifica el idioma, se utiliza el idioma predeterminado especificado en la configuración de la tienda.
Idiomas soportados: en,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Condicional

orderId String [1..36] Número de pedido en la pasarela de pago. Único dentro de la pasarela de pago.
Condicional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.

Parámetros de respuesta

Obligatoriedad Nombre Tipo Descripción
Obligatorio

errorCode String [1..2] Parámetro informativo en caso de error, que puede tener diferentes valores de código:
  • valor 0 - indica el éxito del procesamiento de la solicitud;
  • otro valor numérico (1-99) - indica un error, para obtener información más detallada sobre el cual es necesario verificar el parámetro errorMesage.
Puede estar ausente si el resultado no causó errores.
Obligatorio

errorMessage String [1..512] Parámetro informativo que es la descripción del error en caso de que ocurra un error. El valor de errorMessage puede variar, por lo que no se debe hacer referencia explícita a sus valores en el código.
El idioma de descripción se especifica en el parámetro language de la solicitud.
Opcional

orderStatus Integer El valor de este parámetro indica el estado del pedido en la pasarela de pago. Ausente si el pedido no fue encontrado. A continuación se presenta la lista de valores disponibles:
  • 0 - pedido registrado, pero no pagado;
  • 2 - realizada autorización completa del monto del pedido;
  • 3 - autorización cancelada;
  • 5 - iniciada autorización a través de ACS del banco emisor;
  • 6 - autorización rechazada;
Opcional

orderNumber String [1..36] Número de pedido (ID) en el sistema del comerciante; debe ser único para cada pedido.
Opcional

panMaskedFrom String [1..19] Número de tarjeta enmascarado para el débito de fondos.
Opcional

panMaskedTo String [1..19] Número de tarjeta enmascarado para el depósito de fondos.
Opcional

amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
Opcional

currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
Opcional

creationDate Integer Fecha de registro del pedido.
Opcional

orderDescription String [1..600] Descripción del pedido transmitida al gateway de pago durante el registro.
En este campo no está permitido transmitir datos personales o datos de pago (números de tarjetas, etc.). Este requisito está relacionado con el hecho de que la descripción del pedido no se enmascara en ningún lugar.
Opcional

ip String [1..39] Dirección IP del pagador. IPv6 es compatible en todas las solicitudes (hasta 39 caracteres).
Obligatorio

resultCode Integer Código de error al ejecutar la solicitud. Valores posibles:
  • 0 - en caso de éxito;
  • 1 - en caso de error.
Opcional

orderParams Object Objeto con atributos del vendedor. En la respuesta puede presentarse más de un bloque orderParams.
El objeto debe transmitirse de la siguiente manera: {"param":"value","param2":"value2"}.
Opcional

operationList Object Objeto que contiene información sobre las transacciones completadas en el pedido. En la respuesta puede estar presente más de un bloque operationList.
Los parámetros que se pueden transmitir están descritos abajo.
Opcional

binding String Identificador de enlace (si ya ha sido creado). Este parámetro se devuelve solo si la versión de getP2PStatus es igual a 3 o superior.
Opcional

detokenizedPanRepresentation String [1..19] Número de tarjeta destokenizado (últimos 4 dígitos o en forma enmascarada).
Opcional

detokenizedPanExpiryDate String Fecha de vencimiento de la tarjeta destokenizada en el siguiente formato: YYYYMM.
Opcional

paymentNetRefNum String [1..512] Original Network Reference Number - es un identificador que asigna la red de pagos (Mastercard, Visa, etc.) al realizar la primera transacción (por ejemplo, compra). Al ejecutar la operación inversa (devolución, contracargo, pago repetido), este número:
  • se copia de la transacción original
  • se transmite en el campo Original Network Reference Number
  • permite al sistema de pagos vincular la nueva operación con la inicial
Este parámetro está presente en la respuesta, solo si se utiliza la consulta getP2PStatus version versión 7 o superior.

El elemento payerData contiene los siguientes parámetros.

Obligatoriedad Nombre Tipo Descripción
Opcional

paymentAccountReference String [1..29] Número único de cuenta del cliente que vincula todos sus medios de pago dentro del marco del MPS (tarjetas y tokens).

A continuación se presentan los posibles parámetros del bloque operationList.

Obligatoriedad Nombre Tipo Descripción
Opcional

operationType String Tipo de transacción. Están disponibles los siguientes valores:
  • P2P_VERIFY - solicita el monto de la comisión;
  • P2P_DEBIT - debita dinero;
  • P2P_CREDIT - acredita dinero;
  • P2P_DEBIT_REVERSAL - cancelación del débito;
  • P2P_CREDIT_REVERSAL — cancelación del acreditamiento;
  • P2P_TRANSFER - transferencia de dinero de tarjeta a tarjeta;
  • P2P_TRANSFER_REVERSAL - devolución automática, si ocurrió un error durante la transferencia.
    Opcional

    amount Integer [0..12] Importe del pago en unidades mínimas de la moneda (por ejemplo, en kopeks).
    Opcional

    currency String [3] Código de moneda del pago ISO 4217. Si no se especifica, se utiliza el valor por defecto. Solo se permiten dígitos.
    Opcional

    datetime String Fecha y hora de realización de la operación.
    Opcional

    resultCode Integer Código de error al ejecutar la solicitud. Valores posibles:
    • 0 - en caso de éxito;
    • 1 - en caso de error.
    Opcional

    resultCodeDescription String [1..512] Descripción del código de error de la transacción.
    Opcional

    maskedPan String [1..19] Número enmascarado de la tarjeta o token utilizado para el pago.
    Opcional

    cardholderName String [1..26] Nombre del titular de la tarjeta (si está disponible).
    Opcional

    refNum String [12] Identificador único de operación, asignado por el banco adquirente al procesar el pago con tarjeta bancaria. RRN es creado exclusivamente por el banco adquirente y se utiliza para la búsqueda posterior, verificación y liquidación de operaciones (incluyendo devoluciones, contracargos e investigaciones).

    Ejemplos

    Ejemplo de solicitud

    curl -X POST 'https://dev.bpcbt.com/payment/rest/api/p2p/getP2PStatus.do'
    -H 'Content-Type: application/json'
    --data-raw '{ 
      "username": "test_user",
      "password": "test_user_password",
      "orderId" : "0a4eaae8-653a-71a9-8259-46fc00a8ea58"
    }'

    Ejemplo de respuesta

    {
      "orderStatus": 0,
      "errorCode": 0,
      "errorMessage": "Successful",
      "orderNumber": "2009",
      "amount": 50000,
      "currency": "978",
      "creationDate": 1674137044330,
      "orderParams": [],
      "operationList": [],
      "resultCode": 0
    }

    Finalización de transacción P2P 3DS2 a través de API

    Para finalizar una transacción P2P, el vendedor envía el identificador de transacción a la pasarela, utilizando el método https://dev.bpcbt.com/payment/rest/api/p2p/finishThreeDsVer2.do.


    Al ejecutar la consulta es necesario utilizar el encabezado: Content-Type: application/x-www-form-urlencoded

    Parámetros de consulta

    Obligatoriedad Nombre Tipo Descripción
    Obligatorio

    username String [1..30] Nombre de usuario de la cuenta API del vendedor.
    Obligatorio

    password String [1..30] Contraseña de la cuenta API del vendedor.
    Obligatorio

    tDsTransId String [1..36] Identificador único de transacción obtenido del servidor 3DS.

    Parámetros de respuesta

    La respuesta a esta consulta no contiene ningún parámetro JSON. En su lugar, redirige al cliente a una de las siguientes direcciones URL:

    Ejemplos

    Ejemplo de consulta

    curl --request POST \
      --url https://dev.bpcbt.com/payment/rest/api/p2p/finishThreeDsVer2.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data '{
        "username": "test_user",
        "password": "test_user_password",
        "threeDSServerTransId": "65020d0c-2627-4a45-8eab-b93b58fc52ae"
    }'

    Ejemplo de URL de redirección

    https://mybestmerchantreturnurl.com/finish.html?orderId=906bf262-bd53-4ac7-983c-07127954681b&amp;lang=en

    Categorías:
    eCommerce API V1
    Categorías
    Resultados de búsqueda