Autopay Pagos en línea es una solución integral para aceptar pagos de los clientes de la tienda en línea, el apoyo a numerosos métodos de pago disponibles en el mercado, tales como transferencias bancarias, Pay by link, BLIK, Google Pay, Apple Pay. En esta documentación encontrará todo lo necesario para implementar rápidamente una pasarela de pago en su tienda online. La documentación de Autopay Online Payments incluye secciones como. Procesamiento de transacciones y liquidaciones, Registro y gestión de los puntos de liquidación entre AP y la plataforma del mercado de socios, Registro y explotación de Servicios basados en el Formulario Integrador, Ampliaciones adicionales.
Aplicación - Aplicación móvil Partner, que se comunica con el SDK del sistema de pago en línea Autopay. para registrar las transacciones.
AP - Autopay Spółka Akcyjna con domicilio social en Sopot en ul.
Powstańców Warszawy 6, inscrita en el registro de empresarios llevado
por el Tribunal de Distrito Gdańsk-Północ en Gdańsk, VIII División de Negocios
del Registro Nacional de Tribunales con el número KRS 0000320590, NIP
585-13-51-185, Regon 191781561, con un capital social de 2.205 PLN
500 (totalmente desembolsado), supervisado por la Comisión de Supervisión Financiera e inscrito en el registro de entidades de pago nacionales con
número IP17/2013, propietario del Sistema.
BalancePoint - objeto en el Sistema de Pagos que representa la Tienda integrada con la Plataforma Marketplace y registrada en el Sistema de Pagos utilizando el formulario puesto a disposición del Socio por AP.
ClientHash - en los mensajes; permite asignar el instrumento de pago (por ejemplo, tarjeta) al cliente de forma anónima. Sobre la base de esto, el socio puede desencadenar débitos posteriores en el modelo de pago automático.
CommissionModel - El modelo de comisión acordado con el Integrador. Describe los
valores de las comisiones para las transacciones pasadas al PA y al Integrador.
Día laborable - Entre semana, de lunes a viernes, salvo días festivos.
Formulario integrador - sitio web en el que se coloca un formulario que permite al Cliente registrarse, editar o añadir otro Servicio.
Instrumento de pago (Canal de pago) - un
conjunto acordado de procedimientos o un
dispositivo individualizado, utilizado por el cliente para presentar una
orden de pago, por ejemplo, Tarjeta, PBL.
Herramienta de transferencia electrónica - Un conjunto de procedimientos
o un dispositivo personalizado acordado entre el Socio y AP, utilizado por el Socio para
colocar una orden de pago que permita la ejecución de una retirada de
fondos del saldo a la cuenta bancaria del Socio o Cliente y otro
instrumento de pago perteneciente al Socio o Cliente. La prestación de
funcionalidad está sujeta a acuerdos individuales entre el Socio
y AP.
Integrador - Integradores se llaman los socios que han implementado Autopay Pagos en Línea en sus sistemas y permitir su activación de desde dentro de sus propias soluciones. Integradores incluyen tales entidades como Shoper, Sky-Shop, Gymsteer, Selly verificaciones, FaniMani, AtomStore, Ebexo, Selly Azymut, PayNow, Comarch.
IPN (Notificación instantánea del producto) - Una notificación inmediata
enviada desde el Sistema de Pago en Línea al Servicio Asociado
que transmite un cambio en el estado del producto. La estructura de la IPN es similar a la ITN
(ampliado sólo por el nodo producto).
ITN (Notificación instantánea de transacciones) - notificación
inmediata enviada desde el Sistema de Pago en Línea al Servicio Asociado
transmitiendo un cambio en el estado de la transacción.
ISTN (Notificación Instantánea de Transacciones de Liquidación) - notificaciones inmediatas
de un cambio en el estado de una operación de liquidación. El sistema
transmitirá inmediatamente notificaciones del hecho de que se ha ordenado una
operación de liquidación (retiradas/devoluciones, en su caso) y de un cambio en su estado.
ICN (Notificación instantánea de configuración) - Notificación
inmediata de la configuración de una tienda recién registrada, comunicando
información sobre un cambio en el estado de la tarjeta de la tienda (por ejemplo, en caso de
activación de la tarjeta). Los mensajes ICN también pueden enviarse en caso de un cambio
en la configuración de la tienda, un cambio en sus datos AML, la habilitación/deshabilitación de un canal de pago.
La provisión de funcionalidad está sujeta a acuerdos individuales entre el Socio y AP.
Tarjeta - una tarjeta de pago emitida bajo los esquemas VISA y Mastercard, autorizada
por la normativa de dichos esquemas para ejecutar Transacciones sin su presencia
física.
Cliente (pagador) - una persona que realice un pago en el Sitio Web por servicios
data-deepl-translation/> o productos del Socio utilizando el Sistema.
Cesta de productos - es la información sobre los componentes del pago, transmitida (en el enlace de pago) al Sistema para su posterior procesamiento. Cada producto de la cesta de la compra se describe mediante dos campos obligatorios: el importe componente y un campo que permite pasar parámetros específicos para el producto.
Enlace de pago - solicitud que permite el inicio de la transacción de entrada
(descrita en parte Inicio de la transacción). Se puede utilizar
directamente en páginas web (método POST), mientras que en los correos electrónicos a
clientes se debe utilizar el método Antes de la transacción para obtener un
enlace corto al pago (método GET).
Enlace de verificación - URL que dirige a la transferencia de verificación.
Mercado - Una solución de pago que se ejecuta dentro de la Autopay Online Payment System. Permite al socio operar una plataforma de ventas donde los productos o servicios son ofrecidos a los clientes por los contratistas del socio. Los modelos de Liquidación Avanzada de Transacciones y Transacción de Liquidación permiten que los pagos se realicen directamente del Cliente a la Contraparte del Socio, teniendo en cuenta la Cesta de Productos. La provisión de la funcionalidad está sujeta a acuerdos individuales entre el Socio y AP.
Modelo de pagador - modelo en el que la comisión por la transacción realizada la paga el cliente a AP (coste añadido al importe de la transacción). En este caso, el cliente también acepta los términos y condiciones de AP durante el pago.
Modelo de comerciante - modelo, en el que la comisión se liquida entre Autopay y el socio y no se añade al importe de la transacción pagado por el cliente.
Socio - la entidad receptora de fondos procedentes de la venta de
productos o servicios distribuidos por el Afiliado en el Sitio Web.
Un socio, en el caso del modelo Marketplace, es una entidad, que no es
un consumidor, interesada en gestionar la aceptación por parte de AP de pagos debidos
al socio por productos o servicios distribuidos por
el socio.
Pago por enlace (PBL) - herramienta que permite la ejecución de pagos a través de una transferencia intrabancaria desde la cuenta del Cliente a la cuenta del PA. Después de iniciar sesión en la banca en línea - los datos necesarios para ejecución de la transferencia (datos de información del destinatario, el número de su cuenta bancaria, la cantidad y la fecha de ejecución de la transferencia) se rellenan automáticamente gracias al sistema de intercambio de datos entre el banco y AP.
Agente técnico - la entidad con derecho a acceder a la Cuenta de Pago del Socio,
que autoriza este acceso (consentimiento o acuerdo). En el sistema, el apoderamiento está representado por la configuración
de la función PlenipotenciarioIDuna entidad puede tener varios proxies para diferentes Socios.
Plataforma de mercado - plataforma en la que está disponible la opción
para registrar Puntos de Liquidación.
Pago automático - pago realizado sin necesidad de
introducir cada vez los datos de la Tarjeta o los datos de autorización de la
transferencia de datos.
Pago con un clic - es un pago automático ordenado
por el cliente.
Pago cíclico - es un pago automático ordenado sin
data-deeplanslation/> participación del Cliente (por el Servicio Asociado).
Antes de la transacción - ordenación específica (realizada en segundo plano) del enlace de pago
.
Transferencia de verificación - La parte del proceso relacionada con el registro y
edición del Servicio o Servicios del Socio en el Sistema. Implica que el
Socio realice una transferencia de fondos para verificar los datos y la cuenta bancaria para el desembolso de fondos al
Socio. Verificación de los datos es una obligación de la PA en virtud, entre otras cosas, la
Ley de 16.11.2000 sobre la prevención del blanqueo de capitales y
financiación del terrorismo. Cada transferencia de verificación debe recibir
estado de verificación final (positivo o negativo) dentro de los 30 días de
el pago de la transacción. Si el estado de verificación final no se
da en el plazo especificado anteriormente, el sistema le dará automáticamente un
estado negativo. Este proceso se aplica a las verificaciones en las que Autopay dirige una
solicitud para completar los datos al cliente y no recibe de vuelta la
información necesaria para completar la verificación.
Cuenta de pago (saldo) - Una cuenta de pago mantenida por AP para el Socio en la que se recogen los fondos depositados de los Clientes. La prestación de la funcionalidad está sujeta a acuerdos individuales entre el Socio y AP.
RPAN (Notificación de activación de pago periódico) - mensaje sobre
la activación del servicio de pago automático.
RPDN (Notificación de desactivación de pagos periódicos) - mensaje sobre
la desactivación del servicio de pago automático.
Servicio - el sitio web del Socio o los sitios web integrados con el
Sistema en los que el Cliente puede adquirir productos o servicios del Socio (o del Contratista
Socio en el caso del Mercado).
En el caso de un Mercado, un objeto en el Sistema de Pago que representa el
Mercado del Socio. Todas las
transacciones iniciadas por dicho Mercado se adjuntan a él.
Especificación - documentación que describe la comunicación entre el Servicio y el Sistema.
Sistema de pago en línea AP (Sistema) - una
solución informática y funcional por la que AP proporciona al Socio una
aplicación que permite el procesamiento de los pagos de los Clientes realizados mediante
Instrumentos de Pago, así como la verificación del estado de
los pagos y la recepción de los mismos.
Transferencia rápida - La ejecución de pagos mediante transferencia intrabancaria de la cuenta del Cliente a la cuenta del PA. El pago difiere de los pagos realizados a través de PBL en que el Cliente debe rellenar él mismo todos los datos necesarios para realizar la transferencia.
Transacción - una operación de pago en el sentido de la Ley de 19 de agosto de 2011 sobre servicios de pago.
Transacción de entrada - la parte del proceso de gestión de pagos relativa al
pago efectuado por el cliente a AP.
Operación de liquidación - parte del proceso de procesamiento de pagos, relativa a la transferencia realizada por el PA a la cuenta del Socio. Para que se cree una Transacción de Liquidación, la Transacción de Entrada debe ser pagada por el Cliente. Una Transacción de Liquidación puede referirse a una única Transacción de Entrada (pago), o agregar múltiples de ellas.
Ley - Ley de 19 de agosto de 2011 sobre servicios de pago.
Validez del enlace - parámetro que especifica el punto en el tiempo más allá de en el que el Enlace de Pago deja de estar activo. Debe establecerse mediante el parámetro LinkValidityTime del Enlace de Pago.
Validez de las transacciones - parámetro que especifica el momento a partir del cual el Sistema de Pago en Línea se bloquea y devuelve automáticamente los pagos del Cliente. El valor predeterminado se calcula añadiendo 6 días a la fecha en que el Cliente ha seleccionado el Canal de Pago. También se puede establecer mediante el parámetro ValidityTime en el Enlace de Pago. En este caso, una vez transcurrido el tiempo indicado, el enlace deja de estar activo y los pagos se devuelven al Cliente. La validez máxima de la transacción es de 31 días.
Widget de pago automático - un mecanismo que permite el pago con tarjeta de los productos/servicios ofrecidos por el socio, en el que los datos de la tarjeta son introducidos por el cliente en un mecanismo integrado directamente en el sitio web del socio.
La invocación del formato de widget de Tarjeta requiere la implementación de
código JavaScript utilizando una biblioteca AP dedicada.
Widget de incorporación - una solución que permite al Integrador incrustar el Formulario de Integrador (preparado por Autopay) directamente en el sitio web del Integrador, de modo que el Socio no es redirigido al dominio de Autopay al registrar su tienda - todo el proceso se lleva a cabo en el sitio web del Socio.
Marca blanca - modelo de integración, en el que el cliente ya en el Servicio selecciona el canal de pago y acepta las regulaciones (siempre que la necesidad de aceptarlas resulte de acuerdos individuales entre el Socio y el PA), y el inicio de la transacción contenga un campo GatewayID completado (y en ciertos casos DefaultRegulationAcceptanceID o RecurringAcceptanceID).
Inicio de una orden de pago - el punto en el que el usuario de la pasarela de pago selecciona un canal de pago y es redirigido a una página acorde con el canal de pago seleccionado o (para pagos automáticos, monederos electrónicos o BLIK) se realiza un intento de adeudo en la tarjeta o cuenta en el proveedor del canal de pago.
PRUEBA
host_gates: https://testpay.autopay.eu
host_card_gates: https://testcards.autopay.eu
PRODUCCIÓN
host_gates: https://pay.autopay.eu
host_card_gates: https://cards.autopay.eu
En el Sitio Asociado, una vez completado el pedido, se presenta al cliente la opción de poder realizar un pago utilizando el Sistema. Al hacer clic en el enlace correspondiente se inicia la transacción y se abre en una nueva ventana:
a) una página dedicada del Sistema preparada por AP, en la que se presenta al Cliente
una lista de los Canales de Pago disponibles y un resumen de la operación registrada (ver Modelo de muro de pago) o
b) directamente desde un Canal de Pago (Banco, BLIK o para pago con Tarjeta) - (ver Modelo de marca blanca).
En el lado del Sistema, se validan los parámetros transmitidos y
se guarda la transacción con un periodo de validez fijo. Si, en el momento de la
validación, el período de validez del enlace ya se ha superado, el cliente
recibirá un mensaje correspondiente (la verificación de la validez
de la transacción también tiene lugar cuando se cambia el estado del pago). Tras
la verificación positiva de los parámetros de la transacción (y tras la selección del
Canal de Pago), el Cliente autoriza la transacción. En su título, además de los
identificadores asignados por el Sistema, también puede haber una
descripción fija, previamente acordada entre el PA y el Socio, o un
valor dinámico transmitido por el Socio al inicio de la transacción.
Modelo de integración recomendado consiste en transmitir un mensaje para iniciar una transacción de
en segundo plano, es decir, sin redirigir al usuario al Sistema (véase
Antes de la transacción). En este modelo, es posible utilizar formas avanzadas
de autorización de transacciones (WhiteLabel, pagos automáticos, SDK
móvil), diagnósticos de la corrección de los parámetros transmitidos y muchas
otras extensiones.
Una vez autorizada la transacción (en la página del Canal de Pago) el cliente vuelve de ella al Sistema, donde el cliente es automáticamente redirigido al Servicio Asociado.
TIP: Encontrará una descripción detallada de la estructura del enlace de retorno en la sección
de la ficha Redirección al sitio asociado.
El estado de autorización (pago) recibido del Canal de Pagos se transmite
desde el Sistema al Servicio Asociado mediante un mensaje ITN. El Sistema
repetirá el envío de mensajes hasta que el Servicio Asociado
acuse recibo o expire la notificación. Transacciones,
que se pagan después de la expiración del período de validez de la transacción - serán
devueltos al Cliente (remitente de la transferencia).
Opcionalmente, el Sistema puede notificar el hecho de que se ha emitido una operación de liquidación
. Para ello se utiliza un mensaje ISTN convenientemente modificado.
Los datos necesarios intercambiados durante la integración difieren para los entornos de prueba y de producción. A continuación se muestra una lista de los parámetros que se pasan del
AP al Partner y en sentido inverso.
También se proporciona información general, es decir, canales de pago activos junto con gráficos (como resultado de la consulta de la lista de canales de pago disponibles).
Opcionalmente, puede haber datos adicionales transmitidos por el Socio al PA, por ejemplo: información sobre el contenido requerido de la cesta de la compra y la forma en que se procesa (en informes, facturación, panel de administración), requisitos adicionales (para saldos de prepago). Para pagos automáticos BLIK también el tiempo de vida por defecto de pagos automáticos activados y la etiqueta por defecto de pagos automáticos activados.
En la versión mínima de la integración, debe implementarse el soporte para
iniciar una transacción, volver de ella y el soporte para la comunicación ITN.
TIP: Se recomienda familiarizarse con el esquema de funcionamiento. Si es necesario, también merece la pena familiarizarse con parámetros adicionales o servicios.
Durante las pruebas, complete los campos en blanco de la hoja y envíela de nuevo a AP para confirmar la correcta integración de antes de migrar al entorno de producción.
TIP: Antes de la implantación en producción, se recomienda realizar pruebas de de acuerdo con la norma escenarios de prueba en la versión básica y, para integraciones más avanzadas, también según escenarios adicionales.
Al iniciar una transacción, el Servicio asociado transmite al sistema de pago en línea los parámetros necesarios para su ejecución y la posterior transmisión del estado del pago.
Todos los parámetros se pasan a través del método POST (Content-Type: application/x-www-form-urlencoded).
El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros
. Los valores de los parámetros transmitidos deben codificarse en
UTF-8 (y transport-protocol-encode antes de enviar, a menos que la
herramienta utilizada para enviar el mensaje lo haga por sí misma,
ejemplo de codificación: URLEncode).
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | El ID de servicio asociado, asignado durante el registro del servicio, identifica de forma exclusiva el servicio asociado en el sistema de pago en línea. Se aceptan números. |
2 | OrderID | SÍ | cadena{1,32} | Identificador de transacción de hasta 32 caracteres alfanuméricos latinos. El valor del campo debe ser único para el Servicio asociado. Se aceptan caracteres alfanuméricos latinos y caracteres del rango: -_ |
3 | Importe | SÍ | importe | Importe de la transacción. Se utiliza un punto - '.' - como separador decimal. Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. NOTAS: El valor permitido de una única Transacción en el Sistema de Producción es respectivamente:
|
4 | Descripción | NO | cadena{1,79} | Título de la operación (pago); al principio del título de la transferencia se colocan los identificadores de la operación asignados por el Sistema de Pagos Online, a los que se añade el valor de este parámetro. En algunos casos, independientemente del PA, el título de la transferencia puede ser modificado adicionalmente por el Banco donde se realizó el pago del cliente. El valor del parámetro permite caracteres alfanuméricos latinos y caracteres en el rango: . : - , espacio . |
5 | GatewayID | NO | entero{1,5} | Identificador del Canal de Pago por el que el Cliente pretende liquidar el pago. Este parámetro es responsable, en particular, del modelo de presentación de los Canales de Pago:
|
6 | Moneda | NO | cadena{1,3} | Moneda de la transacción; la moneda por defecto es el PLN (el uso de otra moneda debe acordarse durante la integración). En ServiceID Se admite una moneda. Sólo se aceptan los valores PLN, EUR, GBP y USD. |
7 | Correo electrónico del cliente | NO | cadena{3,255} | Dirección de correo electrónico del cliente. |
19 | ValidityTime | NO | cadena{1,19} | Tiempo de caducidad de la transacción; cuando se supera, el enlace deja de estar activo y cualquier depósito se devuelve al remitente de la transferencia; valor de ejemplo: 2021-10-31 07:54:50; si falta el parámetro, se establece el valor por defecto de 6 días. La validez máxima de una transacción es de 31 días (si el valor del parámetro se fija más adelante de 31 días, el tiempo de validez se reducirá en consecuencia). Por ejemplo, una transacción iniciada en 2020-05-01 08:00:00, con ValidityTime = 2021-05-01 08:00:00, recibirá validez hasta 2020-06-01 08:00:00.(Hora en CET) |
34 | LinkValidityTime | NO | cadena{1,19} | Tiempo de caducidad del enlace; cuando se supera este tiempo, el enlace queda inactivo, pero esto no afecta al tiempo de depósito; valor de ejemplo: 2014-10-30 07:54:50; asegúrese de que el tiempo de transacción se ajusta al tiempo de caducidad del enlace (es posible que también tenga que introducir el parámetro ValidityTimepara ampliar su validez estándar). |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. |
La transacción se inicia mediante el envío de una llamada HTTPS una combinación de los parámetros anteriores a la dirección del sistema de pago en línea determinado durante el registro del servicio.
NOTAS: El número de transacciones iniciadas por el Socio en un minuto puede ser de un máximo de 100, a menos que el Socio y AP acuerden un límite superior como parte del acuerdo celebrado.
Ejemplo de inicio de una transacción:
Dirección:
Parámetros:
ServicioID=2
OrderID=100
Importe=1,50
Hash=2ab52e6918c6ad3b69a8228a2ab815f11ad58533eeed963dd990df8d8c3709d1
Enviar un mensaje sin todos obligatorio parámetros
(ServiceID, OrderID, Importe y Hash) o que contengan valores erróneos de su
, harán que el proceso de pago se detenga con un
código de error de transacción y un breve mensaje de error (sin retorno a la
página del Servicio de socios).
IMPORTANTE "Par de parámetros ServiceID i OrderID identifica de forma única
la transacción. No se permite la repetición del valor del parámetro
. OrderID durante toda la duración de la prestación de servicios por el Sistema a
un Servicio Asociado (ServiceID)."
Parámetro opcional GatewayID se utiliza para especificar el Canal de Pago, mediante el cual se va a realizar el pago. Esto le permite transferir la pantalla de selección de Canales de Pago al Servicio. La lista actual de identificadores de Canales de Pago, junto con los logotipos, está disponible a través del método gatewayList.
El mensaje de inicio de la transacción puede transmitirse en segundo plano, es decir, sin
redirigir al usuario al Sistema de Pago Online. En este modelo,
la selección del propio Canal de Pago también la realiza el Cliente en el
Servicio del Socio.
Inmediatamente después de que el Cliente complete la autorización de la transacción, es
redirigido desde el sitio web del Canal de Pago al sitio web
en línea del Sistema de Pago, donde el Cliente es redirigido automáticamente al Servicio
del Socio.
La redirección se implementa mediante el envío de una solicitud HTTPS (utilizando el método
GET) a una dirección de retorno predeterminada en el Servicio asociado. El protocolo
distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | ID de servicio de socio. |
2 | OrderID | SÍ | cadena{1,32} | El identificador de la transacción asignado en el Servicio de Interlocutores y comunicado al inicio de la transacción. |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
Ejemplo de mensaje que redirige al Cliente desde el sistema de pago en línea al Sitio Asociado
https://sklep_nazwa/strona_powrotu?ServiceID=123458&OrderID=123402816&Hash=5432d69a66d721b2f5f785432bf5a1fc1b913bdb3bba465856a5c228fe95c1f8
El Sistema transmite notificaciones de cambios en el estado de las transacciones
tan pronto como recibe dicha información del Canal de Pago, y el mensaje
siempre se aplica a una única transacción. Las confirmaciones de
son enviadas por el Sistema de Pago en Línea a la dirección del servidor del Servicio
del Socio, según lo establecido al añadir la configuración del Servicio del Socio.
NOTAS: El dominio debe ser público y accesible a través del Sistema. El dominio debe estar protegido por un certificado válido, emitido por una autoridad de certificación pública (Certificate authority) El servidor debe presentarse con una cadena de certificados completa (Chain of Trust) La comunicación debe basarse en TLS proxy versión 1.2 o 1.3 *Otras formas de seguridad de la conexión, por ejemplo VPN, mTLS deben acordarse individualmente con la persona responsable de la implementación.
Ejemplo:
https://sklep_nazwa/odbior_statusu
La notificación de un cambio en el estado de una transacción de entrada consiste en el envío de un
por parte del Sistema de un documento XML que contiene los nuevos estados de la transacción.
El documento se envía a través de HTTPS (puerto 443 por defecto) - método POST, como un parámetro HTTP con el nombre transacciones. Este parámetro se almacena utilizando el mecanismo de codificación de transporte Base64.
Formato de documento (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transactionList>
<serviceID>ServiceID</serviceID>
<transactions>
<transaction>
<orderID>OrderID</orderID>
<remoteID>RemoteID</remoteID>
<amount>999999.99</amount>
<currency>PLN</currency>
<gatewayID>GatewayID</gatewayID>
<paymentDate>YYYYMMDDhhmmss</paymentDate>
<paymentStatus>PaymentStatus</paymentStatus>
<paymentStatusDetails>PaymentStatusDetails</paymentStatusDetails>
</transaction>
</transactions>
<hash>Hash</hash>
</transactionList>
NOTAS: Nodo transacciones sólo puede contener un nodo transacción (y por lo que la notificación es siempre para una transacción). Valores de los elementos orderID i importe relativos a cada una de las transacciones son idénticos a los valores de los campos correspondientes proporcionados por el Servicio asociado al inicio de la transacción respectiva. Las excepciones aquí son los modelos en los que la comisión se añade al importe de la transacción. En tales casos, el valor de la cantidad en el ITN se incrementa en esta comisión. La validación del importe puede entonces realizarse sobre la base del campo opcional ITN startAmount. No obstante, este campo debe solicitarse durante la integración.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | SÍ | cadena{1,10} | El ID del sitio asociado, asignado durante el registro del servicio, identifica de forma exclusiva el sitio asociado en el sistema de pago en línea. |
2 | orderID | SÍ | cadena{1,32} | El identificador de la transacción asignado en el Servicio de Interlocutores y comunicado al inicio de la transacción. |
3 | remoteID | SÍ | cadena{1,20} | Identificador alfanumérico de la transacción asignado por el sistema de pago en línea. Merece la pena almacenarlo con el pedido para su posterior procesamiento (para transacciones múltiples con el mismo OrderIDpara devoluciones, etc.). Tal situación puede ocurrir, por ejemplo, si el Cliente cambia el Canal de Pago, vuelve a llamar el inicio de la misma transacción desde el historial del navegador, etc. El sistema permite bloquear tales casos, pero la opción no es recomendable (no sería posible pagar por una transacción abandonada). |
5 | importe | SÍ | importe | Importe de la transacción. Se utiliza un punto - '.' - como separador decimal. Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. |
6 | divisa | SÍ | cadena{1,3} | Moneda de la transacción. |
7 | gatewayID | NO | cadena{1,5} | Identificador del Canal de Pago a través del cual el Cliente liquidó el pago. |
8 | paymentDate | SÍ | cadena{14} | La hora en que se autorizó la transacción, transmitida en el formato AAAAMMDDhhmmss. (hora CET) |
9 | paymentStatus | SÍ | enum | Estado de autorización de la transacción, toma valores (descripción de los cambios de estado más adelante):
|
10 | paymentStatusDetails | NO | cadena{1,64} | Estado detallado de la transacción, el valor puede ser ignorado por el Servicio Asociado. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
TIP: Elemento hash (mensaje) se utiliza para autenticar el documento. Para obtener una descripción de cómo se calcula el hash, consulte la sección Seguridad de las transacciones.
La respuesta de notificación espera un estado HTTP de 200 (OK) y
texto en formato XML (no codificado en Base64), devuelto por el
Partner Service en la misma sesión HTTP, que contenga la confirmación de la recepción del
estado de la transacción.
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>ServiceID</serviceID>
<transactionsConfirmations>
<transactionConfirmed>
<orderID>OrderID</orderID>
<confirmation>Confirmation</confirmation>
</transactionConfirmed>
</transactionsConfirmations>
<hash>Hash</hash>
</confirmationList>
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | SÍ | cadena{1,10} | Identificador del servicio asociado derivado del mensaje. |
2 | orderID | SÍ | cadena{32} | El identificador de la transacción, asignado en el Servicio Interlocutor y comunicado en el inicio de la transacción, derivado del mensaje. |
3 | confirmación | SÍ | cadena{1,25} | El elemento se utiliza para transmitir el estado de la verificación de la autenticidad de la transacción por parte del Servicio asociado. El valor del elemento se determina comprobando la corrección del valor del parámetro serviceID y divisacomparación de los valores de los campos orderID i importe en el mensaje de notificación y en el mensaje que inicia la transacción, así como verificar que el hash calculado a partir de los parámetros del mensaje coincide con el valor proporcionado en el campo hash del mensaje. Las excepciones son los modelos en los que se añade una comisión al importe de la transacción. En tales casos, el valor del importe en el ITN se incrementa con esta comisión. La validación del importe puede realizarse a partir del campo opcional startAmount del ITN. No obstante, este campo debe solicitarse durante la integración. Se proporcionan dos valores para el elemento confirmación:
|
s.f. | hash | SÍ | cadena{1,128} | El elemento hash (en el mensaje de respuesta) se utiliza para autenticar la respuesta y se calcula a partir de los valores de los parámetros de respuesta. Para obtener una descripción de cómo se calcula el hash, consulte la sección Seguridad de las transacciones. |
Si no hay una respuesta correcta a las notificaciones enviadas, el Sistema
realizará nuevos intentos de comunicar el último estado de la transacción una vez transcurrido un
tiempo especificado. El Servicio asociado debe realizar su propia
lógica empresarial (por ejemplo, correo electrónico de confirmación), solo después del primer
mensaje de un estado de pago determinado.
TIP: Merece la pena echar un vistazo a Esquema de renovación de mensajes
ITN/ISTN/IPN/RPAN/RPDN.
El método de pago elegido por el cliente enviará cada vez un estado
. PENDIENTE. En otra comunicación ITN, el sistema proporcionará el estado de
ÉXITO o FALLO.
NOTA Estado PENDIENTE no se enviará si:
Para una transacción única (con parámetros únicos OrderID y RemoteID) no puede haber cambio de estatuto ÉXITO en PENDIENTE o ÉXITO en FALLO.
En cualquier caso, puede haber un cambio en el estado detallado -
paymentStatusDetails (Los posteriores
mensajes de cambio de estado de detalle son meramente informativos y no deben dar lugar a
una nueva entrega del servicio/producto pagado, etc.).
En casos especiales de uso, puede haber un cambio de estado:
a) FALLO en ÉXITO (por ejemplo, después de que un consultor AP haya aprobado una transacción pagada con un importe incorrecto. Este comportamiento requiere acuerdos comerciales especiales y no está habilitado por defecto),
b) ÉXITO en FALLO (por ejemplo, después de activar varias transacciones con el mismo OrderIDpero diferente RemoteID). Tal caso se produce cuando el Cliente inicia múltiples pagos con el mismo OrderID (por ejemplo, el Cliente cambia su decisión sobre qué Canal de Pago desea pagar por la transacción). Cada uno de los pagos que inicia genera ITNs y el Socio debe distinguir entre las transacciones individuales en base al parámetro RemoteID. Como el momento de la recepción del estado FALLO puede ser muy diferente, puede ocurrir que reciba dicho estado después de recibir un ÉXITO (con un RemoteID). En tal caso, deberá acusarse recibo del mensaje ITN, pero no deberá implicar la cancelación del estado de la transacción en el sistema del Socio.
En un modelo en el que no es necesario notificar al cliente por correo electrónico/sms
de los estados de no ÉXITO, es posible limitar la cantidad de
información guardada en la base de datos del Servicio y el seguimiento de los cambios de RemoteID.
Ya está bien:
para estados distintos de ÉXITOconfirmar cada vez el ITN
con la estructura de respuesta correcta, estado CONFIRMADO y el valor correctamente
contado del campo Hash,
en caso de recepción de primero estado ÉXITOañadir también actualizar el estado, su tiempo y RemoteID en la base de datos de Servicio y ejecutar procesos de negocio (notificaciones al cliente de un cambio de estado, ejecución de un envío de servicio/producto pagado, etc.),
en caso de situación posterior ÉXITOcada vez que
confirme el ITN con la estructura de respuesta correcta, el estado CONFIRMADO
y el valor correctamente calculado del campo Hash, sin actualizar la
base de datos del Servicio y sin procesos de negocio.
En un modelo en el que se necesita el historial completo de
cambios de estado de las transacciones y/o la notificación al cliente de los principales
cambios de estado de las transacciones, se debe utilizar una lógica que se aproxime a la siguiente descripción.
El Sistema de Pago en Línea utiliza varios mecanismos para aumentar la
seguridad de las transacciones que se realizan a través de él. La transmisión de
entre todas las partes de una transacción se realiza utilizando
una conexión segura basada en el protocolo TLS con una clave de 2048 bits.
Además, la comunicación se asegura mediante una función hash calculada a partir de los valores de los campos del mensaje y la clave compartida (la propia clave compartida se almacena en el Sistema de forma cifrada mediante el algoritmo AES-ECB).
Se utiliza el algoritmo SHA256 o SHA512 como función hash (método determinado en la fase de configuración del Servicio de Socio respectivo en el sistema de pago en línea). El valor predeterminado es SHA256.
Descripción de cómo se calcula el valor de la función hash y ejemplos de cálculos de
para mensajes básicos.
NOTAS: Los ejemplos no tienen en cuenta todos los posibles
campos opcionales, por lo que si dichos campos están presentes en un
mensaje concreto, deben incluirse en la función de acceso directo en el orden del
número que aparece junto al campo.
El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos concatenados del mensaje (concatenación de campos). Los valores de los campos se concatenan, sin nombres de parámetros, y se inserta un separador (en forma de carácter |) entre valores consecutivos (no vacíos). El orden en el que se pegan los campos sigue el orden en el que aparecen en la lista de parámetros de la documentación.
IMPORTANTE En ausencia de un parámetro opcional en el mensaje o en el caso de un valor de parámetro vacío, ¡no utilice el separador!
A la cadena creada de este modo se le añade al final una
clave, que es compartida entre el Servicio Asociado y el Sistema de Pago en Línea. A partir de la cadena
creada de este modo, se calcula el valor de la función hash, que constituye el
valor del campo Hash del mensaje.
Hash = function(valores_campo_1_mensaje + "|" + valores_campo_2_mensaje + "|" + ... + "|" + values_field_n_message + "|" + key_shared);
Datos del Servicio de Atención al Socio:
ServiceID = 2clave_compartida = 2prueba2
Dirección de la pasarela https://{host_gates}/pathway
a. Inicio de la operación.
Llamada POST sin cesta, con parámetros:
ServicioID=2
OrderID=100
Importe=1,50
Hash=2ab52e6918c6ad3b69a8228a2ab815f11ad58533eeed963dd990df8d8c3709d1
donde
Hash=SHA256(“2|100|1.50|2test2”)
b. Inicio de la transacción. Llamada POST con el carrito de la compra.
TIP: Opción tratada en detalle en la sección Cesta de productos.
ServiceID = 2
OrderID = 100
Importe = 1,50
Producto (descrito a continuación)
clave_compartida = 2prueba2
Cesta de productos (XML)
<?xml version="1.0" encoding="UTF-8"?>
<productList>
<product>
<subAmount>1.00</subAmount>
<params>
<param name="productName" value="Nazwa produktu 1" />
</params>
</product>
<product>
<subAmount>0.50</subAmount>
<params>
<param name="productType" value="ABCD" />
<param name="ID" value="EFGH" />
</params>
</product>
</productList>
Tras codificar con la función base64, obtenemos el valor del parámetro Product:
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cHJvZHVjdExpc3Q+PHByb2R1Y3Q+PHN1YkFtb3VudD4xLjAwPC9zdWJBbW91bnQ+PHBhcmFtcz48cGFyYW0gbmFtZT0icHJvZHVjdE5hbWUiIHZhbHVlPSJOYXp3YSBwcm9kdWt0dSAxIiAvPjwvcGFyYW1zPjwvcHJvZHVjdD48cHJvZHVjdD48c3ViQW1vdW50PjAuNTA8L3N1YkFtb3VudD48cGFyYW1zPjxwYXJhbSBuYW1lPSJwcm9kdWN0VHlwZSIgdmFsdWU9IkFCQ0QiIC8+PHBhcmFtIG5hbWU9IklEIiB2YWx1ZT0iRUZHSCIgLz48L3BhcmFtcz48L3Byb2R1Y3Q+PC9wcm9kdWN0TGlzdD4=
El valor Hash se calcula del siguiente modo:
Hash=SHA256(“2|100|1.50|PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cHJvZHVjdExpc3Q+PHByb2R1Y3Q+PHN1YkFtb3VudD4xLjAwPC9zdWJBbW91bnQ+PHBhcmFtcz48cGFyYW0gbmFtZT0icHJvZHVjdE5hbWUiIHZhbHVlPSJOYXp3YSBwcm9kdWt0dSAxIiAvPjwvcGFyYW1zPjwvcHJvZHVjdD48cHJvZHVjdD48c3ViQW1vdW50PjAuNTA8L3N1YkFtb3VudD48cGFyYW1zPjxwYXJhbSBuYW1lPSJwcm9kdWN0VHlwZSIgdmFsdWU9IkFCQ0QiIC8+PHBhcmFtIG5hbWU9IklEIiB2YWx1ZT0iRUZHSCIgLz48L3BhcmFtcz48L3Byb2R1Y3Q+PC9wcm9kdWN0TGlzdD4=|2test2”)
Datos del Servicio de Atención al Socio:
ServiceID = 2
clave_compartida = 2prueba2
<https://sklep_nazwa/strona_powrotu?ServiceID=2>&OrderID=100&Hash=254eac9980db56f425acf8a9df715cbd6f56de3c410b05f05016630f7d30a4ed
donde
Hash=SHA256("2|100|2test2")
Datos del Servicio de Atención al Socio:
serviceID = 1
clave_compartida = 1prueba1
ITN (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transactionList>
<serviceID>1</serviceID>
<transactions>
<transaction>
<orderID>11</orderID>
<remoteID>91</remoteID>
<amount>11.11</amount>
<currency>PLN</currency>
<gatewayID>1</gatewayID>
<paymentDate>20010101111111</paymentDate>
<paymentStatus>SUCCESS</paymentStatus>
<paymentStatusDetails>AUTHORIZED</paymentStatusDetails>
</transaction>
</transactions>
<hash>a103bfe581a938e9ad78238cfc674ffafdd6ec70cb6825e7ed5c41787671efe4</hash>
</transactionList>
donde
Hash=SHA256(“1|11|91|11.11|PLN|1|20010101111111|SUCCESS|AUTHORIZED|1test1”)
Ejemplo de respuesta (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>1</serviceID>
<transactionsConfirmations>
<transactionConfirmed>
<orderID>11</orderID>
<confirmation>CONFIRMED</confirmation>
</transactionConfirmed>
</transactionsConfirmations>
<hash>c1e9888b7d9fb988a4aae0dfbff6d8092fc9581e22e02f335367dd01058f9618</hash>
</confirmationList>
donde el valor
Hash=SHA256("1|11|CONFIRMED|1test1");
Datos del Servicio de Atención al Socio:
ServiceID = 100
MessageID = 11111111111111111111111111111111
Divisas = PLN,EUR
Idioma = EN
clave_compartida = 1prueba1
donde el valor
Hash=SHA256('100|11111111111111111111111111111111|PLN,EUR|PL|1test1')
La respuesta a la llamada anterior puede ser la siguiente (nota: no hay campo hash en la respuesta):
{
"result": "OK",
"errorStatus": null,
"description": null,
"gatewayGroups": [
{
"type": "PBL",
"title": "Przelew internetowy",
"shortDescription": "Wybierz bank, z którego chcesz zlecić płatność",
"description": null,
"order": 1,
"iconUrl": null
},
{
"type": "BNPL",
"title": "Kup teraz, zapłać później",
"shortDescription": "Kup teraz, zapłać później",
"description": null,
"order": 2,
"iconUrl": null
}
],
"serviceID": "10000",
"messageID": "2ca19ceb5258ce0aa3bc815e80240000",
"gatewayList": [
{
"gatewayID": 106,
"name": "Płatność testowa PBL",
"groupType": "PBL",
"bankName": "NONE",
"iconURL": "https://testimages.autopay.eu/pomoc/grafika/106.gif",
"state": "OK",
"stateDate": "2023-10-03 14:35:01",
"description": "Płatność testowa",
"shortDescription": null,
"descriptionUrl": null,
"availableFor": "BOTH",
"requiredParams": ["Nip"],
"mcc": {
"allowed": [1234, 9876],
"disallowed": [1111]
},
"inBalanceAllowed": true,
"minValidityTime": null,
"order": 1,
"currencies": [
{
"currency": "PLN",
"minAmount": 0.01,
"maxAmount": 5000.00
}
],
"buttonTitle": "Płacę"
},
{
"gatewayID": 701,
"name": "Zapłać później z Payka",
"groupType": "BNPL",
"bankName": "NONE",
"iconUrl": "https://testimages.autopay.eu/pomoc/grafika/701.png",
"state": "OK",
"stateDate": "2023-10-03 14:37:10",
"description": "<div class=\"payway_desc\"><h1>Dane dotyczące kosztu</h1><p>Zapłać później - jednorazowo do 45 dni (...). Szczegóły oferty na: <a href="?r="https://payka.pl\" target=\"_blank\">Payka.pl</a></p></div>",
"shortDescription": "Zapłać później - jednorazowo do 45 dni lub w kilku równych ratach",
"descriptionUrl": null,
"availableFor": "B2C",
"requiredParams": [],
"mcc": null,
"inBalanceAllowed": false,
"minValidityTime": 60,
"order": 2,
"currencies": [
{
"currency": "PLN",
"minAmount": 49.99,
"maxAmount": 7000.00
}
],
"buttonTitle": "Płacę"
}
]
}
Este capítulo describe las reglas relacionadas con el intercambio de mensajes entre el PA y la Plataforma Integradora dentro de la funcionalidad de añadir y editar Servicios, que por defecto se realiza utilizando la API REST y opcionalmente utilizando los Web-Services del protocolo SOAP (el Servicio proporciona su definición en forma de un documento WSDL).
El Socio proporciona un enlace en su Plataforma, cuya selección por parte de el Cliente envía un mensaje a AP para recibir un enlace que dirige al Formulario del Integrador preparado por AP (los efectos visuales como el esquema de colores o el logotipo del Integrador en el formulario se determinan durante la integración).
NOTA También es posible incrustar el Formulario Integrador preparado por Autopay directamente en el sitio web Integrador (en un Iframe). Para ello, se utiliza un elemento HTML denominado Iframe. El uso de este tipo de solución implica trabajo adicional por parte del Integrador, pero permite al Socio permanecer en el sitio web del Integrador durante todo el proceso de registro/edición de la tienda. La solución se describe detalladamente en el capítulo titulado "El sitio web del integrador". "Widget de incorporación".
Los datos recogidos en el formulario (una vez cumplimentado por el cliente) son procesados por AP, donde, dependiendo del tipo de formulario, se realiza el registro/edición/adición de otro servicio. Tras superar con éxito este paso, los datos de configuración del servicio y los enlaces de verificación (al editar datos no sensibles, los enlaces no aparecerán) se envían de forma asíncrona al Integrador a través de los canales establecidos durante la integración. Paralelamente, también se envía al cliente un correo electrónico que contiene enlaces al pago de verificación (es posible desactivar este envío para sustituirlo por una comunicación que tenga lugar directamente a través del Integrador).
El cliente en este momento es redirigido automáticamente a la página de retorno del Integrador (la dirección se determina durante la integración) o se le presenta una página de agradecimiento por utilizar el servicio, que opcionalmente puede incluir enlaces para la verificación del pago y/o un enlace a la Plataforma del Integrador.
Una vez que el cliente ha pagado la transacción de verificación, AP comprueba la corrección de los datos declarados por dicho cliente durante el registro del servicio. Si AP asigna un estado de verificación positivo, se activa el servicio de pago del servicio y se envía un mensaje a el Cliente con los términos y condiciones aceptados por éste en el formulario de registro.
IMPORTANTE La versión de producción del servicio se encuentra detrás del firewall. Acceso se asigna para un finito y definido durante la integración de la IP pool. Esto no se aplica al entorno de prueba.
IMPORTANTE Para un único Integrador en un entorno determinado (prueba/producción) se proporciona un único ID de plataforma (PlatformID) y una clave compartida utilizada para construir el hash de todos los mensajes intercambiados entre el Integrador y el PA dentro del proceso de registro y edición de servicios.
IMPORTANTE El enlace generado por el PA que conduce al formulario
para registrar/editar datos de servicio tiene un tiempo de validez predeterminado de 24 horas.
Este valor puede modificarse a petición del Integrador.
IMPORTANTE No está permitido compartir de ninguna forma (tampoco en código que se ejecute en un servidor de terceros) los datos de autorización del servicio prestado por el PA (PlatformID/key compartida).
IMPORTANTE Si, al registrarse o editar una tienda, el cliente selecciona varias divisas con las que se pueden realizar pagos en la tienda, cada una de estas divisas, junto con la cuenta de facturación que se le haya asignado, deberá verificarse por separado, mediante una transferencia de verificación.
IMPORTANTE En el formulario utilizado para la edición de datos, la verificación de identidad debe tener lugar antes de que el
en él se muestren los datos actuales del Servicio. Para
este fin, al Cliente se le presentan dos canales de verificación: un
mensaje sms o un correo electrónico. Tras seleccionar uno de ellos, se envía al cliente un
código de verificación (para ello se utiliza el número de teléfono o
dirección de correo electrónico facilitados por el cliente durante el proceso de registro), que deberá ser
introducido por el cliente en un formulario adicional. Una vez cumplimentado correctamente el
de este campo y verificado por AP, se concede al Cliente acceso al
formulario de edición de datos con todo su contenido.
NOTAS: En parte Procesamiento de transacciones y liquidaciones Se describen las
funcionalidades y cómo se integran en el ámbito relacionado con la gestión de
pagos por el Servicio y los servicios relacionados con la gestión de pagos, por ejemplo,
esquema de facturación.
En el modelo Integrador no están disponibles las siguientes opciones funciones de la parte transaccional:
a) Datos que deben intercambiarse durante la integración
b) Cesta de productos
El intercambio de mensajes (en formato JSON) entre el PA y la Plataforma Integradora, implementando la funcionalidad de descarga de enlaces a la forma de registro/edición de los servicios, se realiza a través de una API REST. El acceso al servicio está asegurado mediante el filtrado de direcciones IP.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | platformId | SÍ | entero | El identificador único permanente de la Plataforma asignado por el Sistema de Pago en Línea. |
2 | messageId | SÍ | cadena{32} | Identificador único de la solicitud dentro de la Plataforma facilitado por la parte que inicia el mensaje en cuestión. |
3 | messageTime | SÍ | dateTime | Hora de generación del mensaje, se rechazarán los mensajes cuya hora sea posterior en más de 5 minutos a la hora del servidor del Sistema de Pago Online. Es una buena idea establecer la hora del mensaje now()-1min, en caso de que la hora de los servidores no esté sincronizada. Ejemplo: 2016-07-20T09:35:00.000 (mensaje generado en 2016-07-20 09:36:00). |
s.f. | hash | SÍ | cadena | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Al final de la cadena anterior se pega una clave compartida entre el sistema de plataforma y el sistema de pago en línea. A partir de la cadena resultante, se calcula el valor de la función hash SHA256 y éste es el valor del campo Hash del mensaje. Hash = SHA256(valores_mensaje + clave compartida) |
s.f. | formAction | SÍ | cadena | Parámetro que indica qué enlace de formulario devolver en respuesta a una solicitud enviada. Valores permitidos:
|
s.f. | formParams | SÍ/NO | cadena{32} | El requisito depende de los acuerdos individuales con el Integrador. Se trata de un objeto que contiene campos adicionales, que es información para el PA sobre qué configuración del Servicio registrado espera el Integrador. En los casos en los que el Integrador disponga de cierta información sobre el Partner, puede proporcionarla en la solicitud de enlace, con el fin de determinar la configuración del servicio del Partner, reducir el número de campos del formulario de registro/edición y no requerir al Partner que introduzca los mismos datos de nuevo. Para los campos indicados a continuación, es posible configurar su visibilidad en función de la formAction (REGISTER/UPDATE). Esto significa que, por ejemplo, el campo SERVICE_URL puede ser especificado por el integrador en la consulta de enlace del formulario y mostrarse en el formulario de registro como editable, pero puede ocultarse en el formulario de edición de datos. Para fromAction = ADD_SERVICE el comportamiento de los campos se define siempre de la misma manera que para fromAction = REGISTER. Campos disponibles actualmente:
|
Ejemplo 1: Registro de servicios
{
"platformId":1,
"messageId":"22111111112411111111111111111130",
"messageTime":"2016-07-20T09:35:00.000",
"hash":"43688c048e451fba81ea7895cca13c5b6eb953a6ddf23c6089918259163381e1",
"formAction":"REGISTRATION",
"formParams":{
"SERVICE_URL":"https://serivce-integrator-test.pl",
"COMMISSION_MODEL":{
"PLN":"5"
},
"IS_CARDS_ENABLED":"TRUE"
}
}
Ejemplo 2: Edición de los datos de un servicio con ID = 11111
{
"platformId":1,
"messageId":"11111111111111111111111111211254",
"messageTime":"2016-07-20T09:35:00.000",
"hash":"b16c13f8b2f6e43d583689287aaa8ca87181d037df8083c9d678e34a23983750",
"formAction":"UPDATE",
"acceptorId":120,
"serviceIds":[
11111
]
}
Ejemplo 3: Edición de los datos de un servicio con ID = 11111
{
"platformId":1,
"messageId":"11111111111111111111111111211254",
"messageTime":"2016-07-20T09:35:00.000",
"hash":"b16c13f8b2f6e43d583689287aaa8ca87181d037df8083c9d678e34a23983750",
"formAction":"UPDATE",
"formParams":{
"SERVICE_URL":"https://serivce-integrator-test-nowy.pl",
"COMMISSION_MODEL":{
"PLN":"4"
},
"acceptorId":120,
"serviceIds":[
11111
]
}
Ejemplo 4: Añadir otra tienda a un comercio existente con ID = 222222
{
"platformId":1,
"messageId":"22111111112411111111111111111131",
"messageTime":"2016-07-20T09:35:00.000",
"hash":"81bc2f50d4284cf4c638c4cf0ca6a07827eccf937152db151979b394a67a863d",
"formAction":"ADD_SERVICE",
"acceptorId":222222,
"formParams":{
"SERVICE_URL":"https://serivce-integrator-test.pl",
"COMMISSION_MODEL":{
"PLN":"5"
},
"IS_CARDS_ENABLED":"TRUE"
}
}
Ejemplo 5: Registro de tiendas en el mercado español.
{
"platformId":1,
"messageId":"22111111112411111111111111111131",
"messageTime":"2016-07-20T09:35:00.000",
"hash":"81bc2f50d4284cf4c638c4cf0ca6a07827eccf937152db151979b394a67a863d",
"formAction": "REGISTRATION",
"formParams": {
"SERVICE_NAME": "Test ES 13",
"SERVICE_URL": "https://serivce-integrator-test.pl",
"ITN_URL": "https://serivce-integrator-test.pl/itn",
"NUMERIC_TRADE": "58",
"IS_REFUNDS_ENABLED": "true",
"RETURN_URL": "https://serivce-integrator-test.pl/return",
"COMPANY_NAME": "Test ES Company",
"TAX_ID": "ES04211376N",
"CITY": "Madrid",
"COUNTRY": "ES",
"POSTAL_CODE": "28006",
"ADDRESS": "Testino 35",
"IS_CARDS_ENABLED": "true",
"ACTIVITY_KIND": "FOREIGN",
"LEGAL_FORM": "AUTONOMO",
"REGISTRATION_DATE": "2012-01-01",
"REGISTRATION_COUNTRY": "ES",
"CONTACT_EMAIL": "test@test.autopay.eu",
"PHONE": "780171556",
"NRB": "7720387252204459354426",
"STATEMENT_DESCRIPTOR": "test shop ES",
"LANGUAGE": "ES"
}
}
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
TIP: Respuesta correcta - estado http 200.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | enlace | SÍ | entero | Incluye un enlace generado al formulario de inscripción. |
2 | messageId | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio con una longitud de 32 caracteres alfanuméricos latinos (por ejemplo, basado en UID), el valor del campo debe ser único dentro del Integrador. |
3 | formHash | SÍ | cadena | El identificador del enlace al formulario, que utiliza el Integrador para asociar un enlace al formulario de un cliente concreto con el mensaje enviado tras el registro, informando de la configuración del servicio resultante. |
s.f. | hash | SÍ | cadena | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de la cadena que contiene los campos encadenados del mensaje (concatenación de campos). Sólo se concatenan los valores de los campos, sin los nombres de los parámetros El orden de concatenación de los campos sigue el orden. |
TIP: Respuesta con mensaje de error - estado http 400.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
s.f. | errores | SÍ/NO | Incluye un enlace generado al formulario de inscripción. | |
s.f. | campo | SÍ | cadena | Indica el campo afectado por el error. |
s.f. | error | SÍ | cadena | Descripción verbal del error. |
s.f. | errorCode | SÍ | entero | Código de error - lista completa de errores a continuación. |
Ejemplo de respuesta correcta:
{
"link": "https://integrator-form-domain/ e2287514541105a2eda2b85751e88be5998aec8c99cd83ba3073365ce1a243a1",
"hash": "f9e02e83fe50920ee2efb0d2322b6200a71f3afcc366893487ced7ad2330a610",
"messageId": "11111111111111111111111111111229",
"formHash": "e2287514541105a2eda2b85751e88be5998aec8c99cd83ba3073365ce1a243a1"
}
Ejemplos de respuesta incorrecta:
{
"errors": [
{
"field": "acceptorId",
"error": "Value for field acceptorId required!",
"errorCode": 6003
}
]
}
>
{
"errors": [
{
"field": "messageTime",
"error": "Message time is outdated",
"errorCode": 6016
}
]
}
>
{
"errors": [
{
"field": "hash",
"error": "Invalid hash",
"errorCode": 6000
}
]
}
Parámetro | Código de error | Descripción |
---|---|---|
hash | 6000 | Hash incorrecto. |
messageId | 6001 | Valor del parámetro messageId no es único. |
acceptorId | 6002 | Se ha especificado un parámetro acceptorIdque no está permitido. |
acceptorId | 6003 | Parámetro acceptorId no se indica y es obligatorio. |
serviceId | 6004 | Se ha especificado un parámetro serviceIdque no está permitido. |
acceptorId | 6005 | Aceptador con el Id no existe. |
serviceId | 6006 | Servicio con declarado Id no existe. |
serviceIds | 6007 | Parámetro serviceIds contiene más o menos de un elemento. |
serviceIds | 6008 | La tienda está siendo revisada actualmente, no es posible hacer otra edición. |
formParams | 6009 | Se dan parámetros adicionales para el formulario de edición que no están permitidos. |
formParams | 6010 | La solicitud de un enlace para registrar el servicio proporcionó parámetros desconocidos. |
formParams | 6011 | La solicitud de un enlace de registro no especificaba el parámetro requerido. |
formParams | 6012 | En la solicitud de un enlace de registro, el formato del parámetro era incorrecto. |
formParams | 6013 | La solicitud de un enlace al registro era errónea ComisiónModelo. |
formParams | 6014 | En la solicitud del enlace de registro se proporcionó una moneda no admitida. |
messageTime | 6015 | Formato incorrecto de la fecha enviada en la consulta del enlace del formulario. |
messageTime | 6016 | La fecha enviada en la consulta del enlace del formulario no está fuera del rango aceptable. |
platformId | 6017 | Parámetro platformId no se indica y es obligatorio. |
messageId | 6018 | Parámetro messageId no se indica y es obligatorio. |
messageId | 6019 | Valor del parámetro messageId tiene una longitud incorrecta. |
formAction | 6020 | Valor de parámetro no permitido formAction. |
messageTime | 6021 | Parámetro messageTime no se indica y es obligatorio. |
hash | 6022 | El parámetro hash no está especificado y es obligatorio. |
hash | 6023 | Se ha especificado un valor incorrecto para el parámetro hash. |
formAction | 6024 | Parámetro formAction no se indica y es obligatorio. |
hash | 6025 | Se ha especificado un protocolo no válido en alguna de las URL. Se esperaba HTTPS. |
cabecera | 6029 | No se especifica el parámetro de cabecera. |
formparams | 6030 | El valor dado del parámetro TIN no es único. |
formparams | 6031 | El valor especificado del parámetro SERVICE_URL no es válido. |
formparams | 6032 | Se ha especificado un valor no válido para el parámetro CONTACT_EMAIL. |
formparams | 6033 | Se ha especificado un valor no válido para el parámetro COMPLAINT_EMAIL. |
formparams | 6034 | Se ha especificado un valor no válido para el parámetro REPORT_EMAIL. |
formparams | 6035 | Valor incorrecto especificado para el parámetro INVOICE_EMAIL. |
formparams | 6036 | Se ha especificado un valor incorrecto para el parámetro COUNTRY. |
formparams | 6037 | Se ha especificado un valor no válido para el parámetro PHONE_NUMBER. |
formparams | 6038 | El valor del parámetro ITN_URL tiene una longitud inaceptable. |
formparams | 6039 | El valor del parámetro RETURN_URL tiene una longitud inaceptable. |
formparams | 6040 | El valor del parámetro SERVICE_NAME tiene una longitud inaceptable. |
formparams | 6041 | Se ha especificado un valor incorrecto para el parámetro LEGAL_FORM. |
formparams | 6042 | Se ha especificado un valor no válido para el parámetro REGISTRATION_COUNTRY. |
formparams | 6043 | Se ha introducido un valor incorrecto para el parámetro IDIOMA. |
formparams | 6044 | El valor del parámetro SERVICE_URL tiene una longitud inaceptable. |
formparams | 6045 | Valor incorrecto especificado para el parámetro TAX_ID. |
- | 6099 | Se ha producido un error inesperado/no especificado. |
Se trata de una opción adicional ofrecida por Autopay en el proceso de incorporación de la tienda, que permite al Integrador incrustar el formulario
directamente en el sitio web del Integrador. En esta versión de la solución, el formulario de registro/edición de la tienda
se sigue preparando y manteniendo en el sitio de Autopay, con la diferencia de que el Socio pasa por todo el proceso estando
en el sitio del Integrador, obviando la redirección al dominio de Autopay. La colocación del formulario en el sitio
del Integrador se realiza mediante un elemento HTML denominado IFRAME. Un Integrador que opte por este tipo de solución deberá
implementar adicionalmente una funcionalidad para recibir los eventos enviados por el iframe de Autopay,
necesaria para la correcta visualización del Formulario de Onboarding en el sitio del Integrador.
NOTA Autopay recomienda incrustar el widget de onboarding en un sitio Integrador cuyo sitio web esté asegurado con un certificado SSL.
NOTA La dirección web del formulario Onboarding colocada en el IFRAME del sitio Integrator es un valor variable
(el parámetro formHash del enlace cambia), por lo que debe consultarse antes cada vez que se muestre la página del formulario
en el sitio Integrator.
<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Example usage of Autopay onboarding widget</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
padding: 0;
margin: 0;
}
.container {
width: 100%;
padding-left: 15px;
padding-right: 15px;
max-width: 1200px;
margin: 0 auto;
}
header {
padding: 30px 0;
border-bottom: 1px solid #ccc;
}
footer {
padding: 30px 0;
border-top: 1px solid #ccc;
}
iframe {
width: 700px;
border: 0;
}
</style>
</head>
<body>
<header>
<div class="container">
INTEGRATOR PAGE HEADER
</div>
</header>
<main>
<section>
<div class="container">
<h1>Example usage of Autopay onboarding widget</h1>
<p>integrator text before</p>
</div>
</section>
<section>
<div class="container">
<iframe id="iframe" src="?r=quot;https://adres-formularza-onboardingowego/form/<formHash>"></iframe>
</div>
</section>
<section>
<div class="container">
<p> integrator text after</p>
</div>
</section>
</main>
<footer>
<div class="container">
INTEGRATOR PAGE FOOTER
</div>
</footer>
<script type="text/javascript">
// wait for page to load everything
document.addEventListener("DOMContentLoaded', function() {
// create listener for widget events
window.addEventListener('message', (e) => {
// if event origin not matches autopay onboarding origin, then event not belongs to widget
if (!/onboarding\.autopay\.eu$/.test(e.origin) {
return;
}
// if there is no data in event or data is not string, then event is not valid
if (!e.data || typeof e.data !== 'string') {
return;
}
let messageData;
// parse event data string to JSON, if it fails, messageData will remain empty
try {
messageData = JSON.parse(e.data)
} catch (err) {}
if (!messageData) {
return;
}
// listener for HEIGHT_CHANGE event, thanks to which the iframe window is at full height and the scroll bar is not displayed
if (messageData.event === 'HEIGHT_CHANGE') {
document.getElementById('iframe').style.height = messageData.data + 'px'
}
// listener for SCROLL_TOP event, which scrolls page to iframe top, because scroll can't happen in full height iframe window
if (messageData.event === 'SCROLL_TOP') {
const scrollToPosition = window.scrollY + document.getElementById('iframe').getBoundingClientRect()['y'];
window.scrollTo({left: 0, top: scrollToPosition, behavior: 'smooth'});
}
// listener for FORM_SUCCESS event, which provides necessary data to continue onboarding process
if (messageData.event === 'FORM_SUCCESS') {
console.log('Verification links:', messageData.data.verificationLinks)
}
})
})
</script>
</body>
</html>
La redirección del cliente puede tener lugar directamente después de la correcta
registro/edición de la tienda o puede estar disponible en la página con
un agradecimiento en forma de enlace.
Una vez que el Cliente ha enviado el formulario y finalizado el proceso de registro/edición, el PA debe enviar los datos de configuración del Servicio y los Enlaces de Verificación al Integrador. Esto puede hacerse de varias
maneras. Los canales de envío se acuerdan con el Integrador durante la
integración.
Hacemos posible proporcionar la información anterior mediante el intercambio de
mensajes a través de REST, tecnología de servicios web o mediante el envío de
mensajes de correo electrónico a través de correo electrónico (en forma de archivo protegido por contraseña).
Cada uno de los canales de envío dispone de su propio sistema de renovación en caso de que falle el intento de
envío de información al Integrador.
Por motivos de seguridad, sugerimos que el intercambio de información de datos de configuración se realice utilizando la API REST (por defecto) o Web-Services en un túnel IPSec compilado o filtrando direcciones IP.
Se utiliza un campo para asociar un mensaje ICN (recibido por el Integrador) con un registro de cliente
específico del formulario. formHash, que se
envía tanto en el mensaje ICN como en respuesta a la consulta del
enlace de formulario. De este modo se garantiza que el integrador disponga de información para
qué registro recibió los datos de configuración en el mensaje ICN.
El intercambio de mensajes entre el PA y el Servicio de Socios que implementa la funcionalidad de añadir y editar Servicios de Socios se lleva a cabo a través de utilizando la API REST. Los mensajes se envían en formato JSON.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | acceptorId | SÍ | entero | Id de aceptor. |
2 | serviceId | SÍ | entero | Id. de servicio. |
3 | serviceKey | SÍ | cadena | La sal hash asignada al servicio. Con su ayuda, el Integrador generará el hash utilizado en los mensajes relativos al proceso de pago y a la facturación de las transacciones. |
4 | enlace | SÍ | cadena | Enlace a la transferencia de verificación. En la comunicación proporcionada como una lista de enlaces de objetos verificaciónEnlaces. Si se pasan varios enlaces de verificación, el orden para calcular el hash debe ser el mismo que el orden en que aparecen los enlaces en el mensaje. |
s.f. | hash | SÍ | entero | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Ejemplo de cálculo: SHA256(valor_acceptoridvalor_ serviceIdvalue_serviceKeyworth_link1value_link2salt_to_hash) |
s.f. | verificaciónEnlaces | NO | Objeto que almacena una lista de parámetros relativos a los enlaces de verificación. | |
s.f. | divisa | NO | cadena | La moneda a la que se refiere el enlace de verificación. |
s.f. | panelInicio de sesión | NO | cadena | Acceso del cliente al panel de administración. |
s.f. | panelDirección | NO | cadena | URL del panel de administración. |
s.f. | formHash | SÍ | cadena | El identificador del enlace al formulario, que utiliza el Integrador para asociar un enlace al formulario de un cliente concreto con el mensaje enviado tras el registro, informando de la configuración del servicio resultante. |
s.f. | método | NO | cadena | Información sobre para qué tipo de formulario es la configuración enviada. Valores aceptables: REGÍSTRESE ACTUALIZACIÓN AÑADIR_SERVICIO |
Ejemplo 1.
{
"acceptorID":11111,
"serviceID":22222,
"serviceKey":"sa22a2729462f643cf4c989dddcf226b99b3a6bda11db43a433ab31a7ec2abe925",
"hash":"580a285b9bf95e60d4eaeb470d32858a5f0191a2a51b40a18ee7612fa9ced187",
"verificationLinks ":[
{
"link":"sampleLink",
"currency":"PLN"
}
],
"panelLogin":"sample panel login",
"panelPassword":"sample panel password",
"panelAddress":"sample panel address",
"formHash":"sample form hash",
"method":"REGISTER"
}
nombre | obligatorio | tipo | descripción |
---|---|---|---|
resultStatus | SÍ | cadena | Estado de la respuesta. Valores aceptables: OK ERROR |
descripción | SÍ | cadena | Descripción adicional de la respuesta. |
{
"resultStatus":"OK",
"description":"sample description"
}
El intercambio de mensajes entre el PA y el Servicio Asociado que realiza la funcionalidad de añadir y editar Servicios Asociados se lleva a cabo utilizando la tecnología Web-Services del protocolo SOAP.
El servicio proporciona su definición en forma de un documento WSDL (Web
Service Definitions Language), proporcionado por el PA durante
la integración.
<xsd:element name="InstantConfigurationNotificationRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:elementname="InstantConfigurationNotification" type="tns: InstantConfigurationNotification "/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name=" InstantConfigurationNotification ">
<xsd:sequence>
<xsd:sequence>
<xsd:element name="AcceptorID" type="xsd:int"/>
<xsd:element name="ServiceID" type="xsd:int"/>
<xsd:element name="ServiceKey" type="xsd:string"/>
<xsd:element name="Hash" type="xsd:string"/>
<xsd:element minOccurs="0" name="VerificationLinks" type="tns:VerificationLinks"/>
<xsd:element minOccurs="0" name="PanelLogin" type="xsd:string"/>
<xsd:element minOccurs="0" name="PanelPassword" type="xsd:string"/>
<xsd:element minOccurs="0" name="PanelAddress" type="xsd:string"/>
<xsd:element name="FormHash" type="xsd:string"/>
<xsd:element name="Method" type="tns:Method"/>
</xsd:sequence>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="VerificationLink">
<xsd:sequence>
<xsd:element name="Currency" type="xsd:string"/>
<xsd:element name="Link" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="VerificationLinks">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="VerificationLink" type="tns:VerificationLink"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="Method">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="REGISTER"/>
<xsd:enumeration value="UPDATE"/>
<xsd:enumeration value="ADD_SERVICE"/>
</xsd:restriction>
</xsd:simpleType>
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | AcceptorId | SÍ | entero | Id de aceptor. |
2 | ServiceId | SÍ | entero | Id. de servicio. |
3 | Clave de servicio | SÍ | cadena | La sal hash asignada al servicio. Con su ayuda, el Integrador generará el hash utilizado en los mensajes relativos al proceso de pago y a la facturación de las transacciones. |
4 | Enlace | NO | cadena | Enlace a la transferencia de verificación. |
s.f. | Hash | SÍ | entero | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Ejemplo de enumeración: SHA256(valor_acceptoridvalue_ servicioIdvalue_ servicioKeyworth_enlace1valor_enlace2salt_to_hash) |
s.f. | VerificaciónEnlaces | NO | cadena | Objeto que almacena una lista de objetos VerificaciónLink en Enlaces de verificación. |
s.f. | VerificaciónLink | NO | cadena | Objeto que almacena los parámetros relativos a los Enlaces de Verificación. |
s.f. | Enlace | NO | cadena | Enlace a la transferencia de verificación. |
s.f. | Moneda | NO | cadena | Moneda a la que se aplica el enlace de verificación. |
s.f. | PanelInicio de sesión | NO | cadena | Acceso del cliente al panel de administración. |
s.f. | PanelContraseña | NO | cadena | Contraseña temporal del cliente para el panel de administración. |
s.f. | PanelDirección | NO | cadena | Contraseña temporal URL del panel administrativo. |
s.f. | FormHash | SÍ | cadena | El identificador del enlace al formulario, que utiliza el Integrador para asociar un enlace al formulario de un cliente concreto con el mensaje enviado tras el registro, informando de la configuración del servicio resultante. |
s.f. | Método | NO | cadena | Información sobre para qué tipo de formulario es la configuración enviada. Valores aceptables: REGÍSTRESE ACTUALIZACIÓN AÑADIR_SERVICIO |
Ejemplo 1.
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2: InstantConfigurationNotificationRequest
xmlns:ns2="http://integrator/ws/">
< InstantConfigurationNotification>
<AcceptorID>11111</AcceptorID>
<ServiceID>22222</ServiceID>
<ServiceKey>22a2729462f643cf4c989dddcf226b99b3a6bda11db43a433ab31a7ec2abe925</ServiceKey>
<Hash>580a285b9bf95e60d4eaeb470d32858a5f0191a2a51b40a18ee7612fa9ced187</Hash>
<VerificationLinks>
<VerificationLink>
<Currency>PLN</Currency>
<Link>sampleLink</Link>
</VerificationLink>
</VerificationLinks>
<FormHash>generated_hash</FormHash>
<Method>REGISTER</Method>
</ InstantConfigurationNotification>
</ns2: InstantConfigurationNotificationRquest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<xsd:element name=" InstantConfigurationNotificationResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Result" type="tns:ResultStatus"/>
<xsd:element name="Description" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
>
<xsd:simpleType name="ResultStatus">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="OK"/>
<xsd:enumeration value="ERROR"/>
</xsd:restriction>
</xsd:simpleType>
nombre | obligatorio | tipo | descripción |
---|---|---|---|
EstadoResultado | SÍ | cadena | Estado de la respuesta. Valores aceptables: OK ERROR |
Descripción | SÍ | cadena | Descripción adicional de la respuesta. |
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2: InstantConfigurationNotificationResponse
xmlns:ns2="http://integrator/ws/">
<Result>OK</Result>
<Description>sample description</Description>
</ns2: InstantConfigurationNotificationResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
La información sobre el servicio se envía a la dirección de correo electrónico especificada por el
integrador en forma de archivo protegido por contraseña. El número de teléfono al
que deben enviarse las contraseñas se acuerda con el integrador durante
la integración.
El sistema Autopay permite al Integrador estar informado de los cambios en los datos ALD de la Tienda. Esto permite al Integrador por su parte para actualizar los datos que se han modificado en Autopay y presentarlos al Socio.
Esto se implementó mediante el envío de mensajes en formato JSON utilizando el método HTTP POST. El correcto funcionamiento del servicio requiere la implementación de un método en el lado del Integrador para aceptar el citado mensaje.
La estructura del mensaje enviado al Integrador se divide en tres nodos principales, como se muestra en la tabla siguiente.
Nombre del nodo | descripción |
---|---|
revisionHeader | Objeto que almacena datos sobre una revisión, es decir, una modificación del sistema realizada por un cliente en el sistema del Integrador. |
dataHeader | Objeto que almacena información para autenticar un mensaje |
currentData | Objeto que almacena información de los datos AML actuales para la Tienda en el lado Autopago. Se trata de los últimos datos verificados positivamente en el sistema Autopay. Si el mensaje está relacionado con un registro que no ha recibido un estado de verificación positivo en el campo revisionHeader.autopayVerificationStatus, entonces currentData = null (no hay datos verificados para este servicio/aceptante en el sistema). |
Ejemplo 1. Mensaje con estado de verificación positivo
{
"revisionHeader":{
"orderId":"123_2d87806818cf319d7127ffb",
"revisionId":"03d5627b-b9fe-40c0-ae32-5c9620d804ee",
"autopayVerificationStatus":"POSITIVE"
},
"dataHeader":{
"acceptorId":345,
"dataTime":"2024-01-16T 09:16:13",
"serviceId":123,
"hash":"35a56e960b4a4650b727b098bafd1912cf4e3012c8927ec29b3af6408bc99199"
},
"currentData":{
"company":{
"name":"Testowa firma",
"address":{
"address":"ul Testowa 77",
"postalCode":"80-462",
"city":"Gdańsk",
"country":"PL",
"street":null,
"houseNumber":null,
"flatNumber":null
},
"nip":"8219663675",
"regon":"955459555",
"edg":"123",
"krs":"1234567890",
"phone":{
"currentValue":"+48123456789",
"waitingValue":null
},
"representingPersons":[
{
"personName":{
"firstName":"Jan",
"lastName":"Kowalski"
},
"pesel":"PL",
"documentData":{
"number":"BKI332498",
"type":"ID",
"expirationDate":"2030-01-01",
"country":"PL"
},
"citizenship":"32061970611",
"birthData":{
"date":"1932-06-19",
"country":"PL"
}
}
],
"activityKind":"SP_ZOO",
"beneficials":[
{
"personName":{
"firstName":"Piotr",
"lastName":"Nowak"
},
"citizenship":"PL",
"pesel":"32061970611",
"birthDate":"1932-06-19"
}
],
"registrationDate":"2000-01-01",
"plenipotentiary":{
"personName":{
"firstName":"Jan",
"lastName":"Kowalski"
},
"citizenship":"PL",
"birthData":{
"date":"1932-06-19",
"country":"PL"
},
"pesel":"32061970611",
"documentData":{
"number":"BKI332498",
"type":"ID",
"expirationDate":"2030-01-01",
"country":"PL"
}
},
"physicalPerson":null,
"partners":[
{
"personName":{
"firstName":"Jan",
"lastName":"Kowalski"
},
"citizenship":"PL",
"pesel":"32061970611",
"birthData":{
"date":"1932-06-19",
"country":"PL"
},
"documentData":{
"number":"BKI332498",
"type":"ID",
"expirationDate":"2030-01-01",
"country":"PL"
}
}
]
},
"service":{
"name":"Testowy sklep",
"serviceUrl":"https://test.autopay.eu",
"urlITN":"https://test.autopay.eu/itn",
"returnUrl":"https://test.autopay.eu/return",
"trade":{
"id":1,
"name":"Alkohol"
},
"invoiceEmail":"invoice@test.autopay.eu",
"contactEmail":{
"currentValue":"contact@test.autopay.eu",
"waitingValue":null
},
"complaintEmail":"complaint@test.autopay.eu",
"reportEmail":"report@test.autopay.eu",
"balanceDetails":[
{
"settlementNRB":"59124053967877760136628953",
"currency":"PLN",
"swiftCode":null,
"commissionModel":2,
"regulationId":12
}
]
}
}
}
Ejemplo 2. Mensaje con estado de verificación positivo para una tienda en el mercado español
{
"revisionHeader":{
"orderId":"123_2d87806818cf319d7127ffb",
"revisionId":"03d5627b-b9fe-40c0-ae32-5c9620d804ee",
"autopayVerificationStatus":"POSITIVE"
},
"dataHeader":{
"acceptorId":345,
"dataTime":"2024-01-16T 09:16:13",
"serviceId":123,
"hash":"35a56e960b4a4650b727b098bafd1912cf4e3012c8927ec29b3af6408bc99199"
},
"currentData":{
"company":{
"name":"Test Company",
"address":{
"address":"ul Testinio 77",
"postalCode":"80-462",
"city":"Madrid",
"country":"ES",
"street":null,
"houseNumber":null,
"flatNumber":null
},
"nip":"1215505438",
"regon":null,
"edg":null,
"krs":null,
"phone":{
"currentValue":"123456789",
"waitingValue":null
},
"representingPersons":[
{
"personName":{
"firstName":"Joan",
"lastName":"Martinez"
},
"pesel":null,
"documentData":{
"number":"BKI332498",
"type":"ID",
"expirationDate":"2030-01-01",
"country":"ES"
},
"citizenship":"ES",
"birthData":{
"date":"1932-06-19",
"country":"ES"
}
}
],
"activityKind":"FOREIGN",
"beneficials":[
{
"personName":{
"firstName":"Roberto",
"lastName":"Marques"
},
"citizenship":null,
"pesel":null,
"birthDate":null
}
],
"registrationDate":"2000-01-01",
"plenipotentiary":null,
"physicalPerson":null,
"partners":[],
"language":"ES",
"taxId": "1215505438",
"registrationCountry":"ES",
"legalForm":"AUTONOMO",
"tradeRegisterName":"NO_REGISTER"
},
"service":{
"name":"Test shop",
"serviceUrl":"https://test.autopay.eu",
"urlITN":"https://test.autopay.eu/itn",
"returnUrl":"https://test.autopay.eu/return",
"trade":{
"id":1,
"name":"Alkohol"
},
"invoiceEmail":"invoice@test.autopay.eu",
"contactEmail":{
"currentValue":"contact@test.autopay.eu",
"waitingValue":null
},
"complaintEmail":"complaint@test.autopay.eu",
"reportEmail":"report@test.autopay.eu",
"balanceDetails":[
{
"settlementNRB":"59124053967877760136628953",
"currency":"EUR",
"swiftCode":"XXXXXXYY",
"commissionModel":2,
"regulationId":12
}
]
}
"addons": {
"service": {
"statementDescriptor": "shop name"
}
}
}
}
Ejemplo 3. Mensaje con estado de verificación positivo para una tienda en el mercado español
{
"revisionHeader":{
"orderId":"123_2d87806818cf319d7127ffb",
"revisionId":"03d5627b-b9fe-40c0-ae32-5c9620d804ee",
"autopayVerificationStatus":"POSITIVE",
"autopayVerificationStatusReasons": []
},
"dataHeader":{
"acceptorId":345,
"dataTime":"2024-01-16T 09:16:13",
"serviceId":123,
"hash":"35a56e960b4a4650b727b098bafd1912cf4e3012c8927ec29b3af6408bc99199"
},
"currentData":{
"company":{
"name":"Test Company",
"address":{
"address":"ul Testinio 77",
"postalCode":"80-462",
"city":"Madrid",
"country":"ES",
"street":null,
"houseNumber":null,
"flatNumber":null
},
"nip":"1215505438",
"regon":null,
"edg":null,
"krs":null,
"phone":{
"currentValue":"123456789",
"waitingValue":null
},
"representingPersons":[
{
"personName":{
"firstName":"Joan",
"lastName":"Martinez"
},
"pesel":null,
"documentData":{
"number":"***",
"type":"***",
"expirationDate":null,
"country":"***"
},
"citizenship":"ES",
"birthData":{
"date":"1932-06-19",
"country":"ES"
}
}
],
"activityKind":"FOREIGN",
"beneficials":[
{
"personName":{
"firstName":"Roberto",
"lastName":"Marques"
},
"citizenship":null,
"pesel":null,
"birthDate":null
}
],
"registrationDate":"2000-01-01",
"plenipotentiary":null,
"physicalPerson":null,
"partners":[],
"language":"ES",
"taxId": "1215505438",
"registrationCountry":"ES",
"legalForm":"AUTONOMO",
"tradeRegisterName":"NO_REGISTER"
},
"service":{
"name":"Test shop",
"serviceUrl":"https://test.autopay.eu",
"urlITN":"https://test.autopay.eu/itn",
"returnUrl":"https://test.autopay.eu/return",
"trade":{
"id":58,
"name":"Usługi medyczne"
},
"invoiceEmail":"invoice@test.autopay.eu",
"contactEmail":{
"currentValue":"contact@test.autopay.eu",
"waitingValue":null
},
"complaintEmail":"complaint@test.autopay.eu",
"reportEmail":"report@test.autopay.eu",
"balanceDetails":[
{
"settlementNRB":"ES1111111111111111111111",
"currency":"EUR",
"swiftCode":"XXXXXXYY",
"commissionModel":2,
"regulationId":12
}
]
}
"addons": {
"service": {
"statementDescriptor": "shop name"
}
}
}
}
Nombre del campo | Descripción |
---|---|
revisionHeader.revisionId | revisionHeader.revisionId |
revisionHeader.autopayVerificationStatus | Estado de verificación en el lado Autopay de los datos enviados como parte de la revisión. Este estado NO se aplica a los datos del nodo currentData |
revisionHeader.autopayVerificationStatusReasons | lista de motivos que deben cumplimentarse en caso de que autopayVerificationStatus = NEGATIVE o NEED_FEEDBACK |
revisionHeader.autopayVerificationStatusReasons.reason | Tipo de motivo del estado de verificación NEGATIVO o NEED_FEEDBACK. Valores aceptables: WRONG_ACTIVITY_KIND - forma jurídica incorrecta, WRONG_ACCOUNT_NUMBER - cuenta bancaria no válida, WRONG_ADDRESS - dirección incompatible, WRONG_URL_LINK - URL que no funciona, WRONG_DATA_ON_URL_LINK - los datos del asunto en el sitio web del médico no son válidos, WRONG_REPRESENTATIVE_BENEFICIARY_DATA - datos erróneos del representante/beneficiario, ACTIVITY_KIND_INACTIVE - actividad suspendida |
revisionHeader.autopayVerificationStatusReasons.description | descripción del motivo del estado de verificación NEGATIVO o NEED_FEEDBACK. La descripción puede enviarse en polaco, inglés, español o italiano en función de la configuración del integrador. |
revisionHeader.orderId | identificador de pago, en su caso, durante la creación de la revisión (acción de registro o actualización de datos) |
dataHeader.dataHora | fecha y hora de los datos descargados del sistema Autopay |
dataHeader.serviceId | id del servicio en cuestión |
dataHeader.acceptorId | id del interesado |
dataHeader.hash | SHA256(acceptorId|dataTime|serviceId|secret_key) eg: SHA256(345|2024-01-16T08:08:51.271|123|secret_key) |
datosactuales.empresa | datos de la empresa que registra el pago, principalmente datos AML |
currentData.service | datos de configuración del servicio |
Es posible que algunos de los datos de contacto requieran verificación por parte del cliente. Los campos que pueden requerir verificación son:
currentData.company.phone
currentData.service.contactEmail
Cada uno de estos campos se representa como un objeto:
{
"currentValue":"wartość",
"waitingValue":null
}
currentValue - valor actualmente en vigor en el sistema
waitingValue - en espera de verificación por parte del cliente. En una situación en la que el cliente ha introducido varios
valores sin verificar ninguno de ellos, el campo waitingValue contendrá el último. Un valor nulo significa que no hay datos
en espera de verificación por parte del cliente.
Puede haber varias formas de este titular:
Completamente terminado:
"revisionHeader":{
"revisionId":"046b8dcf-3581-4079-813c-34d0a2871fae",
"autopayVerificationStatus":"PENDING",
"orderId":"151007_2d87806818cf319d7127ffb"
}
Dicha cabecera se producirá cuando la transacción de verificación
de un cliente deba pagarse durante una acción iniciada por el Integrador.
OrderId vacío:
"revisionHeader":{
"revisionId":"046b8dcf-3581-4079-813c-34d0a2871fae",
"autopayVerificationStatus":"PENDING",
"orderId":null
}
Esta forma de encabezado se producirá cuando la acción del Integrador genere una verificación no sensible, es decir, que no requiera
el pago de la transacción de verificación.
No revisionHeader:
"revisionHeader":null
El revisionHeader no se producirá cuando Autopay inicialice un cambio dentro del servicio/aceptante
, por ejemplo, como resultado de una verificación periódica de datos.
El campo indica el estado de verificación de la revisión indicada. Valores posibles para este campo:
PENDIENTE - revisión pendiente
POSITIVO - la revisión ha sido aceptada
NEGATIVO - la revisión fue rechazada
NEED_FEEDBACK - información/acción necesaria del lado del cliente
Valor del campo revisionHeader.autopayVerificationStatus indica el estado de verificación por parte de Autopay y no está relacionado con la verificación de los datos de contacto realizada por el cliente.
Valor del campo revisionHeader.autopayVerificationStatus no se aplica a los datos del nodo currentData, es el estado de la revisión cargada.
Estado de verificación negativo:
"revisionHeader":{
"orderId":"123_2d87806818cf319d7127ffb",
"revisionId":"03d5627b-b9fe-40c0-ae32-5c9620d804ee",
"autopayVerificationStatus":"NEGATIVE",
"autopayVerificationStatusReasons": [
{
"reason": "ACTIVITY_KIND_INACTIVE",
"description": "działalność zawieszona"
},
{
"reason": "WRONG_REPRESENTATIVE_BENEFICIARY_DATA",
"description": "błędne dane reprezentanta/beneficjenta"
}
]
}
Dicho encabezado puede ocurrir si la Tienda recibe un estado de verificación de NEGATIVO o NEED_FEEDBACK después de la verificación por Autopay. El envío de un nodo autopayVerificationStatusReasons adicional es opcional y depende de la configuración del Integrador.
{
"personName":{
"firstName":"Jan",
"lastName":"Kowalski"
},
"pesel":"69010583482",
"documentData":{
"number":"BKI332498",
"type":"ID",
"expirationDate":"2030-01-01",
"country":"PL"
},
"citizenship":"PL",
"birthData":{
"date":"1951-06-19",
"country":"PL"
}
}
Campo currentData.company.address
El campo de dirección, dependiendo de los datos almacenados en Autopay, puede adoptar dos formas:
"address":{
"address":"ul Testowa 77/3",
"postalCode":"80-462",
"city":"Gdańsk",
"country":"PL",
"street":null,
"houseNumber":null,
"flatNumber":null
}
"address":{
"address":null,
"postalCode":"80-462",
"city":"Gdańsk",
"country":"PL",
"street":"ul Testowa",
"houseNumber":77,
"flatNumber":3
}
Campos adicionales
"language":"ES",
"taxId": "1215505438",
"registrationCountry":"ES",
"legalForm":"AUTONOMO",
"tradeRegisterName":"NO_REGISTER"
Estos son los campos enviados en caso de integración en un mercado distinto del polaco.
"statementDescriptor": "shop name"
Campo que contiene el nombre de la Tienda que se mostrará en los extractos bancarios (actualmente no está disponible el servicio para transcribir el valor de este campo en los extractos bancarios).
El proceso de hacer tarjetas de pago a disposición de la tienda requiere la verificación de la tienda tanto en el lado de AP y el lado del administrador de pago con tarjeta, por lo que el lanzamiento de por lo general toma más tiempo que la propia activación de la tienda.
El sistema permite enviar una notificación instantánea cuando
se activa o desactiva la posibilidad de realizar pagos mediante
tarjetas de pago en tienda, para garantizar la coherencia de la configuración de la tienda
entre la plataforma integradora y AP. Esto se implementó mediante
el envío de un mensaje en formato JSON utilizando la API REST.
NOTAS: El correcto funcionamiento del servicio requiere la implementación en el lado
del Integrador de un método para aceptar el citado mensaje.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceId | SÍ | entero | Un identificador único y permanente de la tienda asignado por el Sistema de Pago en Línea. |
2 | orderId | SÍ | cadena | El identificador único de la solicitud dada por el PA. Sintaxis orderId: valor ofserviceId_uniquelabel |
3 | cardsStatus | SÍ | cadena | Estado del lanzamiento de los pagos con tarjeta en la tienda. Valores disponibles: ACTIVO INACTIVO |
s.f. | hash | SÍ | cadena | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Al final de la cadena anterior se pega una clave compartida entre el sistema de plataforma y el sistema de pago en línea. A partir de la cadena resultante, se calcula el valor de la función hash SHA256 y éste es el valor del campo Hash del mensaje. Hash = SHA256(valores_mensaje + clave compartida) |
s.f. | divisas | SÍ | cadena | Lista de divisas para las que se ha modificado el estado de activación de los pagos con tarjeta |
Ejemplo.
{
"serviceId":"1111111",
"orderId":"22222",
"cardsStatus":"ACTIVE",
"hash":"81eb70b8f2c4576bfb375a7ccbfcfb196b235556bcc329aa40a3dc8bfd",
"currencies":["PLN","EUR","GBP","USD"]
}
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceId | SÍ | entero | Un identificador único y permanente de la tienda asignado por el Sistema de Pago en Línea. |
2 | orderId | SÍ | cadena | Identificador único de la solicitud facilitado por el PA. |
3 | confirmación | SÍ | cadena | Estado de confirmación: - CONFIRMADO - NO CONFIRMADO |
s.f. | hash | SÍ | cadena | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Al final de la cadena anterior se pega una clave compartida entre el sistema de plataforma y el sistema de pago en línea. A partir de la cadena resultante, se calcula el valor de la función hash SHA256 y éste es el valor del campo Hash del mensaje. Hash = SHA256(valores_mensaje + clave compartida) |
Ejemplo.
{
"serviceId":"1111111",
"orderId":"22222",
"confirmation":"CONFIRMED",
"hash":"81eb70bcb8f2c4576bfb375a7ccbfcfb196b2355986556b29aa40a3dc8bfd"
}
El sistema permite enviar una notificación inmediata al integrador cuando los canales de pago indicados se activan y desactivan en una tienda determinada. Esto se ha implementado mediante el envío de un mensaje en formato JSON. El correcto funcionamiento del servicio requiere la implementación de un método en el lado del Integrador para recibir dicho mensaje.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceId | SÍ | entero | Un identificador único y permanente de la tienda asignado por el Sistema de Pago en Línea. |
2 | orderId | SÍ | cadena | Un identificador único de solicitud asignado por Autopay. |
- | gatewayConfigurations | SÍ | Objeto que almacena una lista de canales de pago para los que se ha producido un cambio de actividad. | |
3 | gatewayConfiguration.gatewayId | SÍ | entero | Identificador del canal de pago. |
4 | gatewayConfiguration.active | SÍ | booleano | Información sobre si se ha activado o desactivado el canal de pago indicado. |
- | hash | SÍ | cadena | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Los valores de los campos se encadenan, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Al final de la cadena anterior se pega una clave, compartida entre el sistema de plataforma y el sistema de pago en línea. A partir de la cadena resultante, se calcula el valor de la función hash SHA256 y éste es el valor del campo Hash del mensaje. |
NOTAS: Si durante la integración con el Socio se ha establecido un separador para el recuento hash de los mensajes, se utilizará éste. En este caso, el recuento hash seguirá el esquema:
Hash = SHA256(campo_mensaje_1_valor + delimitador + campo_mensaje_2_valor + delimitador + campo_mensaje_3_valor + delimitador + [campos consecutivos separados por delimitador]+ clave_compartida)
Ejemplo:
{
"serviceId": 111111,
"gatewayConfigurations": [
{
"gatewayId": 101,
"active": false
},
{
"gatewayId": 100,
"active": true
}
],
"orderId": "47781_0a25c3c9-e0a7-4bfa-9bdf-75ca75c2569d",
"hash": "5f3dfeec2cea228e2f4db8840fdc0e4d91d224da195618c0c67c6a7ea53c1832"
}
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceId | SÍ | entero | Un identificador único y permanente de la tienda asignado por el Sistema de Pago en Línea. |
2 | orderId | SÍ | cadena | Un identificador único de solicitud asignado por Autopay. |
3 | confirmación | SÍ | cadena | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Al final de la cadena anterior se pega una clave compartida entre el sistema de plataforma y el sistema de pago en línea. A partir de la cadena resultante, se calcula el valor de la función hash SHA256 y éste es el valor del campo Hash del mensaje. Hash = SHA256(valores_mensaje + clave compartida) |
Ejemplo:
Przykład.
{
"serviceId":"1111111",
"orderId":"22222",
"confirmation":"CONFIRMED",
"hash":"81eb70bcb8f2c4576bfb375a7ccbfcfb196b2355986556b29aa40a3dc8bfd"
}
Mensaje para obtener datos de Socios que estén actualizados en el Sistema. Dado que AP está obligada a garantizar que los datos de los Socios soportados estén actualizados, éstos podrán ser actualizados (en cualquier momento) basándose en fuentes externas de confianza. En vista de lo anterior, se requiere que antes de cada visualización en la Plataforma Integradora, se realice una actualización de los mismos en la Plataforma llamando al método GetAMLCompanyData.
<xsd:element name="GetAMLCompanyDataReq">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="AcceptorID" type="xsd:int"/>
<xsd:element name="Header" type="tns:Header"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nombre de campo | tipo | descripción |
---|---|---|
AcceptorID | entero | ID de comerciante. |
Cabecera | cabecera | Objeto utilizado para proporcionar datos de cabecera relativos a la seguridad de la comunicación y la corrección de los datos transmitidos. |
<xsd:complexType name="Header">
<xsd:sequence>
<xsd:element name="PlatformId" type="xsd:string"/>
<xsd:element name="MessageTime" type="xsd:dateTime"/>
<xsd:element name="RequestId" type="xsd:long"/>
<xsd:element name="Hash" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | PlatformId | SÍ | cadena | El identificador único permanente de la Plataforma asignado por el Sistema de Pago en Línea. |
2 | MensajeHora | SÍ | dateTime | Hora de generación del mensaje, se rechazarán los mensajes cuya hora sea posterior en más de 5 minutos a la hora del servidor del Sistema de Pago Online. Es aconsejable establecer la hora del mensaje now()-1min, en caso de que la hora de los servidores no esté sincronizada. Ejemplo: 2016-07-20T09:35:00.000 (mensaje generado el 2016-07-20 09:36:00). |
3 | RequestId | SÍ | largo | Identificador único de la solicitud dentro de la Plataforma facilitado por la parte que inicia el mensaje en cuestión. |
s.f. | Hash | SÍ | cadena{64} | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Al final de la cadena anterior se pega una clave compartida entre el sistema de plataforma y el sistema de pago en línea. A partir de la cadena resultante, se calcula el valor de la función hash SHA256 y éste es el valor del campo Hash del mensaje. Hash = SHA256(valores_mensaje + clave compartida) Ejemplo: SHA256(11112016-07-20T09:35:00. 000111222333aaabbbccc) Dónde: PlatfromId = 1111 MessageTime = 2016-07-20T09:35:00.000 RequestId = 111222333 Clave compartida = aaabbbccc |
El mensaje es una respuesta a GetAMLCompanyDataResp.
<xsd:element name="GetAMLCompanyDataResp">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Result" type="xsd:string"/>
<xsd:element name="ErrorStatus" type="xsd:string" nillable="true"/>
<xsd:element name="Company" type="tns:Company"/>
<xsd:element name="isServiceActive" type="xsd:boolean" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nombre de campo | tipo | descripción |
---|---|---|
Resultado | cadena | OK - operación completada con éxito ERROR - error al editar un interlocutor |
ErrorStatus | cadena | Estado de error. |
Empresa | Empresa | Objeto con datos de la empresa Partner. |
isServiceActive | booleano | Información sobre si el servicio está activo. |
TIP: Tipo de mensaje Empresay sus componentes individuales
data-deeplanslation/>, se describen detalladamente en la sección Tipos compuestos.
El sistema permite al Integrador recuperar la lista completa actual de normativas correspondientes a los
tipos de comisión disponibles para el Integrador (CommissionModel) o una lista específica de normativas limitada por los filtros especificados en los
parámetros de solicitud. Para ello, llame al método getLegalData (https://domena_BMAutopay/getLegalData)
con los parámetros adecuados. El intercambio de mensajes entre Autopay y la plataforma Integrator está en formato JSON.
Todos los parámetros se pasan a través del método POST (Content-Type: application/json). A continuación se muestra una lista de
parámetros disponibles. El acceso al servicio está protegido mediante filtrado de direcciones IP.
Ordenar a hash | Nombre | Requerido | Tipo | Descripción |
---|---|---|---|---|
. | cabecera | SÍ | Objeto que almacena los campos de autorización del mensaje. | |
1 | platformId | SÍ | entero | El identificador único permanente de la Plataforma asignado por el Sistema de Pago en Línea. |
2 | messageId | SÍ | cadena{32} | un identificador único de la solicitud dentro de la Plataforma facilitado por la parte que inicia el mensaje. |
3 | messageTime | SÍ | dateTime | Hora de generación del mensaje, se rechazarán los mensajes cuya hora sea posterior en más de 5 minutos a la hora del servidor del Sistema de Pago Online. Es una buena idea establecer la hora del mensaje now()-1min, en caso de que la hora de los servidores no esté sincronizada. Ejemplo: 2016-07-20T09:35:00.000 (mensaje generado en 2016-07-20 09:36:00). |
- | hash | SÍ | cadena | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Al final de la cadena anterior se pega una clave compartida entre el sistema de plataforma y el sistema de pago en línea. A partir de la cadena resultante, se calcula el valor de la función hash SHA256 y éste es el valor del campo Hash del mensaje. Hash = SHA256(mensaje_campo_valor + clave_compartida). |
- | filterParams | NO | Un objeto que almacena los parámetros que son los filtros de la solicitud. Si no se envían los filtros en el mensaje de solicitud a Autopay, se devolverá la lista completa de términos y condiciones disponibles para el Integrador. | |
- | commissionmodelList | NO | Lista de los porcentajes de comisión para los que se deben devolver los reglamentos. Al especificar un tipo concreto se devolverán los reglamentos correspondientes. | |
- | languageList | NO | Lista de lenguas en las que debe devolverse la normativa. Ejemplo: Si se especifica PL, se mostrarán todas las normas escritas en polaco. |
Ejemplo.
Solicitud de una lista de reglamentos para las tasas de comisión 1 y 2, en polaco e inglés para la moneda PLN.
{
"header":{
"platformId":"111111",
"messageId":22222,
"messageTime":"2020-06-01 09:36:00",
"hash":"31772235489560079037848456"
},
"filterParams":{
"commissionmodelList":[
1,
2
],
"languageList":[
"PL",
"EN"
]
}
}
Respuesta correcta - http estado 200.
Ordenar a hash | Nombre | Requerido | Tipo | Descripción |
---|---|---|---|---|
1 | estado | SÍ | cadena | Valor: OK - en caso de estado http 200. |
2 | messageId | SI cadena {32} | Campo que devuelve el valor del identificador del mensaje de solicitud. | |
- | hash | SÍ | cadena | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. |
- | regulationList | SÍ | Un objeto que almacena una lista de las normativas devueltas. | |
- | regulaciónId | SÍ | entero | Identificador de reglas y regulaciones, devuelto a Autopay en los métodos RegistrarEmpresa, ActualizarEmpresa, ActualizarServicio, ActualizarConfiguración, que es información para Autopay de qué reglas y regulaciones han sido aceptadas en el formulario Integrador. |
- | regulaciónLink | SÍ | cadena | Enlace al archivo de términos y condiciones. |
- | comisiónmodelo | SÍ | entero | tasa de comisión a la que se aplica la normativa. |
- | idioma | SÍ | cadena | La lengua en la que se redactó la normativa. |
- | divisa | SÍ | cadena | La moneda de la tasa de comisión a la que se aplica la normativa. |
Respuesta con mensaje de error - estado http 400.
Ordenar a hash | Nombre | Requerido | Tipo | Descripción |
---|---|---|---|---|
errores | SÍ | Objeto que almacena una lista de errores contenidos en el mensaje de solicitud. | ||
campo | SÍ | cadena | Indica el campo afectado por el error. | |
error | SÍ | cadena | Descripción verbal del error. | |
errorCode | entero | Código de error - la lista completa de errores se puede encontrar a continuación |
Ejemplo.
Devolución de la lista de reglamentos
{
"regulationList": [
{
"commissionModel": 1,
"language": "PL",
"regulationLink":"https://platnosci-accept.bm.pl/regulations/api/download/4eaf489b-c27f-40ac-b888-032f562077dd",
"regulationId": 41,
"currency": "PLN"
},
{
"commissionModel": 3,
"language": "PL",
"regulationLink":"https://platnosci-accept.bm.pl/regulations/api/download/70c5638e-7301-46f9-87e1-522dcff1db4e",
"regulationId": 42,
"currency": "PLN"
},
{
"commissionModel": 6,
"language": "PL",
"regulationLink":"https://platnosci-accept.bm.pl/regulations/api/download/0ef22461-7245-4501-970f-e09f2929856f",
"regulationId": 43,
"currency": "PLN"
}
],
"messageId": "22121111112411112211111311212260",
"status": "OK",
"hash": "a2bd34888537a5c91c2700f12ec4e59786b03e9d4a92ad9ffd1dc49c8c8edad2"
}
Lista de códigos de error
Código de error | Descripción | Parámetro afectado por el error |
---|---|---|
6000 | Hash incorrecto | hash |
6023 | El parámetro hash no se especifica, pero es necesario | hash |
6017 | El parámetro platformId no se especifica pero es necesario | platformId |
6018 | El parámetro messageId no se especifica, pero es obligatorio. | messageId |
6019 | El valor del parámetro messageId tiene una longitud no válida. | messageId |
6015 | Formato de fecha incorrecto | messageTime |
6015 | La fecha enviada en la consulta del enlace del formulario no está fuera del rango aceptable. | messageTime |
6015 | El parámetro messageTime no está especificado y es obligatorio. | messageTime |
6027 | Valor incorrecto en la carta. | commissionmodelList |
6028 | l valor en la carta. | languageList |
6029 | No se especifica el objeto de cabecera. | cabecera |
Un mensaje que permite al Integrador cambiar la configuración de la Tienda sin tener que realizar una transferencia de verificación.
<xsd:element name="UpdateConfigurationReq">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ServiceID" type="xsd:int" minOccurs="0"/>
<xsd:element name="Header" type="tns:Header"/>
<xsd:element name="ConfigurationData" type="tns:ConfigurationData"/>
<xsd:element name="Currency" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nombre | obligatorio | tipo | descripción |
---|---|---|---|
ServiceID | NO | entero | ID de servicio. |
Cabecera | NO | Cabecera | Objeto utilizado para proporcionar datos de cabecera relativos a la seguridad de la comunicación y la corrección de los datos transmitidos. |
DatosConfiguración | NO | DatosConfiguración | Un objeto para proporcionar información sobre la nueva configuración de la tienda. |
Moneda | NO | cadena | Moneda. |
<xsd:complexType name="Header">
<xsd:sequence>
<xsd:element name="PlatformId" type="xsd:string"/>
<xsd:element name="MessageTime" type="xsd:dateTime"/>
<xsd:element name="RequestId" type="xsd:long"/>
<xsd:element name="Hash" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | PlatformId | SÍ | cadena | El identificador único permanente de la Plataforma asignado por el Sistema de Pago en Línea. |
3 | MensajeHora | SÍ | dateTime | Hora de generación del mensaje, se rechazarán los mensajes cuya hora sea posterior en más de 5 minutos a la hora del servidor del Sistema de Pago Online. Es una buena idea establecer la hora del mensaje now()-1min, en caso de que la hora de los servidores no esté sincronizada. Ejemplo: 2016-07-20T09:35:00.000 (mensaje generado en 2016-07-20 09:36:00). |
4 | RequestId | SÍ | largo | Identificador único de la solicitud dentro de la Plataforma facilitado por la parte que inicia el mensaje en cuestión. |
s.f. | Hash | SÍ | cadena{64} | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Al final de la cadena anterior se pega una clave, compartida entre el sistema de plataforma y el sistema de pago en línea. A partir de la cadena resultante, se calcula el valor de la función hash SHA256 y éste es el valor del campo Hash del mensaje. Hash = SHA256(valores_mensaje + clave compartida) |
<xsd:complexType name="ConfigurationData">
<xsd:sequence>
<xsd:element name="isTransactionRefundAllowed" type="tns:BooleanType" minOccurs="0"/>
<xsd:element name="CommissionModel" type="xsd:long" nillable="true"/>
<xsd:element name="isCardsPaymentRequired" type="tns:BooleanType" minOccurs="0"/>
<xsd:element name="ServiceUrl" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nombre de campo | obligatorio | tipo | descripción |
---|---|---|---|
isTransactionRefundAllowed | NO | BooleanType | Información sobre si el Socio desea poner a disposición del Servicio la opción de retiradas de la Cuenta de Pago y reembolsos de transacciones. El no envío de un elemento o el envío de un valor FALSE bloqueará esta opción. El envío de TRUE la hace disponible para el Sitio Web. |
ComisiónModelo | NO | largo | Número de modelos de comisión acordados durante la integración. |
isCardsPaymentRequired | NO | BooleanType | Información sobre si el Socio desea o no proporcionar una opción de pago con tarjeta para el Sitio Web. Si no se envía el elemento o se envía un valor de false, se desactivan las tarjetas. El envío de TRUE, inicia el proceso de activación de la tarjeta, o mantiene la disponibilidad de las tarjetas (en el caso de que el proceso de activación de la tarjeta para el Sitio Web se haya completado con éxito). |
ServiceUrl | NO | cadena | Campo para cambiar la dirección temporal dada durante el registro a la dirección de destino. |
NOTAS: Dado en ServiceUrl la dirección debe contener la parte fija del dominio.
Por ejemplo, un cambio de dirección: https://nazwasklepu.integrator.pl en https://nazwasklepu.pl
El mensaje es una respuesta a UpdateConfigurationReq.
<xsd:element name="UpdateConfigurationResp">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Result" type="xsd:string"/>
<xsd:element name="ErrorStatus" type="xsd:string" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nombre de campo | tipo | descripción |
---|---|---|
Resultado | xsd:cadena | OK - operación completada con éxito ERROR - error de edición del servicio |
ErrorStatus | xsd:cadena | Estado del error si se ha producido ERROR. |
ActivationLink | xsd:cadena | URL que conduce al Sistema configurado para el proceso de verificación por transferencia. |
Mensaje utilizado para cancelar la edición de los datos de un servicio que está
actualmente en proceso de verificación. El método se utiliza cuando la configuración del Integrador en el lado del sistema
Autopay bloquea el manejo de múltiples verificaciones a la vez para mantener la coherencia de los datos modificados. Ejecución correcta CancelarActualización
permite enviar los datos del formulario para editar los datos de la tienda sin
data-deeplanslation/>esperar al estado de verificación final de la edición de datos anterior.
NOTAS: Los intentos de recuperar el enlace del formulario para un sitio que está actualmente bajo verificación terminarán en un error: SHOP_IN_VERIFICATION_STATUS.
<xsd:element name="CancelUpdateReq">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ServiceID" type="xsd:int" minOccurs="0"/>
<xsd:element name="AcceptorID" type="xsd:int" minOccurs="0"/>
<xsd:element name="Header" type="tns:Header"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nombre de campo | tipo | descripción |
---|---|---|
ServiceID | int | ID de servicio. |
AcceptorID | int | ID de comerciante. |
Cabecera | cabecera | Objeto utilizado para proporcionar datos de cabecera relativos a la seguridad de la comunicación y la corrección de los datos transmitidos. |
<xsd:element name="CancelUpdateResp">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Result" type="xsd:string"/>
<xsd:element name="ErrorStatus" type="xsd:string" nillable="true"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
nombre de campo | tipo | descripción |
---|---|---|
Resultado | xsd:cadena | OK - operación completada con éxito ERROR - error al editar el servicio. |
ErrorStatus | xsd:cadena | Cuando se ha producido un ERROR. |
Tipo de mensaje para transmitir datos de cabecera relativos a
la seguridad de la comunicación y la corrección de los datos transmitidos.
<xsd:complexType name="Header">
<xsd:sequence>
<xsd:element name="PlatformId" type="xsd:string"/>
<xsd:element name="MessageTime" type="xsd:date"/>
<xsd:element name="RequestId" type="xsd:long"/>
<xsd:element name="Hash" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | PlatformId | SÍ | cadena | El identificador único permanente de la Plataforma asignado por el Sistema de Pago en Línea. |
3 | MensajeHora | SÍ | dateTime | Hora de generación del mensaje, se rechazarán los mensajes cuya hora sea posterior en más de 5 minutos a la hora del servidor del Sistema de Pago Online. Es una buena idea establecer la hora del mensaje now()-1min, en caso de que la hora de los servidores no esté sincronizada. Ejemplo: 2016-07-20T09:35:00.000 (mensaje generado en 2016-07-20 09:36:00). |
4 | RequestId | SÍ | largo | Identificador único de la solicitud dentro de la Plataforma facilitado por la parte que inicia el mensaje en cuestión. |
s.f. | Hash | SÍ | cadena{64} | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Al final de la cadena anterior se pega una clave compartida entre el sistema de plataforma y el sistema de pago en línea. A partir de la cadena resultante, se calcula el valor de la función hash SHA256 y éste es el valor del campo Hash del mensaje. Hash = SHA256(valores_mensaje + clave compartida) |
Este tipo de mensaje se utiliza para transmitir la dirección de la entidad en cuestión.
<xsd:complexType name="Address">
<xsd:sequence>
<xsd:element name=”Address” type=”xsd:string/>
<xsd:element name=”PostalCode” type=”xsd:string/>
<xsd:element name=”City” type=”xsd:string/>
<xsd:element name=”Country” type=”xsd:string/>
</xsd:sequence>
</xsd:complexType>
nombre de campo | obligatorio | tipo | descripción |
---|---|---|---|
Dirección | SÍ | cadena | Dirección. |
Código postal | SÍ | cadena | Código postal. |
Ciudad | SÍ | cadena | Ciudad. |
País | SÍ | cadena | País. |
Tipo que describe el número TIN con un límite de 2 a 15 caracteres.
<xsd:simpleType name="NIPType">
<xsd:restriction base="xsd:string">
<xsd:minLength value="2"/>
<xsd:maxLength value="15"/>
</xsd:restriction>
</xsd:simpleType>
Tipo que describe la moneda.
<xsd:simpleType name="Currency">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="PLN"/>
<xsd:enumeration value="EUR"/>
<xsd:enumeration value="USD"/>
<xsd:enumeration value="GBP"/>
<xsd:enumeration value="CZK"/>
</xsd:restriction>
</xsd:simpleType>
Sistema de transferencia de la liquidación en el caso de una cuenta extranjera.
<xsd:simpleType name="ForeignTransferModeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SWIFT"/>
<xsd:enumeration value="SEPA"/>
</xsd:restriction>
</xsd:simpleType>
El objeto es una lista de los tipos de beneficiarios reales del socio.
<xsd:complexType name="Beneficials">
<xsd:sequence>
<xsd:element name="Beneficial" type="tns:Beneficial" minOccurs="0" maxOccurs="2"/>
</xsd:sequence>
</xsd:complexType>
El objeto contiene el tipo de beneficiario efectivo y una posible lista de
beneficiarios de ese tipo.
<xsd:complexType name="Beneficial">
<xsd:sequence>
<xsd:element name="BeneficialType" type="xsd:int"/>
<xsd:element name="BeneficialOwners" type="tns:BeneficialOwners" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
nombre de campo | obligatorio | tipo | descripción |
---|---|---|---|
BeneficialType | SÍ | int | Tipo de beneficiario: 11 - BENEFICIARIO ACCIONISTA - persona física que posee directa o indirectamente más del 25% de las acciones/votos. 12 - BENEFICIARIO CONTROLADOR- persona física que ejerce el control a través de una sociedad matriz según la normativa contable. 13 - CONSEJEROS BENEFICIARIOS - personas que ocupan un puesto de alta dirección en la empresa (consejo de administración o de vigilancia) 14 - ASOCIACIÓN DE BENEFICIARIOS 15 - OTRO BENEFICIARIO- una persona que no es el beneficiario efectivo; hay una persona física que ejerce influencia o control sobre él. 16 - BENEFICIARIO PROPIETARIO |
BeneficiariosPropietarios | NO | BeneficiariosPropietarios | Lista de beneficiarios de un tipo. |
El tipo describe la lista de beneficiarios reales.
<xsd:complexType name="BeneficialOwners">
<xsd:sequence>
<xsd:element name="BeneficialOwner" type="tns:BeneficialOwner" minOccurs="0" maxOccurs="8"/>
</xsd:sequence>
</xsd:complexType>
El tipo describe los datos de un único beneficiario efectivo.
<xsd:complexType name="BeneficialOwner">
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string" nillable="false"/>
<xsd:element name="LastName" type="xsd:string" nillable="false"/>
<xsd:element name="Citizenship" type="xsd:string"/>
<xsd:element name="Share" type="xsd:int" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nombre de campo | obligatorio | tipo | descripción |
---|---|---|---|
Nombre | SÍ | cadena | Nombre del beneficiario. |
Apellido | SÍ | cadena | Nombre del beneficiario. |
Ciudadanía | SÍ | cadena | Nacionalidad del beneficiario. |
Compartir | NO | int | El número de acciones del beneficiario expresado en porcentaje. La participación debe ser mayor o igual al 25[%]. La suma de las participaciones de todos los beneficiarios de un socio no debe superar el 100[%]. Las participaciones se definen únicamente para los beneficiarios de tipo 11. |
Tipo de mensaje que describe el proxy.
<xsd:complexType name="Plenipotentiary">
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string"/>
<xsd:element name="LastName" type="xsd:string"/>
<xsd:element name="Citizenship" type="xsd:string"/>
<xsd:element name="Pesel" type="xsd:string" minOccurs="0"/>
<xsd:element name="BirthDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="BirthCountry" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentType" type="xsd:string" minOccurs="0"/>
<xsd:element name="Document" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentExpirationDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentCountryId" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nombre de campo | obligatorio | tipo | descripción |
---|---|---|---|
Nombre | SÍ | cadena | Nombre del abogado. |
Apellido | SÍ | cadena | Nombre del abogado. |
Ciudadanía | SÍ | cadena | Nacionalidad del abogado. |
Pesel | NO | cadena | El pesel del abogado. Si no se dispone de pesel, deberá indicarse la fecha y el país de nacimiento. |
FechaNacimiento | NO | cadena | Fecha de nacimiento del apoderado en el formato AAAA-mm-dd (por ejemplo, 1990-01-01). Se indicará cuando no se conozca la pesel o el apoderado no tenga número de pesel. |
País de nacimiento | NO | cadena | Estado de nacimiento del apoderado. |
Tipo de documento | SÍ | cadena | Tipo de documento. Valores aceptables: PASAPORTE o DNI. |
Documento | SÍ | cadena | Número de documento. |
Fecha de caducidad del documento | SÍ | cadena | Fecha de caducidad del documento. |
DocumentCountryId | SÍ | cadena | ID del país del documento del beneficiario. Obligatorio si se especifica DocumentType=PASSPORT. TIP: Los valores aceptables se indican en la sección Modificar la configuración del Servicio - "UPDATECONFIGURATION" |
El tipo describe la lista de asociados.
<xsd:complexType name="Partners">
<xsd:sequence>
<xsd:element name="Partner" type="tns:Partner" minOccurs="0" maxOccurs="7"/>
</xsd:sequence>
</xsd:complexType>
Tipo de mensaje que describe al asociado.
<xsd:complexType name="Partners">
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string"/>
<xsd:element name="LastName" type="xsd:string"/>
<xsd:element name="Citizenship" type="xsd:string"/>
<xsd:element name="Pesel" type="xsd:string" minOccurs="0"/>
<xsd:element name="BirthDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="BirthCountry" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentType" type="xsd:string" minOccurs="0"/>
<xsd:element name="Document" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentExpirationDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="DocumentCountryId" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nombre de campo | obligatorio | tipo | descripción |
---|---|---|---|
Nombre | SÍ | cadena | Nombre del socio. |
Apellido | SÍ | cadena | Nombre del socio. |
Ciudadanía | SÍ | cadena | Nacionalidad del socio. |
Pesel | NO | cadena | El peso de la pareja. Si no se dispone de pesel, deberá indicarse la fecha y el país de nacimiento. |
FechaNacimiento | NO | cadena | Fecha de nacimiento del socio en el formato AAAA-mm-dd (por ejemplo, 1990-01-01). Se indicará cuando no se conozca la pesel o el socio no tenga número de pesel. |
Tipo de documento | SÍ | cadena | Tipo de documento. Valores aceptables: PASAPORTE o DNI. |
Documento | SÍ | cadena | Número de documento. Obligatorio para el tipo de actividad: CIVIL_PARTNERSHIP. Para otras formas jurídicas, el campo no debe rellenarse. |
Fecha de caducidad del documento | SÍ | cadena | Fecha de caducidad del documento. |
DocumentCountryId | SÍ | cadena | ID del país del documento del beneficiario. Obligatorio si se especifica DocumentType=PASSPORT. TIP: Los valores aceptables se indican en la sección Modificar la configuración del Servicio - "UPDATECONFIGURATION" |
Tipo de mensaje que describe el servicio asociado.
<xsd:complexType name="Service">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" nillable="false"/>
<xsd:element name="ServiceUrl" type="xsd:string" nillable="false"/>
<xsd:element name="UrlITN" type="xsd:string" nillable="false"/>
<xsd:element name="ReturnUrl" type="xsd:string" nillable="false"/>
<xsd:element name="SettlementNRB" type="xsd:string" />
<xsd:element name="SwiftCode" type="xsd:string" minOccurs="0"/>
<xsd:element name="ForeignTransferMode" type="tns:ForeignTransferModeType" minOccurs="0"/>
<xsd:element name="CommissionModel" type="xsd:long" nillable="true"/>
<xsd:element name="isCardsPaymentRequired" type="xsd:boolean" minOccurs="0" />
<xsd:element name="AverageServiceTurnover" type="xsd:decimal" minOccurs="0" />
<xsd:element name="AverageTransactionAmount" type="xsd:decimal" minOccurs="0" />
<xsd:element name="EconomicPurpose" type="xsd:string" minOccurs="0" />
<xsd:element name="EconomicPurposeDescription" type="xsd:string" minOccurs="0" />
<xsd:element name="NumericTrade" type="xsd:int" minOccurs="0" />
<xsd:element name="InvoiceEmail" type="xsd:string" minOccurs="0" />
<xsd:element name="ContactEmail" type="xsd:string" minOccurs="0"/>
<xsd:element name="ComplaintEmail" type="xsd:string" minOccurs="0"/>
<xsd:element name="ReportEmail" type="xsd:string" minOccurs="0"/>
<xsd:element name="isTransactionRefundAllowed" type="xsd:boolean" minOccurs="0" />
<xsd:element name="Currency" type="tns:Currency" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nombre de campo | obligatorio | tipo | descripción |
---|---|---|---|
Nombre | SÍ | cadena | Nombre del servicio asociado. |
ServiceUrl | SÍ | cadena | URL del sitio asociado. |
UrlITN | SÍ | cadena | URL a la que se envía un ITN con la notificación de un cambio en el estado de una operación al recibir dicha información del Canal de Pago. |
ReturnUrl | SÍ | cadena | URL de la página de devolución del pago. |
LiquidaciónNRB | SÍ | cadena | Número de cuenta bancaria para la transferencia de fondos y comprobación mediante transferencia de verificación. |
SwiftCode | NO | cadena | Código SWIFT. Obligatorio si se indica un número de cuenta distinto del polaco. |
ForeignTransferMode | NO | ForeignTransferModeType | Sistema por el que se efectuarán las transferencias de liquidación. Obligatorio si se indica un número de cuenta distinto del polaco. |
ComisiónModelo | NO | largo | Número de modelos de comisión acordados durante la integración. |
isCardsPaymentRequired | NO | booleano | Información sobre si el Socio desea o no proporcionar una opción de pago con tarjeta para el Sitio Web. Si no se envía el elemento o se envía un valor FALSE, se desactivan las tarjetas. El envío de TRUE inicia el proceso de activación de la tarjeta o mantiene la disponibilidad de las tarjetas (en el caso de que el proceso de activación de la tarjeta para el Sitio Web se haya completado con éxito). |
AverageServiceTurnover | NO | decimal(2) | Facturación media del Servicio. Se utiliza un punto como separador decimal - '.' Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. |
AverageTransactionAmount | NO | decimal(2) | Valor medio de las transacciones. Se utiliza un punto - '.' - como separador decimal. Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. |
Finalidad económica | SÍ | cadena | El Socio declara que celebra el Acuerdo con el siguiente propósito comercial: ACTIVIDAD_DE DESARROLLO: desarrollo del negocio del Socio mediante la aceptación del pago de los Clientes a través de los Instrumentos de Pago (PBL, Tarjeta, Transferencia Rápida) mencionados en el Acuerdo, START_ACTIVITY: inicio de la actividad comercial del Socio en el marco de la realización de ventas a distancia de Productos, OTROS: descripción detallada en el campo EconomicPurposeDescription |
EconomicPurposeDescription | NO | cadena | Descripción del propósito económico que debe rellenarse para un campo EconomicPurpose con un valor de OTHER. Sólo se admiten mayúsculas del alfabeto latino y caracteres del rango: êÓ󱶳¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ |
NumericTrade | SÍ | int | Sector en el que está especializado el Servicio asociado. Campo de elección única. Si el Servicio Asociado pertenece a más de una categoría, seleccione la principal que genere el mayor volumen de negocio. Diccionario de valores: 1 Alcohol 2 Antigüedades, obras de arte 3 Farmacias y complementos alimenticios 4 Suministros médicos 5 Parafarmacia, suplementos, hierbas 6 Productos alimenticios 7 Subastas 8 Ropa interior 9 Entradas 10 Joyas y relojes 11 Militaria 12 Construcción 13 Caridad 14 Productos químicos domésticos e industriales 15 Devocional 16 Casa y jardín 17 Niño 18 E-book (libros electrónicos) 19 Educación 20 Electrónica 21 Cigarrillos electrónicos 22 Filatelia 23 Finanzas 24 Fundación 25 Gadgets 26 Galantería 27 Gastronomía 28 Juegos en línea (no de azar), logotipos, tonos para teléfonos móviles 29 Instituciones 30 Tarjetas/códigos/telecards de prepago 31 Recogida 32 Ordenadores y material informático, impresoras 33 Cuentas web y de correo 34 Cosméticos y perfumes 35 Libros, periódicos, revistas 36 Flores y regalos 37 Material de oficina 38 Automóviles 39 Multimedia y música 40 Emisión masiva de facturas 41 Numismática 42 Ropa 43 Anuncios 44 Programas informáticos, juegos de ordenador y aplicaciones 45 Prensa/Suscripción 46 Cuentas 47 Artesanía 48 Sector público 49 Electrodomésticos/RTV 50 Material fotográfico 51 Equipamiento médico 52 Material deportivo 53 Formación 54 Turismo y hostelería 55 Seguros 56 Servicios 57 Foto (impresiones) y servicios de impresión 58 Servicios médicos 59 VOD 60 Pesca 61 Multisectorial 62 Acondicionamiento interior, mobiliario 63 Alquiler de coches 64 Productos del tabaco 65 Juguetes 66 Zoología |
FacturaCorreo electrónico | SÍ | cadena | Dirección de correo electrónico para el envío de facturas e informes mensuales. |
ContactoCorreo electrónico | SÍ | cadena | Dirección de correo electrónico del socio. |
ReclamaciónCorreo electrónico | SÍ | cadena | Dirección de correo electrónico para reclamaciones. |
InformeCorreo electrónico | SÍ | cadena | Dirección de correo electrónico para el envío de informes diarios. |
isTransactionRefundAllowed | SÍ | booleano | Información sobre si el Socio desea poner a disposición del Servicio la opción de retiradas de la Cuenta de Pago y reembolsos de transacciones. El no envío de un elemento o el envío de un valor FALSE bloqueará esta opción. El envío de TRUE la hace disponible para el Sitio Web. |
Moneda | SÍ | divisa | Moneda del servicio. |
Tipo de mensaje para la transmisión de datos del socio.
<xsd:complexType name="Company">
<xsd:sequence>
<xsd:element name="CompanyRemoteId" type="xsd:string"/>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Address" type="tns:Address"/>
<xsd:element name="Nip" type="tns:NIPType"/>
<xsd:element name="Krs" type="xsd:string"/>
<xsd:element name="Phone" type="xsd:string"/>
<xsd:element name="RepresentingPersonFirstName" type="xsd:string"/>
<xsd:element name="RepresentingPersonLastName" type="xsd:string"/>
<xsd:element name="RepresentingPersonPesel" type="xsd:string"/>
<xsd:element name="RepresentingPersonDateOfBirth" type="xsd:string"/>
<xsd:element name="RepresentingPersonBirthCountry" type="xsd:string" minOccurs="0"/>
<xsd:element name="RepresentingPersonCitizenship" type="xsd:string"/>
<xsd:element name="RepresentingPersonPersonalDocumentType" type="xsd:string"/>
<xsd:element name="RepresentingPersonPersonalDocument" type="xsd:string"/>
<xsd:element name="RepresentingPersonPersonalDocumentExpirationDate" type="xsd:string"/>
<xsd:element name="RepresentingPersonPersonalDocumentCountryId" type="xsd:string" minOccurs="0"/>
<xsd:element name="Service" type="tns:Service"/>
<xsd:element name="ActivityKind" type="xsd:string"/>
<xsd:element name="LegalForm" type="xsd:string" minOccurs="0"/>
<xsd:element name="PanelAdministrator" type="xsd:string" minOccurs="0" />
<xsd:element name="isListedOnTheStockExchange" type="tns:BooleanType" />
<xsd:element name="Beneficials" type="tns:Beneficials" minOccurs="0" />
<xsd:element name="TradeRegisterName" type="xsd:string" minOccurs="0"/>
<xsd:element name="RegistrationDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="Plenipotentiary" type="tns:Plenipotentiary" minOccurs="0"/>
<xsd:element name="Partners" type="tns:Partners" minOccurs="0" />
<xsd:element name="PhysicalPerson" type="tns:PhysicalPerson" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nombre de campo | obligatorio | tipo | descripción |
---|---|---|---|
CompanyRemoteId | SÍ | cadena | ID que representa al socio. |
Nombre | SÍ | cadena | Nombre comercial completo del socio. Nombre del comerciante. No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY. |
Dirección | SÍ | dirección | La dirección en la que están registradas las actividades comerciales del socio (sólo es posible el registro desde países pertenecientes al EEE). No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY. |
Nip | SÍ | Tipo NIP | PIN asociado. No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY. |
Krs | SÍ | cadena | Socio de KRS. Obligatorio para ActivityKind=EMPRESA_GENERAL, SOCIEDAD_ DE RESPONSABILIDAD_ LIMITADA, SOCIEDAD_ DE ACCIONES_ LIMITADAS, SOCIEDAD_ DE ACCIONES_ LIMITADAS, SP_ZOO, SA, SOCIEDAD, FUNDACIÓN, COOPERATIVA, IGLESIA. |
Teléfono | SÍ | cadena | Teléfono de contacto del socio. |
RepresentandoPersonaNombre | SÍ | cadena | Nombre de la persona que representa al socio. No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY. |
RepresentandoApellidoPersona | SÍ | cadena | Nombre de la persona que representa al socio. No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY. |
RepresentandoPersonaPesel | NO | cadena | PESEL de la persona que representa al Socio. No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY. |
RepresentarFechaNacimientoPersona | NO | cadena | Fecha de nacimiento de la persona que representa al socio en el formato AAAA-mm-dd (por ejemplo, 1990-01-01). No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY. Obligatorio cuando el representante no tiene número PESEL. |
RepresentandoPersonaNacimientoPaís | NO | cadena | País de nacimiento. No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY. Obligatorio cuando el representante no tiene número PESEL. |
RepresentaciónPersonaCiudadanía | SÍ | cadena | Nacionalidad. No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY. |
RepresentandoTipoDeDocumentoPersonal | SÍ | cadena | Tipo de prueba de la identidad de la persona que representa al socio. Valores aceptables: PASSPORT - pasaporte DNI - documento de identidad No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY, GENERAL_PARTNERSHIP, LIMITED_LIABILITY_PARTNERSHIP, LIMITED_JOINT_STOCK_PARTNERSHIP, SP_ZOO, SA, SOCIETY, FOUNDATION, COOPERATIVE, GOBIERNO, UNIDAD_AUTOGUBERNAMENTAL, AUTOGUBERNAMENTAL, INSTITUCIÓN_CULTURAL, EMPRESA_ESTATAL, INSTITUCIÓN_CULTURAL_ESTATAL, INSTITUCIÓN_DEL_SECTOR_PÚBLICO, INSTITUCIÓN_DE_INVESTIGACIÓN, IGLESIA, EXTRANJERO |
RepresentaciónPersonaDocumentoPersonal | SÍ | cadena | La serie y el número del documento de identidad (o número de pasaporte, documento que acredita la identidad de una persona sin documento de identidad). No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY, GENERAL_PARTNERSHIP, LIMITED_LIABILITY_PARTNERSHIP, LIMITED_JOINT_STOCK_PARTNERSHIP, SP_ZOO, SA, SOCIETY, FOUNDATION, COOPERATIVE, GOBIERNO, UNIDAD_AUTOGUBERNAMENTAL, AUTOGUBERNAMENTAL, INSTITUCIÓN_CULTURAL, EMPRESA_ESTATAL, INSTITUCIÓN_CULTURAL_ESTATAL, INSTITUCIÓN_DEL_SECTOR_PÚBLICO, INSTITUCIÓN_DE_INVESTIGACIÓN, IGLESIA, EXTRANJERO. Sólo se permiten números y letras mayúsculas del alfabeto latino. |
RepresentandoFechaDeExpiraciónDeDocumentosPersonales | SÍ | cadena | Fecha de caducidad del documento de identidad (carné de identidad o pasaporte). No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY, GENERAL_PARTNERSHIP, LIMITED_LIABILITY_PARTNERSHIP, LIMITED_JOINT_STOCK_PARTNERSHIP, SP_ZOO, SA, SOCIETY, FOUNDATION, COOPERATIVE, GOBIERNO, UNIDAD_AUTOGUBERNAMENTAL, AUTOGUBERNAMENTAL, INSTITUCIÓN_CULTURAL, EMPRESA_ESTATAL, INSTITUCIÓN_CULTURAL_ESTATAL, INSTITUCIÓN_DEL_SECTOR_PÚBLICO, INSTITUCIÓN_DE_INVESTIGACIÓN, IGLESIA, EXTRANJERO. El documento debe tener una validez mínima de un día. Necesario para las formas jurídicas: SOCIEDAD CIVIL, PROPIEDAD. |
RepresentingPersonalPersonalDocumentCountryId | SÍ | cadena | ID del país del documento. No permitido para ActivityKind=NON_ACCOUNTED_ACTIVITY, GENERAL_PARTNERSHIP, LIMITED_LIABILITY_PARTNERSHIP, LIMITED_JOINT_STOCK_PARTNERSHIP, SP_ZOO, SA, SOCIETY, FOUNDATION, COOPERATIVE, GOBIERNO, UNIDAD_AUTOGUBERNAMENTAL, AUTOGUBERNAMENTAL, INSTITUCIÓN_CULTURAL, EMPRESA_ESTATAL, INSTITUCIÓN_CULTURAL_ESTATAL, INSTITUCIÓN_DEL_SECTOR_PÚBLICO, INSTITUCIÓN_DE_INVESTIGACIÓN, IGLESIA, EXTRANJERO. Necesario para las formas jurídicas: SOCIEDAD CIVIL, PROPIEDAD. |
Servicio | SÍ | Servicio | Servicio de socios. |
LegalForm | SÍ | cadena | Nombre de la forma jurídica extranjera. Debe cumplimentarse para ActivityKind = FOREIGN. |
ActividadTipo | SÍ | cadena | Forma jurídica. A continuación se indican los valores aceptables. El integrador debe presentar al socio la forma jurídica de acuerdo con la versión lingüística de la plataforma: NON_ACCOUNTED_ACTIVITY - Actividad no constituida en sociedad de una persona física PROPIEDAD - Empresario individual CIVIL_PARTNERSHIP - Unión civil LIMITED_LIABILITY_PARTNERSHIP - Sociedad colectiva GENERAL_PARTNERSHIP - Sociedad colectiva SP_ZOO - Sociedad de responsabilidad limitada SA - Sociedad anónima LIMITED_PARTNERSHIP - Sociedad en comandita simple LIMITED_JOINT_STOCK_PARTNERSHIP - Sociedad en comandita por acciones SOCIEDAD - Asociación FUNDACIÓN COOPERATIVA - Cooperativa GOBIERNO - Una autoridad gubernamental, una autoridad local o un organismo encargado de hacer cumplir la ley. (municipios, autoridades) SELF_GOVERNMENTAL_UNIT - Unidad de gobierno local SELF_GOVERNMENTAL_CULTURAL_INSTITUTION - Institución cultural de la administración local STATE_OWNED_ENTERPRISE - Empresa estatal STATE_CULTURAL_INSTITUTION - Institución cultural del Estado PUBLIC_SECTOR_INSTITUTION - autoridad presupuestaria RESEARCH_INSTITUTION - Instituto de investigación IGLESIA - Iglesia EXTRANJERO - Empresario extranjero. |
PanelAdministrator | NO | cadena | Nombre del administrador del panel del Sistema de Pago Online. |
cotiza en bolsa | SÍ | booleano | Información sobre si el socio gestiona una empresa cuyos valores cotizan en una bolsa de valores de al menos un Estado miembro de la Unión Europea o equivalente. Obligatorio para ActivityKind = FOREIGN. |
Beneficiarios | SÍ | Beneficiarios | Beneficiarios. No permitido para ActivityKind=GOBIERNO, UNIDAD_DE_GOBIERNO, INSTITUCIÓN_CULTURAL_DE_GOBIERNO, EMPRESA_DE_EMPRESA_DE_ESTADO, INSTITUCIÓN_CULTURAL_DE_ESTADO, INSTITUCIÓN_DE_SECTOR_PÚBLICO, INSTITUCIÓN_DE_INVESTIGACIÓN, ASOCIACIÓN_CIVIL |
TradeRegisterName | NO | cadena | Nombre del registro mercantil. |
FechaDeRegistro | NO | cadena | Fecha de registro de la empresa. |
Plenipotenciario | NO | Plenipotenciario | Apoderado. |
Socios | NO | - | Lista de socios. Obligatorio para la actividad tipo= SOCIEDAD CIVIL, SOCIEDAD GENERAL, SOCIEDAD DE RESPONSABILIDAD LIMITADA, SOCIEDAD DE ACCIONES LIMITADAS, SOCIEDAD DE ACCIONES DE JUBILACIÓN LIMITADA |
PhysicalPerson | NO | PhysicalPerson | Individual. Obligatorio para ActivityKind=NON_ACCOUNTED_ACTIVITY |
Tipo de mensaje utilizado para transferir datos de un individuo. Debe completarse cuando ActivityKind = NON_ACCOUNTED_ACTIVITY.
<xsd:complexType name="PhysicalPerson">
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string"/>
<xsd:element name="LastName" type="xsd:string"/>
<xsd:element name="Pesel" type="xsd:string"/>
<xsd:element name="DocumentType" type="xsd:string" minOccurs="0"/>
<xsd:element name="Document" type="xsd:string"/>
<xsd:element name="DocumentExpirationDate" type="xsd:string"/>
<xsd:element name="DocumentCountryId" type="xsd:string" minOccurs="0"/>
<xsd:element name="Citizenship" type="xsd:string"/>
<xsd:element name="BirthDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="BirthCountry" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
nombre de campo | obligatorio | tipo | descripción |
---|---|---|---|
Nombre | SÍ | cadena | Nombre de la persona. |
Apellido | SÍ | cadena | Nombre de la persona. |
Pesel | NO | cadena | PESEL de la persona física. A falta de pesel, deberá facilitarse la fecha y el país de nacimiento. |
Tipo de documento | SÍ | cadena | Tipo de documento. Valores aceptables: PASAPORTE ID |
Documento | SÍ | cadena | Número de documento. |
Fecha de caducidad del documento | SÍ | cadena | Fecha de caducidad del documento. |
DocumentCountryId | SÍ | cadena | ID del estado del documento del individuo. Obligatorio para DocumentType=PASSPORT. |
Ciudadanía | SÍ | cadena | Nacionalidad del individuo. |
FechaNacimiento | NO | cadena | Fecha de nacimiento de una persona física en el formato AAAA-mm-dd (por ejemplo, 1990-01-01). Se indicará cuando no se conozca el PESEL o el beneficiario no tenga número de PESEL. |
País de nacimiento | NO | cadena | Estado de nacimiento del individuo. |
La verificación de los datos del formulario se basa principalmente en la
forma jurídica de la empresa. En función de ella, se prevén los tipos de beneficiarios,
se definen sus exclusiones mutuas y el número máximo de ocurrencias de
para cada tipo.
El tipo de beneficiario se define en el formulario marcando por el cliente con la declaración apropiada.
Forma jurídica | Declaración | Tipo de beneficiario | Máx. apariciones por formulario |
---|---|---|---|
NON_ACCOUNTED_ACTIVITY - Actividad no constituida en sociedad de una persona física | Yo soy el beneficiario efectivo - no hay ninguna otra persona física que ejerza influencia o control sobre mí NOTAS: El cliente rellena los datos del beneficiario sólo si se marca la casilla correspondiente al tipo OTRO BENEFICIARIO. |
BENEFICIARIO PROPIETARIO | 0 |
No soy el beneficiario efectivo: hay una persona que ejerce influencia o control sobre mí. | OTRO BENEFICIARIO | 1 | |
PROPIEDAD - Empresario individual | Yo soy el beneficiario efectivo - no hay ninguna otra persona física que ejerza influencia o control sobre mí NOTAS: El cliente rellena los datos del beneficiario sólo si se marca la casilla correspondiente al tipo OTRO BENEFICIARIO. |
BENEFICIARIO PROPIETARIO | 0 |
No soy el beneficiario efectivo: hay una persona que ejerce influencia o control sobre mí. | OTRO BENEFICIARIO | 1 | |
CIVIL_PARTNERSHIP - Unión civil | Yo soy el beneficiario efectivo - no hay ninguna otra persona física que ejerza influencia o control sobre mí NOTAS: El cliente rellena los datos del beneficiario sólo si se marca la casilla correspondiente al tipo OTRO BENEFICIARIO. |
BENEFICIARIO PROPIETARIO | 0 |
No soy el beneficiario efectivo: hay una persona que ejerce influencia o control sobre mí. | OTRO BENEFICIARIO | 8 | |
GENERAL_PARTNERSHIP - Sociedad colectiva | Los beneficiarios reales son los socios de la empresa NOTAS: El cliente rellena los datos del beneficiario sólo si se marca la casilla correspondiente al tipo OTRO BENEFICIARIO. |
SOCIO BENEFICIARIO | 0 |
Hay una persona física, distinta de los accionistas, que ejerce influencia o control sobre la Sociedad | OTRO BENEFICIARIO | 8 | |
LIMITED_LIABILITY_PARTNERSHIP - Sociedad colectiva | TIP: Normas de comprobación de los datos del beneficiario análogas a GENERAL_PARTNERSHIP. | ||
LIMITED_PARTNERSHIP - Sociedad en comandita simple | TIP: Normas de comprobación de los datos del beneficiario análogas a GENERAL_PARTNERSHIP. | ||
LIMITED_JOINT_STOCK_PARTNERSHIP - Sociedad en comandita por acciones | Hay una persona física que posee directa o indirectamente más del 25% de las acciones/votos NOTAS: El cliente rellena los datos del beneficiario sólo si la casilla del tipo BENEFICIARIO está marcada. |
ACCIONISTA BENEFICIARIO | 3 |
No hay ninguna persona física que posea directa o indirectamente más del 25% de las acciones/votos | SOCIO BENEFICIARIO | 0 | |
SP_ZOO - Sociedad de responsabilidad limitada | Hay una persona física que posee directa o indirectamente más del 25% de las acciones/votos NOTAS: El tipo BENEFICIARIO DIRECTOR no puede coexistir con otros tipos de beneficiarios. Los tipos BENEFICIARIO ACCIONISTA y BENEFICIARIO DE CONTROL pueden coexistir, por lo que el cliente puede marcar las dos casillas correspondientes a estos tipos en el formulario. |
ACCIONISTA BENEFICIARIO | 3 |
Hay una persona física que ejerce el control a través de la empresa matriz según la normativa contable | CONTROL DE BENEFICIARIOS | 8 | |
Personas que ocupan un cargo directivo en la empresa (dirección o consejo de supervisión) | GESTIÓN DE BENEFICIARIOS | 8 | |
SA - Sociedad anónima | TIP: Normas de verificación de los datos de los beneficiarios análogas a SP_ZOO. | ||
SOCIEDAD - Asociación | El verdadero beneficiario es la dirección de la asociación NOTAS: En la comunicación sólo puede figurar un tipo de beneficiario: BENEFICIARIO DIRECTO u OTRO BENEFICIARIO. Estos tipos se excluyen mutuamente. |
GESTIÓN DE BENEFICIARIOS | 8 |
Hay una persona física, distinta de la junta directiva de la asociación, que ejerce influencia o control sobre la asociación | BENEFICIARIO OTROS | 2 | |
FUNDACIÓN | El verdadero beneficiario es la dirección de la asociación NOTAS: El cliente sólo puede marcar una de las declaraciones del formulario. Los tipos que les corresponden son mutuamente excluyentes. |
GESTIÓN DE BENEFICIARIOS | 8 |
Hay una persona física, distinta de la junta directiva de la asociación, que ejerce influencia o control sobre la fundación | BENEFICIARIO OTROS | 2 | |
COOPERATIVA - Cooperativa | El beneficiario real es el consejo de administración de la cooperativa NOTAS: El cliente sólo puede marcar una de las declaraciones del formulario. Los tipos que les corresponden son mutuamente excluyentes. |
GESTIÓN DE BENEFICIARIOS | 8 |
Hay una persona física, distinta del consejo de administración de la cooperativa, que ejerce influencia o control sobre la cooperativa | BENEFICIARIO OTROS | 2 | |
GOBIERNO - Una autoridad gubernamental, una autoridad local o una autoridad de ejecución (municipios, oficinas). | TIP: No se recoge información sobre los beneficiarios. | ||
SELF_GOVERNMENTAL_UNIT - Unidad de gobierno local | TIP: No se recoge información sobre los beneficiarios. | ||
SELF_GOVERNMENTAL_CULTURAL_INSTITUTION - Institución cultural de la administración local | TIP: No se recoge información sobre los beneficiarios. | ||
STATE_OWNED_ENTERPRISE - Empresa estatal | TIP: No se recoge información sobre los beneficiarios. | ||
STATE_CULTURAL_INSTITUTION - Institución cultural del Estado | TIP: No se recoge información sobre los beneficiarios. | ||
PUBLIC_SECTOR_INSTITUTION - autoridad presupuestaria | TIP: No se recoge información sobre los beneficiarios. | ||
RESEARCH_INSTITUTION - Instituto de investigación | TIP: No se recoge información sobre los beneficiarios. | ||
IGLESIA - Entidad jurídica eclesiástica o su unidad organizativa. | El beneficiario es el órgano de la persona jurídica (por ejemplo, en el caso de una parroquia, el beneficiario real es el párroco) NOTAS: El cliente sólo puede marcar una de las declaraciones del formulario. Los tipos que les corresponden son mutuamente excluyentes. |
GESTIÓN DE BENEFICIARIOS | 8 |
Existe otra persona física, distinta de un órgano de la persona jurídica eclesiástica, que ejerce influencia o control sobre ella | BENEFICIARIO OTROS | 2 | |
EXTRANJERO - Empresario extranjero | Hay una persona física que posee directa o indirectamente más del 25% de las acciones/votos NOTAS: El cliente sólo puede marcar una de las declaraciones del formulario. Los tipos que les corresponden son mutuamente excluyentes. |
ACCIONISTA BENEFICIARIO | 2 |
Existe una persona física que ejerce el control a través de la empresa matriz según la normativa contable | CONTROL DE BENEFICIARIOS | 8 | |
Personas que ocupan un cargo directivo en la empresa (consejo de administración o de supervisión) | GESTIÓN DE BENEFICIARIOS | 8 |
El Socio que crea una nueva cuenta en el Sistema está obligado a realizar una Transferencia de Verificación. Después de su ejecución, el PA lleva a cabo una evaluación de la fiabilidad del Socio, la corrección de los datos del Socio y la evaluación AML.
Cuando el socio actualiza los datos, AP espera que se realice una transferencia de verificación, sólo para los datos sensibles y clave.
Nombre del campo
NOTAS: ServiceUrl es tratada como la misma si:
a. sólo difiere en el protocolo (http/https)
b. en el curso de la integración con el Socio, se ha confirmado la migración de la dirección del Sitio Web desde/a el subdominio CMS del Integrador (p. ej. przykladowastrona.integrator.pl = przykladowastrona.pl)
c. se ha omitido o añadido el componente "www" de la dirección de la tienda (por ejemplo. przykladowastrona.pl = www. przykladowastrona.pl)
NOTAS: El TIN, el KRS y la forma jurídica son datos que no se pueden
editar. Si es necesario modificar estos datos, el servicio
debe registrarse de nuevo.
El enlace a la Transferencia de Verificación y todas sus notificaciones ITN, incluyen el dedicado ServiceID y OrderID construido de acuerdo con el esquema mencionado durante la integración:
OrderID = ActivationServiceID_UID
Dónde:
TIP: Los parámetros ITN dedicados al proceso de verificación se describen en la sección Campos adicionales en el mensaje ITN/IPN de la transacción entrante. En particular, los campos de verificationStatus y verificationStatusReasons.
TIP: Las posibles transiciones de los estados de pago, las verificaciones y sus detalles se incluyen en las secciones: Descripción detallada del cambio en el estado de verificación - para una transacción completada correctamente (resultado positivo o negativo), Descripción detallada del cambio en el estado de verificación - para una transacción no completada correctamente.
Este documento describe las reglas relacionadas con el intercambio de mensajes entre AP y la Plataforma Marketplace del Socio como parte de la funcionalidad para añadir Puntos de Liquidación (tecnología REST).
El Afiliado deberá proporcionar un botón en su Plataforma Marketplace, cuyo clic por parte del Cliente activará un método en el sistema AP que genera un enlace real a un formulario que permite el registro de un Punto de Liquidación.
Al recibir el enlace mencionado, la Plataforma del Mercado debe realizar una redirección automática al formulario bajo este enlace.
La cumplimentación y envío de los datos de la Tienda por parte del Cliente dará lugar al registro del Punto de Facturación en el sistema AP y a la devolución de una página de agradecimiento y un enlace de verificación en línea para comprobar la corrección de los datos introducidos. El enlace de verificación también se envía a la dirección de correo electrónico facilitada por el Cliente en el formulario.
Una vez que el Cliente ha realizado el pago de verificación y AP ha recibido los datos necesarios del Canal de Pago, el Punto de Liquidación recibe un estado de verificación final. Su valor positivo da lugar a la activación del Punto de Liquidación y a la disposición para realizar pagos utilizándolo, y se enviará un mensaje al Cliente con los términos y condiciones aceptados por éste en el formulario de registro.
IMPORTANTE La versión de producción del servicio se encuentra detrás del cortafuegos. El acceso a la misma se asigna a un grupo de IP finito y definido durante la integración. Esto no se aplica al entorno de pruebas.
IMPORTANTE Se proporciona un ID de plataforma (MarketplaceID) y una clave compartida para el servicio de registro para una plataforma Marketplace por entorno (prueba/producción).
IMPORTANTE No está permitido poner a disposición los datos de autorización del servicio, es decir, MarketplaceID y la clave compartida, de ninguna forma (incluido en el código de una aplicación que se ejecute en un servidor de terceros).
Datos | Comunicado por AP al socio | Comunicado por el socio al PA |
---|---|---|
Dirección REST | ✔ | ✖ |
MarketplaceID | ✔ | ✖ |
Método : enlace | ✔ | ✖ |
ServiceID (para el servicio de transferencia de créditos de verificación) | ✔ | ✖ |
Clave compartida para el servicio de registro del Punto de Liquidación | ✔ | ✖ |
Clave compartida para el servicio de transferencia de créditos de verificación | ✔ | ✖ |
Mecanismo de funciones rápidas | ✔ | ✖ |
Dirección del formulario de prueba | ✔ | ✖ |
Dirección IP desde la que se envían los ITN que informan sobre el estado de verificación del Punto de Liquidación | ✔ | ✖ |
Dirección del panel de administración del socio (opcional) | ✔ | ✖ |
Inicio de sesión | ✔ | ✖ |
Contraseña | ✔ | ✖ |
Dirección ITN tras la transferencia de verificación | ✖ | ✔ |
Dirección de devolución tras la transferencia de verificación | ✖ | ✔ |
Datos | Comunicado por AP al socio | Comunicado por el socio al PA |
---|---|---|
Dirección REST | ✖ | ✖ |
MarketplaceID | ✔ | ✖ |
Método : enlace | ✔ | ✖ |
ServiceID (para el servicio de transferencia de créditos de verificación) | ✔ | ✖ |
Clave compartida para el servicio de registro del Punto de Liquidación | ✔ | ✖ |
Clave compartida para el servicio de transferencia de créditos de verificación | ✔ | ✖ |
Mecanismo de funciones rápidas | ✔ | ✖ |
Dirección IP desde la que se envían los ITN que informan sobre el estado de verificación del Punto de Liquidación | ✔ | ✖ |
Dirección del panel de administración del socio (opcional) | ✔ | ✖ |
Inicio de sesión | ✔ | ✖ |
Contraseña | ✔ | ✖ |
Dirección IP desde la que se realiza la conexión al WS | ✖ | ✔ |
Dirección ITN tras la transferencia de verificación | ✖ | ✔ |
Dirección de devolución tras la transferencia de verificación | ✖ | ✔ |
El intercambio de mensajes entre AP y el Servicio Asociado que implementa la funcionalidad de añadir Puntos de Liquidación se lleva a cabo utilizando la tecnología REST. Todos los parámetros de los mensajes se pasan utilizando el método POST. El protocolo distingue entre mayúsculas y minúsculas, tanto en los nombres como en los valores de los parámetros. Los valores de los parámetros transmitidos deben codificarse en UTF-8.
Una vez que el cliente haya hecho clic en el botón de registro de la plataforma Marketplace, se le enviará la siguiente dirección https://adres_usługi/api/marketplace/link debe enviarse una solicitud del enlace actual al formulario de registro. El mensaje debe enviarse con la cabecera Content-Type: application/json y los parámetros indicados en la tabla siguiente:
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | marketplaceID | SÍ | cadena | Un identificador único y permanente del Mercado asignado por el Sistema de Pago Online. |
2 | messageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio con una longitud de 32 caracteres alfanuméricos latinos (por ejemplo, basado en UID). El valor del campo debe ser único para cada consulta de enlace de formulario. |
s.f. | hash | SÍ | cadena{64} | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Los parámetros de la cadena están separados entre sí por el carácter "|". A la cadena así creada se le pega al final la clave pasada durante la integración. La cadena resultante se utiliza para calcular el valor de la función hash SHA256 y es el valor del campo Hash del mensaje. Hash=SHA256(valores_mensaje + clave compartida) |
Ejemplo de cálculo Hash para el siguiente mensaje:
{
"marketplaceID":1,
"messageID":"12345678901234567890123456789000",
"hash":"wartosc_hash"
}
donde
Hash=SHA256(1|12345678901234567890123456789000|klucz_wspoldzielony) = wartosc_hash
En respuesta a la solicitud anterior, se devuelve (en la misma sesión HTTP) un mensaje que contiene un enlace al formulario o, en caso de error, su descripción junto con una indicación del campo afectado.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | tipo | descripción |
---|---|---|---|
1 | enlace | cadena | Enlace generado al formulario de inscripción. |
2 | messageID | cadena{32} | Identificador pseudoaleatorio del mensaje. Su valor corresponde al valor recibido en el mensaje enviado desde la Plataforma Marketplace. |
s.f. | hash | cadena{64} | El valor de la función hash, utilizada para autenticar el mensaje, se calcula a partir de una cadena que contiene los campos pegados del mensaje (concatenación de campos). Sólo se encadenan los valores de los campos, sin nombres de parámetros. El orden en que se concatenan los campos sigue el orden en que aparecen en la lista de parámetros. Al final de la cadena anterior se pega una clave compartida entre el sistema de plataforma y el sistema de pago en línea. A partir de la cadena resultante, se calcula el valor de la función hash SHA256 y éste es el valor del campo Hash del mensaje. Hash = SHA256(valores_mensaje + clave compartida) |
s.f. | errores | - | Una lista de errores en el mensaje enviado desde la Plataforma Marketplace. |
s.f. | errores -> campo | cadena | Nombre del campo afectado por el error. |
s.f. | errores -> error | cadena | Descripción del fallo. |
NOTAS: Cuando la Plataforma Marketplace recibe un enlace al formulario
, se debe realizar una redirección automática al formulario.
NOTAS: Cualquier intento de registrarse debe ir precedido de la descarga del enlace al formulario.
NOTAS: El enlace al formulario está activo por defecto durante 24 horas (valor se puede cambiar a petición del Socio) después de su generación. Después de este período, la visualización del formulario de registro no es posible.
(a) Solicitud correctamente tramitada.
SOLICITAR
{
"marketplaceID":1,
"messageID":"12345678901234567890123456789000",
"hash":"437c941b5c88b9d0bfa58a1d073d724f55cfed794c1cf9648ba2340c3dcc803f"
}
RESPUESTA
{
"link": "https://adres_usługi/marketplace/ee0e88d81c11b110c1a35a740996453d745dcde0be449686be6ec0777a02be5d",
"messageID": "12345678901234567890123456789000",
"hash": "d01e20cc8ab2c3fbe907e805329d915a20058e96f1d6d91a863361444cbd6379"
}
(b) MessageID ya ha sido utilizado, no es único.
SOLICITAR
{
"marketplaceID":1,
"messageID":"12345678901234567890123456789012",
"hash":"e43ff5f4b3121d1fd267bd66aaf446b079c28292f2a966e23eb1e8a8c0aaf81a"
}
RESPUESTA
{
"errors": [
{
"field": "messageID",
"error": "messageId not unique"
}
]
}
(c) El MessageID único debe tener 32 caracteres.
SOLICITAR
{
"marketplaceID":1,
"messageID":"1234567890123456789012345678900022222",
"hash":"dc8d14b5e3491a700e7f2479f8c196cc0db76f41b2b2ffac1f042a6cad1e5914"
}
RESPUESTA
{
"errors": [
{
"field": "messageID",
"error": "size must be between 32 and 32"
}
]
}
(d) El hash especificado es incorrecto.
SOLICITAR
{
"marketplaceID":1,
"messageID":"12345678901234567890123456789001",
"hash":"dc8d14b5e3491a700e7f2479f8c196cc0db76f41b2b2ffac1f042a6cad1eaaaa"
}
RESPUESTA
{
"errors": [
{
"field": "hash",
"error": "Invalid hash"
}
]
}
El soporte de preautorización de tarjetas ofrece la funcionalidad de bloquear fondos en la tarjeta del cliente durante un tiempo determinado (por ejemplo, predeterminado durante el establecimiento del bloqueo) y, a continuación, realizar un cargo. Un caso especial es cuando el bloqueo se elimina sin que se haya deducido ningún importe (por ejemplo, no se ha prestado el servicio al cliente).
Todas estas operaciones (bloqueo de fondos, adeudo, retirada del bloqueo) deben ordenarse a través de la API del Sistema de Pago Autopay. Si no hay ninguna orden de adeudo en la tarjeta durante el periodo de validez de la operación que establece el bloqueo, el Sistema liberará los fondos, notificándoselo con un mensaje estándar de Cambio de Estado de la Transacción (ITN).
Otras operaciones (cargo con éxito, colocación de un bloqueo en la tarjeta y cargo posterior) también dan lugar al envío de un mensaje ITN. Este mensaje es la única información vinculante sobre un cambio en el estado de una transacción y (utilizado junto con el servicio transactionStatus; véase la sección Consulta sobre el estado de una transacción), ayuda a gestionar la transacción sin romper la sesión con el usuario (incluso en caso de diversos problemas de red). Acuses de recibo de operaciones síncronas (nodo confirmaciónsólo sirven para presentar información preliminar sobre la orden).
Es posible distinguir 3 formas básicas de colocar un candado en una tarjeta:
a) Establecimiento de un bloqueo durante la autorización de un pago único (Véase Régimen A de autorización previa). El cliente rellena el formato de la tarjeta, una vez iniciada la transacción, que el Socio indica en los parámetros de inicio:
- canal de pago con tarjeta (GatewayID=1500) y
- el deseo de asegurar fondos en lugar de gravar (Mantener=verdadero)
(b) Asunción de un bloqueo al iniciar un pago automático (inscripción de la tarjeta en el Servicio o la Aplicación móvil) (Véase Régimen B de autorización previa).
TIP: El ciclo completo y todos los eventos de pago automático según la documentación, modificados por el momento en que se realiza el cargo en la tarjeta y se establece el pago automático - en el modelo de preautorización esta operación transactionClear causa estos acontecimientos.
El cliente rellena el formato de la tarjeta, una vez iniciada la transacción, que el Socio indica en los parámetros de inicio:
- canal de pago con tarjeta (GatewayID=1503),
- el hecho de aceptar las condiciones del servicio de pago automático
data-deeplanslation/> prestado por AP (RecurringAcceptanceState=ACCEPTED, o después de
acuerdos de valor empresarial. PROMPT/FORCE)- la opción de inicializar un pago automático con un posible
data-deeplanslation/> débito en la tarjeta (RecurringAction=INIT_WITH_PAYMENT)- el deseo de asegurar fondos en lugar de gravar (Mantener=verdadero)
(c) Establecer un bloqueo utilizando una tarjeta previamente guardada (véase Régimen C de autorización previa).
TIP: El ciclo completo y todos los eventos del pago automático según la documentación, modificados por el momento del adeudo real de la tarjeta y el establecimiento del pago automático - en el modelo de preautorización esta operación. transactionClear causa estos acontecimientos.
El cliente no rellena el formulario de la tarjeta, sino que se produce una transacción previa de backend (sin redirección), en la que el socio indica en los parámetros de inicio:
- canal de pago con tarjeta (GatewayID=1503)
- indicación de una tarjeta añadida previamente (ClientHash derivado de
RPAN)- elección del método de pago automático (RecurringAction=MANUAL)
- el deseo de asegurar fondos en lugar de gravar (Mantener=verdadero)
Cada uno de estos métodos para establecer un bloqueo da lugar a un mensaje ITN cuyo
estado indica el resultado de la autorización de la transacción. Además de los estados
estándar, en el caso de bloqueo de fondos, el Sistema podrá proporcionar en el
estado ITN
. paymentStatus=ON_HOLD, que constituye la confirmación del establecimiento de un
bloque de fondos en la tarjeta del Cliente. Además, el ITN contendrá, por defecto,
un identificador global de transacción (remoteID), que será
necesario para la posterior carga del bloqueo establecido.
Una vez colocado el candado, el socio puede cursar una orden de adeudo en la tarjeta
previamente autorizada. (Véase Régimen D de autorización previa). En
para este propósito, se debe llamar a un servicio dedicado. transactionClear
(https://{host_gateway}/webapi/transactionClear) con los parámetros
correspondientes. Todos los parámetros se pasan mediante el método POST
(Content-Type: application/x-www-form-urlencoded). El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros. Los valores
de los parámetros pasados deben estar codificados en UTF-8.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | ID de servicio de socio. |
2 | MessageID | SÍ | cadena{32} | Identificador pseudoaleatorio del mensaje con una longitud de 32 caracteres alfanuméricos latinos (por ejemplo, sobre una base UID), el valor del campo debe ser único e indicar una orden de pago específica en el Servicio Asociado. |
3 | RemoteID | SÍ | cadena{1,20} | El identificador alfanumérico de la transacción asignado por el Sistema y transmitido al Socio en el mensaje ITN de la transacción entrante. Su indicación dará lugar a un cargo en la tarjeta autorizada en la transacción del importe indicado. RemoteIDsi se encuentra en estado bloqueado (estado ON_HOLD). |
4 | Importe | SÍ | importe | Importe del débito (no debe ser superior al importe del bloqueo); se utiliza un punto como separador decimal - '.' Formato: 0,00. |
5 | Productos | SÍ | cadena{1,10000} | Información sobre los productos incluidos en la transacción, transmitida como XML codificado con el protocolo de transporte Base64. La estructura debe incluir todos los productos especificados en la autorización previa, pero puede simplificarse (sólo se tendrán en cuenta productID e idBalancePoint para identificar el producto cuyo importe debe actualizarse, y el nuevo importe debe especificarse en subAmount). /Obligatorio para varios productos especificados en la autorización previa. |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. |
Para realizar una consulta correcta, debe enviarse un
encabezado HTTP definido con el contenido adecuado junto con los parámetros pasados. La
cabecera adjunta debe llamarse
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balancePayoff>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<remoteOutID>RemoteOutID</remoteOutID>
<hash>Hash</hash>
</balancePayoff>
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balancePayoff>
<balancePointID>BalancePointID</balancePointID>
<messageID>MessageID</messageID>
<remoteOutID>RemoteOutID</remoteOutID>
<hash>Hash</hash>
</balancePayoff>
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | SÍ | cadena{1,32} | Identificador del servicio asociado. Derivado de una solicitud de método. Obligatorio para la confirmación=CONFIRMADO. |
2 | messageID | SÍ | cadena{1,20} | Identificador de mensaje pseudoaleatorio de 32 caracteres alfanuméricos latinos de longitud (por ejemplo, basado en UID). Derivado de la solicitud del método. Obligatorio para la confirmación=CONFIRMADO. |
3 | confirmación | SÍ | cadena{1,100} | Estado del acuse de recibo del pedido. Puede tomar dos valores: - CONFIRMADO: la operación se ha realizado correctamente. NOTAS: Esto no significa que se ejecute la carga. El sistema entregará asíncronamente el ITN con paymentStatus=Éxito. - NOTCONFIRMED - operación fallida. |
4 | motivo | NO | cadena{1,1000} | Explicación de los detalles de la tramitación de la solicitud. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. Obligatorio para la confirmación=CONFIRMADO. |
Una vez establecido el bloqueo, el Socio podrá ordenar su
desbloqueo (sin deducción de fondos) (Ver Régimen E de autorización previa). Para esta operación, utilice el servicio releaseHold
(Véase Anulación de una operación impagada). Después de una correcta
iniciación de una liberación de bloqueo (una respuesta correcta a una transacción de cancelación
), el Sistema entregará de forma asíncrona el ITN del
paymentStatus=FALLO y paymentStatusDetails=CANCELADO.
En caso de inactividad del Socio (una vez establecido el bloqueo) durante un
período predeterminado de validez de la transacción, ésta es liberada por el Sistema (sin
deducción de fondos) (Ref. Régimen F de autorización previa). El sistema cancelará la transacción, eliminará el bloqueo
y proporcionará al ITN la información paymentStatus=FALLO y paymentStatusDetails=CANCELADO.
La pretransacción amplía el modelo estándar de iniciación de transacciones mediante
la gestión de necesidades específicas:
ordenar un enlace de pago basado en los parámetros enviados
adeudos al cliente (si no se requiere autorización adicional
data-deeplanslation/>por parte del cliente).
verificar la corrección del enlace de pago antes de que el cliente sea redirigido al Sistema - la llamada valida los parámetros y la configuración del Sistema.
acortamiento del enlace de pago - en lugar de varios/varios parámetros,
el enlace se acorta a dos identificadores.
ocultar los datos sensibles de los parámetros de enlace de la transacción - pretransacción tiene lugar backend y el enlace a la continuación de la transacción no contiene datos sensibles, sólo los identificadores de la continuación.
el uso del SDK móvil en una variante mixta: el inicio de la transacción
lo realiza el backend de la aplicación móvil en lugar del propio SDK mediante el token de transacción
.
TIP: Detalles sobre las variantes del SDK en Documentación del SDK.
Los casos de uso específicos de Pre-transacción, son cargas:
BLIK 0
Para utilizar este servicio, debe proporcionar GatewayID=509 y pasar el código de autorización de la transacción
en el parámetro AuthorizationCode.
BLIK 0 OneClick
Gastos de "Pago automático
Para utilizar este servicio, debe proporcionar uno de los siguientes datos GatewayID o
gatewayType="Pago automático". y los parámetros necesarios.
Autorizaciones a través de los monederos Visa
Para utilizar este servicio, debe proporcionar GatewayID=1511 y pasar el token codificado
en el parámetro PaymentToken. En ausencia de un token
, la autorización tendrá lugar en el sitio del Sistema.
Autorizaciones a través de monederos Google Pay
NOTAS: El servicio permite cargar la tarjeta almacenada en el monedero del cliente sin redirigirla al Sistema. A menudo, se aplica una autorización adicional en forma de 3DS (comportamiento por defecto del entorno de prueba, que puede reconfigurarse).
En el modelo Marca blanca integrar como se describe y
a continuación, proporcionar la GatewayID=1512 y el token codificado en el parámetro
PaymentToken. En ausencia de una ficha (o de un modelo distinto del
Marca blanca) simplemente indique GatewayID=1512 - La autorización
data-deeplanslation/> tendrá lugar en el sitio web del Sistema.
Autorizaciones a través de los monederos de Apple Pay
Para utilizar este servicio, debe proporcionar GatewayID=1513. La autorización
tendrá lugar en el sitio del Sistema.
Autorización a través del formato nativo del SDK móvil
NOTAS: El servicio permite cargar la tarjeta, cuyos detalles se proporcionan en el
formato de tarjeta segura del SDK, y el inicio de la transacción en sí lo realiza el
backend de la aplicación móvil.
Además del GatewayID apropiado - 1500 para un pago único o 1503 para activar un pago automático (y otros parámetros) - el PaymentToken obtenido del SDK y el parámetro WalletType=SDK_NATIVE (descripción en la sección Iniciar una transacción con parámetros adicionales)
Es obligatorio para las pre-transacciones enviar
backend (usando por ejemplo cURL) el mensaje de inicio estándar
de la transacción (ver Inicio de la transacción), con una cabecera
: 'pay-bm-continue-transaction-url':
Ejemplo de cabecera
'BmHeader: pay-bm-continue-transaction-url'.)
Además, se recomienda que el parámetro ClienteIP (para
reclamaciones, a efectos de información).
Ejemplo de puesta en marcha previa a la transacción (PHP)
$data = array(
'ServiceID' => '100047',
'OrderID' => ‘20161017143213’,
'Amount' => '1.00',
'Description' => 'test bramki',
'GatewayID' => '0',
'Currency' => 'PLN',
'CustomerEmail' => 'test@bramka.pl',
'CustomerIP' => '127.0.0.0',
'Title' => 'Test title',
'Hash' => 0c5ca136e8833e40efbf42a4da7c148c50bf99f8af26f5c9400681702bd72056
);
$fields = (is_array($data)) ? http_build_query($data) : $data;
$curl = curl_init('https://{host_bramki}/test_ecommerce');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('BmHeader: pay-bm-continue-transaction-url'));
curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
$curlResponse = curl_exec($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$response = curl_getinfo($curl);
curl_close($curl);
echo htmlspecialchars_decode($curlResponse);
En el caso de una correcta validación de los parámetros (y configuración) y
la necesidad de que el cliente realice una acción adicional (seleccionar el
canal de pago -si se especifica GatewayID=0, ejecución/confirmación de
transferencia, introducción de código CVC/CVV, ejecución de 3DS) - se devolverá un XML
con un enlace para continuar la transacción.
Ejemplo de fichero de enlace de continuación de transacción (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transaction>
<status>PENDING</status>
<redirecturl>
https://{host_bramki}/payment/continue/96VSD39Z6E/L6CGP5BH
</redirecturl>
<orderID>20180824105435</orderID>
<remoteID>96VSD39Z6E</remoteID>
<hash>
1c6eae2127f0c3f81fbed3b6372f128040729a4d4e562fb696c22e0db68dbbe1
</hash>
</transaction>
Objeto transacción representa la recepción o retirada de fondos de una cuenta AP, como una compra o un reembolso completados.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | estado | SÍ | cadena{1,32} | Estado de la transacción. En este caso la constante PENDIENTE. |
2 | redirecturl | SÍ | cadena{1,100} | Dirección para continuar una transacción iniciada por un mensaje de pretransacción. |
3 | orderID | SÍ | cadena{1,32} | El identificador de la transacción asignado en el Servicio de Interlocutores y comunicado al inicio de la transacción. |
4 | remoteID | SÍ | cadena{1,20} | El identificador único de transacción asignado en el Sistema AP. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por herwis. |
En caso de validación no válida o carga fallida, no se genera ningún enlace de continuación
. Se devuelve (en la misma sesión HTTP) un texto
en formato XML que indica el estado de procesamiento de la solicitud.
Ejemplo de estado de tramitación de una solicitud (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transaction>
<orderID>OrderID</orderID>
<remoteID>RemoteID</remoteID>
<confirmation>ConfStatus</confirmation>
<reason>Reason</reason>
<blikAMList>
<blikAM>
<blikAMKey>Klucz1</blikAMKey>
<blikAMLabel>Etykieta1</blikAMLabel>
</blikAM>
<blikAM>
<blikAMKey>Klucz2</blikAMKey>
<blikAMLabel>Etykieta2</blikAMLabel>
</blikAM>
</blikAMList>
<paymentStatus>PaymentStatus</paymentStatus>
<hash>Hash</hash>
</transaction>
Parámetros devueltos para el resultado de la transacción previa.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | orderID | SÍ | cadena{1,32} | El identificador de la transacción asignado en el Servicio de Interlocutores y comunicado al inicio de la transacción. Obligatorio para la confirmación=CONFIRMADO. |
2 | remoteID | SÍ | cadena{1,20} | El identificador único de transacción asignado en el Sistema AP. Obligatorio para la confirmación=CONFIRMADO. |
3 | confirmación | SÍ | cadena{1,100} | Estado del acuse de recibo del pedido. Puede tomar dos valores: - CONFIRMADO: la operación se ha realizado correctamente. NOTA: No indica carga. - NOTCONFIRMED - operación fallida. |
4 | motivo | NO | cadena{1,1000} | Explicación del motivo del rechazo de la orden (para confirmación=NO CONFIRMADA), si se dispone de ella. |
5 | blikAMList | NO | cadena{1,10000} | Lista de aplicaciones bancarias móviles disponibles en la opción BLIK 0 OneClick (para confirmación=NOTCONFIRMED y razón=ALIAS_NONUNIQUE). |
Formato para blikAMList:
|
||||
6 | paymentStatus | NO | enum | Estado de autorización de la transacción, toma valores: - PENDIENTE - transacción iniciada - ÉXITO - autorización correcta de las transacciones - FALLO - la transacción no se ha completado correctamente |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio. Obligatorio para la confirmación=CONFIRMADO. |
Si los parámetros (y la configuración) se validan correctamente y no hay necesidad de que el cliente realice una acción adicional - se devuelve una confirmación de la orden de adeudo.
Este es el caso cuando los datos son suficientes para realizar un adeudo para el canal de pago en cuestión, por ejemplo: BLIK 0 sin el código BLIK requerido (ni indicación del alias de la app móvil del banco), pago recurrente, pago con tarjeta OneClick sin el CVC/CVV/3DS requerido.
Resultado
confirmation=CONFIRMADO
Validación incorrecta de los parámetros
Si los parámetros (y configuración) no se validan correctamente - se devuelve un error.
Resultado
confirmation=NO CONFIRMADO
También puede devolverse un error en caso de respuesta sincrónica del Canal de Pago (por ejemplo, un error específico de un intento de inicializar un pago automático BLIK, es decir, reason= RECURRENCY_NOT_SUPPORTED).
NOTAS: También puede devolverse un error en caso de respuesta sincrónica del Canal de Pago (por ejemplo, un error específico de un intento de inicializar un pago automático BLIK, es decir reason=RECURENCY_NOT_SUPPORTED). Otro caso conocido es también el error de validación de la dirección indicada en el parámetro de inicio CustomerEmail (INVALID_EMAIL).
Estado de confirmación | Estado de los pagos | Descripción del comportamiento del socio |
---|---|---|
CONFIRMADO | ÉXITO | Transacción aceptada a trámite, estado correcto. La prueba de carga no debe repetirse. La confirmación de pago puede mostrarse, pero los procesos de negocio deben pausarse hasta la confirmación en el ITN (ésta se enviará una vez que el PA haya recibido el estado correcto de la transacción desde el Canal de Pago). |
CONFIRMADO | FALLO | Transacción aceptada a trámite, estado inválido. Puede volver a intentar la carga con el mismo OrderID. Una vez que el PA haya recibido el estado de la transacción del Canal de Pago, se enviará un mensaje ITN. NOTAS: No es posible repetir el intento de carga con el mismo OrderIDsi, durante la integración, se acuerda un modelo para que el Sistema bloquee los inicios de transacción con el mismo OrderID. Comportamiento por defecto del socio de la unicidad OrderID es sólo una recomendación y no está sujeta a verificación al inicio de la transacción. |
CONFIRMADO | PENDIENTE | Se ha aceptado una transacción para su procesamiento, pero aún no se conoce su estado. No reintente la carga. Tratamiento posterior como en el caso de timeout. |
NO CONFIRMADO | - | Transacción no ordenada (razón indicada en el nodo reason). Puede reintentar la carga con el mismo OrderID. El mensaje ITN nunca debería haberse enviado. |
Tiempo de espera (u otra respuesta como estructura no válida, falta de campos obligatorios, otro estado de confirmación) | - | Esperar el ITN hasta la fecha de caducidad de la transacción (para ello se recomienda un tiempo de caducidad corto, por ejemplo 15 min), informando al cliente del resultado mediante un proceso separado (correo electrónico/sms). Transcurrido este tiempo, se recomienda preguntar por el estado de la transacción (transactionStatus). Si el método no devuelve ninguna transacción registrada (o sólo estados de pago FALLO), la orden de adeudo puede renovarse con el mismo OrderID. Como alternativa, puede intentar cancelar la transacción, acelerando así el proceso de obtención del estado final de la transacción y, posiblemente, el proceso de renovación del mensaje de inicio de transacción. Para ello, utilice el servicio de cancelación de transacciones (transactionCancel) y confirmar su funcionamiento consultando el estado de la transacción (como se ha descrito anteriormente). |
La Transferencia Rápida es un método de pago que requiere que el Cliente reescriba de forma independiente los datos de transferencia proporcionados por el Sistema. Qué tipo de
es un Canal de Pago dado, lo dice el parámetro gatewayType en respuesta a la
llamada de servicio "Consulta de la lista de
Canales de Pago actualmente disponibles". Los datos de la transferencia se pueden mostrar al cliente:
en el sitio AP (ejecución de transacciones basada en el modelo estándar de
inicio de transacciones descrito en la parte Inicio de la transacción)
en el sitio web del Socio (la ejecución de la transacción sin redirigir
al cliente al sitio de la AP se describe más adelante).
Para la correcta transmisión del mensaje, un mensaje de inicio de transacción estándar debe ser enviado backend (por ejemplo,
cURL), con un encabezado
'BmHeader' de valor: pay-bm (En su totalidad, la cabecera debería
tener este aspecto 'BmHeader: pay-bm'.). En caso de
cabecera mal definida o de que falte cabecera, el mensaje se
leerá erróneamente. Además, se recomienda pasar el parámetro
CustomerIP como se describe en IP de usuario (necesario para
procesos de reclamación, informes) y obligatorio es
para pasar un parámetro distinto de cero. GatewayID (o gatewayType "Transferencia rápida
").
Implementación del inicio de transacciones en segundo plano (PHP)
$data = array(
'ServiceID' => '100047',
'OrderID' => '20150723144517',
'Amount' => '1.00',
'Description' => 'test bramki',
'GatewayID' => '71',
'Currency' => 'PLN',
'CustomerEmail' => 'test@bramka.pl',
'CustomerIP' => '127.0.0.0',
'Title' => 'Test title',
'ValidityTime' => '2016-12-19 09:40:32',
'LinkValidityTime' => '2016-07-20 10:43:50',
'Hash' => 'e627d0b17a14d2faee669cad64e3ef11a6da77332cb022bb4b8e4a376076daaa'
);
$fields = (is_array($data)) ? http_build_query($data) : $data;
$curl = curl_init('https://{host_bramki}/test_ecommerce');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('BmHeader: pay-bm'));
curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
$curlResponse = curl_exec($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$response = curl_getinfo($curl);
curl_close($curl);
echo htmlspecialchars_decode($curlResponse);
En el caso de pagos de este tipo, el Sistema genera un conjunto de
datos necesarios para realizar una transferencia
intrabancaria (y por tanto rápida) a la cuenta bancaria AP. Estos datos se colocan en la respuesta al inicio de la transacción
, en un documento xml.
Respuesta del sistema de pago al inicio de la transacción (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transaction>
<receiverNRB>47 1050 1764 1000 0023 2741 0516</receiverNRB>
<receiverName>Autopay</receiverName>
<receiverAddress>81-718 Sopot, ul. Powstańców Warszawy 6</receiverAddress>
<orderID>9IMYEH2AV3</orderID>
<amount>1.00</amount>
<currency>PLN</currency>
<title>9IMYEH2AV3 - weryfikacja rachunku</title>
<remoteID>9IMYEH2AV3</remoteID>
<bankHref>https://ssl.bsk.com.pl/bskonl/login.html</bankHref>
<hash> fe685d5e1ce904d059eb9b7532f9e06a64c34c1ea9fcf29b62afefdb7aad7b75 </hash>
</transaction>
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | receptorNRB | SÍ | cadena{32} | Número de cuenta del destinatario de la transferencia (AP). |
2 | receiverName | SÍ | cadena{1,100} | Nombre del destinatario de la transferencia (AP). |
3 | receiverAddress | SÍ | cadena{1,100} | Datos de la dirección del destinatario de la transferencia (AP). |
5 | orderID | SÍ | cadena{1,32} | El identificador de la transacción asignado en el Servicio de Interlocutores y comunicado al inicio de la transacción. |
6 | importe | SÍ | importe | Importe de la transacción. Se utiliza un punto - '.' - como separador decimal. Formato: 0,00; longitud máxima: 14 dígitos antes del punto decimal y 2 después del punto decimal. NOTAS: El valor permitido de una Transacción individual en el Sistema de producción es de 0,01 PLN como mínimo y 100000,00 PLN como máximo. 100000,00 PLN (o hasta el límite de la Transacción individual del Banco para una transferencia intrabancaria). |
7 | divisa | SÍ | cadena{1,3} | Moneda de la transacción. |
8 | título | SÍ | cadena{1,140} | El título completo de la transferencia (ID junto con el campo Descripción del inicio de la transacción). |
9 | remoteID | SÍ | cadena{1,20} | El identificador único de transferencia asignado en el Sistema AP. |
10 | bankHref | SÍ | cadena{1,100} | La dirección de inicio de sesión en el sistema de banca en línea, que puede utilizarse para crear un botón "Ir al banco". |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
NOTAS: Utiliza la información anterior para mostrar los datos de la transferencia
y redirige al usuario a la página de inicio de sesión del banco.
Es una solución dedicada a los pagos BLIK, que permite realizar un pago sin introducir un código BLIK (y sin tener que abandonar el sitio web). Su iniciación con éxito en el Sistema desencadena el lanzamiento/despertar automático de la aplicación móvil del banco y la presentación de la transacción al Usuario para su confirmación.
Beneficios potenciales:
La provisión del primer método de pago cómodo y seguro en mCommerce que no requiere un número de tarjeta abre este segmento a nuevos clientes,
una mejor experiencia de compra para el cliente: paga más rápido y con mayor comodidad,
Frecuencia de compra y valor de vida del cliente - Los clientes están más dispuestos y es más probable que compren en aquellas tiendas en las que el proceso de compra es más cómodo,
Tasa de conversión - el servicio tiene un mayor control sobre el proceso de compra y pago (el cliente no lo abandona), se elimina el riesgo de pérdida de la cesta,
decisión rápida de la transacción - en poco tiempo la transacción está sujeta a
autorización, denegación o cancelación,
El servicio tiene la opción de cubrir el análisis de la propia etapa de hacer
pagos.
Un requisito previo para hacer BLIK 0 OneClick disponible para el Cliente es la autorización en el
Servicio (tener una cuenta y haber iniciado sesión previamente en él).
Si, durante un pago BLIK previamente realizado, junto con otra
información de pago, el Servicio ha enviado un UID Alias dedicado (descripción de
parámetros. BlikUIDKey y BlikUIDLabel en otra parte del documento
), y el cliente, al confirmar el pago en la aplicación móvil
, indicó que quería recordar la tienda, esto tuvo el efecto de vincular permanentemente
(normalmente durante un período de 2 años) al Cliente del Servicio a su aplicación, es decir,
registrar el UID Alias. Su uso posterior dará lugar a
la autorización de la transacción sin el código.
Se recomienda no forzar el código BLIK al seleccionar un Canal de Pago BLIK. En su lugar, merece la pena mostrar el hipervínculo "Quiero introducir el código BLIK" bajo el botón "Comprar y pagar" para permitir que el código se introduzca en el primer intento (en caso de que el Cliente quiera realizar un pago BLIK desde una aplicación móvil distinta de aquella en la que ha almacenado previamente el Servicio dado).
El servicio debe realizar una transacción previa, con especial atención a:
especificando el parámetro GatewayID = 509 - indicación de canal de pago BLIK,
indicación de parámetros BlikUIDKey y BlikUIDLabel - indicación del
requerido en el BLIK 0 OneClick Alias UID (identificador de usuario
).
especificando el parámetro AuthorizationCode - si el cliente ha introducido el código BLIK,
especificando el parámetro BlikAMKey - si el cliente ha indicado la etiqueta de la aplicación móvil del banco de entre la lista presentada en el Servicio,
manejo de posibles respuestas pre-transacción, incluyendo el manejo de "Respuesta - sin seguimiento" y errores específicos de BLIK 0 OneClick:
(a) un error en muchas de las aplicaciones móviles del banco (confirmation=NO CONFIRMADO y reason=ALIAS_NONUNICA) - mostrar la lista de etiquetas devuelta en la pretransacción de la lista de alias (pares clave + etiqueta contenidos en la estructura de la etiqueta BlikAMList), para recuperar la clave seleccionada e introducirla en el parámetro BlikAMKey otro intento de pre-transacción
(b) errores de autorización (confirmation=NO CONFIRMADO y motivo de uno de los valores: ALIAS_RECHAZADO, ALIAS_NO_ENCONTRADO, BILLETE_ERRÓNEO, BILLETE_VENCIDO, BILLETE_UTILIZADO) - visualización del campo del código Blik, para descargarlo e introducirlo en el parámetro AuthorizationCode otro intento de pre-transacción
El sistema permite realizar transferencias a la Agencia Tributaria.
nombre del validador: US_TITLE_VALIDATOR
Title="/TI/______________/OKR/______/SFP/_______/TXT/_________{idtransremote_out}", gdzie:
(a) TI: significa Identificador del Contribuyente (P para PESEL o N para NIP o R para REGON). Afecta a:
(b) OKR: Año, tipo de período y número del período por el que se paga el impuesto
Número de período:
(c) SPP: símbolo del formulario de pago:
símbolo del formulario de pago | microcontabilidad | ORN de construcción al que debe transferirse el importe | Período por el que se paga el impuesto |
---|---|---|---|
CIT | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
CIT-10Z | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | Créditos no relacionados con el ejercicio contable. |
CIT-11R | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | Créditos no relacionados con el ejercicio contable. |
CIT-6R | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | Créditos no relacionados con el ejercicio contable. |
CIT-6AR | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | Créditos no relacionados con el ejercicio contable. |
CIT-8 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
CIT-8A | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
CIT-8B | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
CIT-9R | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | Créditos no relacionados con el ejercicio contable. |
CIT-CFC | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
KP | NO | XX XXXX XXXX XXX0 0007 0000 | |
SD | NO | XX XXXX XXXX XXX0 0007 0000 | Créditos no relacionados con el ejercicio contable. |
SD-2 | NO | XX XXXX XXXX XXX0 0007 0000 | Créditos no relacionados con el ejercicio contable. |
PCC | NO | XX XXXX XXXX XXX0 0007 0000 | Créditos no relacionados con el ejercicio contable. |
PCC-2 | NO | XX XXXX XXXX XXX0 0007 0000 | Créditos no relacionados con el ejercicio contable. |
PCC-3 | NO | XX XXXX XXXX XXX0 0007 0000 | Créditos no relacionados con el ejercicio contable. |
PIT | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
PIT-28 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
PIT-36 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
PIT-36L | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
PIT-37 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
PIT-38 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
PIT-39 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
PIT-4 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | mensualmente |
PIT-4R | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
PPL | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
PIT-7 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
PIT-8A | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | mensualmente |
PIT-8AR | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | anual |
PIT-CFC | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
PU1 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | Créditos no relacionados con el ejercicio contable. |
PPD | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
EPI | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
PPW | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
IVA-7 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | mensualmente |
IVA-7K | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | trimestral. A partir de 1.10, estos símbolos se sustituirán por JPK_V7K y JPK_V7M. |
IVA-7D | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | trimestral |
IVA-8 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | mensualmente |
IVA-9M | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | mensualmente |
IVA-10 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | Créditos no relacionados con el ejercicio contable. |
IVA-12 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
IVA-14 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
VAP-1 | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
VAI | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | Créditos no relacionados con el ejercicio contable. |
IVA-IM | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | |
IVA-Z | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | Créditos no relacionados con el ejercicio contable. |
IVA-In | SÍ | LK 1010 0071 222Y XXXX XXXX XXXX | Créditos no relacionados con el ejercicio contable. |
d) TXT: texto adicional (máx. 29 caracteres)
e) {idtransremote_out} → constante de título, que debe estar al final de la cadena. No se deben pegar valores adicionales en este lugar.
Google Pay es un sistema de pago instantáneo e intuitivo de Google. Permite al usuario completar el proceso de pago sin rellenar un formulario de tarjeta, ya que los datos de la tarjeta se almacenan de forma segura en los servidores de la empresa.
Google Pay es un producto que permite obtener datos encriptados
de la tarjeta de pago de un cliente permitiendo su cargo en cuenta.
Para pagar a través de Google Pay, es necesario guardar su
tarjeta de pago en su cuenta de Google, utilizando cualquier
plataforma de Google (por ejemplo, comprando apps en Google Play) o directamente en la página web de
Google Pay.
NOTAS: El servicio requiere la firma previa de un acuerdo con el operador de la tarjeta
. Para más detalles, póngase en contacto con el
Departamento Comercial de Autopay.
Después de hacer clic en "Pagar con Google Pay", aparece un
formulario de Google Pay en la página de la tienda. En él, el cliente confirma su cuenta de Google y
la tarjeta con la que pretende pagar (en esta fase, también puede cambiar la tarjeta por
otra diferente o añadir una nueva). El script transmite los datos codificados de la tarjeta en el fondo de
a través de la función postMessageentonces la tienda tiene que aceptarlos y
codificarlos mediante la función base64 y finalmente enviarlos en el parámetro
PaymentToken junto con otros parámetros (datos de la transacción).
En su sitio web, la tienda debe llamar a la secuencia de comandos proporcionada por Google con sustituido los datos del procesador de pagos.
TIP: Detalles en Documentación para desarrolladores de Google.
Esquema detallado de comunicación e intercambio de datos
TIP: Un ejemplo de cómo enviar una solicitud está disponible en Pago automático de GitHub.
(a) Modificación de los datos del procesador de pagos:
const tokenizationSpecification = {
type: 'PAYMENT_GATEWAY',
parameters: {
'gateway': 'bluemedia',
'gatewayMerchantId': paybmApiResponse.acceptorId
}
};
b) Datos devueltos por el sistema de pago en línea AP transferidos en la instalación PaymentDataRequest.merchantInfo:
PaymentDataRequest.merchantInfo = {
merchantId: paybmApiResponse.merchantId,
merchantOrigin: paybmApiResponse.merchantOrigin,
merchantName: paybmApiResponse.merchantName,
authJwt: paybmApiResponse.authJwt,
};
TIP: Un ejemplo completo de integración con Google Pay está disponible en Pago automático de GitHub.
Para mantener la integridad estética del diseño utilizado en el sitio web y la aplicación móvil de
, utilice la orientación que
proporciona en la sección partes de la documentación para desarrolladores de las Directrices de marca
Google
para descripciones de estilo y botones de páginas web, y para partes
Tutorial de documentación para desarrolladores
Google.,
donde encontrará la información que necesita para desarrollar una
aplicación móvil.
Implementación de Apple Pay en el sitio web de la tienda.
Solicitud para ponerse en contacto con el producto de infraestructura de pagos: se necesita apoyo informático.
- certificado de comunicación - para la llamada presentación -identificador de comerciante
- certificado de débito - certificado de procesamiento de pagos
Implantación de la web de acuerdo con documento Apple Pay en la Web
Preparación de 2 puntos finales por parte del socio, en un dominio registrado con Apple (utilizando 2 certificados de Apple):
- hasta el inicio de la sesión
- cobrar al cliente en función del token de Apple
CONSEJO: safari (el navegador del cliente) se comunica con el endpoint de retorno de sesión (mencionado anteriormente), tras lo cual Apple se consulta a sí mismo la sesión de Autopay.
NOTA: Los certificados CSR de AP para aceptación y para producción difieren).
Después de utilizarlo en el proceso de registro de Apple, proporcione al PA un certificado firmado por Apple y envíelo a través de Formulario de autopago
CONSEJO: El cliente debe facilitar el país, la ciudad, el dominio del sitio web y el correo electrónico de la persona de contacto.
Como parte del procesamiento de pagos en el sitio del socio, inicie una sesión API de Apple.
A continuación, devuelva el token Autopay en el parámetro PaymentToken start.
NOTA: El descifrado del token es responsabilidad del PA.
Formato del token de pago: una porción de un objeto en formato json que devuelve la api de ApplePay:
EncryptedPaymentData {
String version;
String data;
String signature;
Header header;
}
Header {
String ephemeralPublicKey;
String publicKeyHash;
String transactionId;
String applicationData;
}
NOTA: Al enviar una solicitud ApplePayPaymentRequest, debe rellenar el campo applicationData con el valor orderId codificado en Base64, como se describe en la sección documento applicationData.
Los afiliados que deseen incrustar algunos de los inicios de transacción directamente en su sitio / en su carrito de compras (en el llamado modelo WhiteLabel) pueden hacerlo mediante la integración de la Autopay Widget.
Actualmente, el Widget Autopay soporta la recogida de datos de la tarjeta (dentro del PaywayId 1500
/1503
) y Visa Mobile comienza (PaywayId 1523
)
IMPORTANTE El Socio no tiene derecho a almacenar los datos de la Tarjeta (en particular, número de tarjeta, código de seguridad CVC, CVV2), con la excepción de los parámetros transmitidos al procesar pagos automáticos por AP, como se describe en esta sección.
IMPORTANTE El sitio web del socio en el que se utilice la funcionalidad del widget Autopay debe estar cifrado y el IFRAME HTML con el widget debe estar incrustado en una dirección HTTPS con utilizando el protocolo TLS.
IMPORTANTE El socio se compromete a presentar a AP, en formato electrónico,
los siguientes documentos:
(a) de una sola vez (antes de la celebración del Contrato): un cuestionario SAQ-A PCI cumplimentado (Sección 2); El documento será proporcionado por AP o está disponible para su descarga en el sitio web: https://www.pcisecuritystandards.org
b) Trimestralmente: el resultado de la auditoría trimestral PCI ASV, incluido un escaneado de direcciones/redes/dominios IP externos (públicos) - IPv4 y/o IPv6. Dicha auditoría deberá ser realizada por uno de los contratistas autorizados que figuran en:
https://www.pcisecuritystandards.org/assessors_and_solutions/approved_scanning_vendors
Usted tendrá que utilizar el Autopay WidgetJS SDK para incrustar y comunicarse con el widget de Autopay.
En resumen, todo se reducirá a incrustar el HTML IFRAME con el widget y configurar el JS SDK para manejar los mensajes (eventos) producidos cuando el Titular de la tarjeta interactúa con el widget.
El mensaje final es un evento con estado ÉXITO_DEL_FORMULARIO
incluyendo paymentToken
necesario para el inicio backend de las transacciones en la API del sistema de pago en línea AP.
A continuación se muestran ejemplos de cómo incrustar y sindicar fácilmente un widget, utilizando el SDK Autopay WidgetJS, tanto para los canales de tarjeta como para VisaMobile.
El SDK de Autopay WidgetJS está disponible en widget-nuevo/widget-comunicacion.min.js
una vez colocado en el <head>
<script src="?r=quot;https://testcards.autopay.eu/widget-new/widget-communication.min.js"></script>
accedemos al objeto WidgetConnection
var widgetConfigObject = { ... };
var widget = new WidgetConnection(widgetConfigObject)
que, cuando se complementa con una configuración en forma de objeto JSON, permitirá la comunicación completa con la API de Autopay y, como resultado, garantizará que reciba un evento con un estado de ÉXITO_DEL_FORMULARIO
z paymentToken
.
Ejemplo de configuración de los datos de la tarjeta
Configuración:
{ language: 'pl', amount: 1.23, currency: 'PLN', serviceId: 123456 }
PaymentToken devuelto:
{status: 'FORM_SUCCESS', message: 'ey...9', id: 'OGFlZTYyYTMtN2U2OS00MTU1LTgyNDctNmMwMGI2NjE5ZDQy'}
Ejemplo de configuración para datos VisaMobile
Configuración:
{ language: 'pl', amount: 1.23, currency: 'PLN', serviceId: 123456, merchantName: 'ShopName' }
PaymentToken devuelto:
{status: 'FORM_SUCCESS', message: 'ey...9', prefix: '48', phoneNumber: '666666666', id: 'OGFlZTYyYTMtN2U2OS00MTU1LTgyNDctNmMwMGI2NjE5ZDQy'}
Idioma
Determina la versión de idioma en la que se presentará el widget.
Nombre del campo: idioma
Formato cadena
Valores: por defecto en
Actualmente se admiten los siguientes idiomas: cs
, de
, el
, en
, es
, fr
, hr
, hu
, it
, en
, ro
, Se
, sk
, sl
, uk
Importe de la transacción
Importe de la transacción
Nombre del campo: importe
Formato float
Valores: una cantidad escrita en formato flotante, por ejemplo "PLN 1,23" es 1.23
importe: 1,23, divisa: "PLN", serviceId: 123456, merchantName: "ShopName".
Moneda de transacción
Moneda de la transacción
Nombre del campo: divisa
Formato cadena
Valores: por defecto PLN
otras divisas en un formato compatible con la configuración actual del servicio
Número de servicio
Número de servicio recibido de Autopay (depende del entorno de desarrollo)
Nombre del campo: serviceId
Formato entero
Valores: normalmente seis dígitos
Tipo de recurrencia (sólo para tarjetas)
Indicación del tipo de inicio de la recidiva (Sólo para el canal 1503 relacionado con el inicio de la recidiva)
Nombre del campo: recurringAction
Formato cadena
Valores: 'INIT_WITH_REFUND', 'INIT_WITH_PAYMENT'
Nombre de la tienda (sólo para VisaMobile)
Nombre que se muestra al usuario en la notificación de VisaMobile en la aplicación móvil del banco
(Solo para el canal 1523 de VisaMobile).
Nombre del campo: merchantName
Formato cadena
Valores: Nombre de la tienda
IMPORTANTE El siguiente ejemplo de código HTML fue creado con fines ilustrativos.
Con el fin de realmente ejecutarlo en su equipo local, el siguiente archivo HTML debe ser colocado bajo algún dominio local (cualquiera, puede ser prueba.local
).
Este HTML no se puede disparar en el navegador como un archivo local porque los eventosJS intercambiados entre IFRAME y la página se verifican para la consistencia de dominio (y por lo tanto algún dominio debe estar presente).
La siguiente página pretende imitar a Front Merchant, mostrando qué elementos necesitan ser implementados para integrarse con el Widget Autopay.
En el navegador, la siguiente página de ejemplo consta de tres secciones:
PayButon
incluido con el SDK de JS para controlar el inicio del proceso en el widget (en este ejemplo, el botón sólo se activa cuando recibe un mensaje de que la validación es correcta y se han completado los datos necesarios para iniciar el proceso)Cuando se selecciona un canal de tarjeta (payway: 1500 o 1503), se cargará una vista de formato de tarjeta dedicado (basado en HTML IFRAME). Cuando se introduzcan datos completos y válidos de la tarjeta en el widget, (gracias a los eventos de validación) se activará el botón "Pagar" en el front-end del Comerciante.
Pista: Como puede ver en el ejemplo, también es posible soportar el canal VisaMobile en el modelo WhiteLabel. La implementación/disposición es análoga a la del widget de tarjeta, por lo que el código siguiente ya contiene ambos casos.
Validación y cumplimentación de datos
El SDK JS recibe eventos del widget cuando se entra en el Widget Autopay. ESTADO_VALIDEZ
con valor válido: false
Una vez que tengamos los datos completos de la tarjeta, el último evento será ESTADO_VALIDEZ
con un valor de válido: true
{status: 'VALIDITY_STATUS', message: null, valid: true, id: 'M2Zl...mU2'}
La activación del botón puede basarse en este evento PayButton
Pista: En el entorno de pruebas, los pagos con tarjeta se basan en un simulacro de 3ds y un simulacro de autorización. Los números de las tarjetas de prueba corresponden a los distintos escenarios. La lista completa de casos de prueba figura en un apéndice aparte.
Pantalla DCC
Si el escenario y la tarjeta cumplen las condiciones para obtener una oferta DCC, aparecerá una pantalla adicional con una propuesta de conversión de divisas para el Titular de la Tarjeta
El titular de la tarjeta puede optar por utilizar el débito de la tarjeta en su moneda nativa o dejar la moneda original. La validación también se produce en esta pantalla.
La selección de la moneda del titular de la tarjeta no afectará el comerciante y el importe original de la transacción en sí, sino que afectará a la cantidad que se cargará la tarjeta. Si el Titular de la Tarjeta no desea utilizar la oferta de conversión de divisas DCC, selecciona la divisa original (es decir, en este caso PLN).
Obtener una ficha
El botón debe estar vinculado al SDK JS del widget de pago automático para que al hacer clic en él se active una llamada al método widget.sendForm();
en las instalaciones WidgetConnection
Que en última instancia dará lugar a un evento ÉXITO_DEL_FORMULARIO
es decir, obtener el valor del paymentToken (en el campo mensaje
).
{status: 'FORM_SUCCESS', message: 'eyJ...n19', id: 'M2Z...ZmU2'}
A continuación se muestra un diagrama detallado de la comunicación entre el comerciante, el titular de la tarjeta y los sistemas de pago Autopay en el caso de la denominada integración WhiteLabel (es decir, utilizando un widget de tarjeta)
Transferencia segura de los datos de la tarjeta al sistema Autopay y flujo completo de transacciones:
paymentToken
A continuación se muestra un ejemplo de una sencilla implementación HTML/JS utilizando el widget VisaMobile (y el widget de tarjeta)
{ 'status': 'FORM_SUCCESS', 'message': 'eyJrZ...', ... }
Para esta integración es crucial el lugar en el código JS que se encarga de recibir eventos, en particular el evento de estado ÉXITO_DEL_FORMULARIO
como contiene en el campo mensaje
el valor de paymentToken que el comerciante debe pasar a su backend para completar los parámetros de la API de Autopay y permitir que el pago se inicie en Autopay.
Página de ejemplo
En el navegador, la siguiente página de ejemplo consta de tres secciones:
PayButon
incluido con el SDK de JS para controlar el inicio del proceso en el widget (en este ejemplo, el botón sólo se activa cuando recibe un mensaje de que la validación es correcta y se han completado los datos necesarios para iniciar el proceso)Cuando se selecciona un canal dedicado a VisaMobile, se muestra una vista dedicada (basada en HTML IFRAME), en la que la introducción del número de teléfono completo (gracias a los mensajes de validación) da lugar a la activación del botón "Pagar".
Validación y cumplimentación de datos
Al introducir un número de teléfono, Autopay Widget JS SDK recibe eventos del widget ESTADO_VALIDEZ
con valor válido: false
Una vez que tengamos el número de teléfono completo, el último evento será ESTADO_VALIDEZ
con un valor de válido: true
{status: 'VALIDITY_STATUS', message: null, valid: true, id: 'M2Zl...mU2'}
La activación del botón puede basarse en este evento PayButton
Obtener una ficha
El botón debe estar vinculado al SDK JS del widget de pago automático para que al hacer clic en él se active una llamada al método widget.sendForm();
en las instalaciones WidgetConnection
Que en última instancia dará lugar a un evento ÉXITO_DEL_FORMULARIO
es decir, obtener el valor del paymentToken.
{status: 'FORM_SUCCESS', message: 'eyJ...n19', prefix: '48', phoneNumber: '666666666', id: 'M2Z...ZmU2'}
Inicio de la transacción:
paymentToken
Posible cancelación de la transacción (desde el paywall de PayAutopay ):
Carga y devuelve el resultado:
El siguiente código se utilizó para generar las integraciones de ejemplo mencionadas anteriormente en las secciones con ejemplos de la implementación del widget de tarjeta, así como del widget Visa Mobile
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Autopay Widget Integration Example</title>
<script src="?r=quot;https://testcards.autopay.eu/widget-new/widget-communication.min.js"></script>
<style>/* pominięte w przykladzie */</style>
</head>
<body>
<div>
<form onsubmit="submitForm(event)" novalidate>
<div class="form-group"><p>Transaction amount:</p><span>1,23 PLN</span></div>
<!-- przykładowa implementacja mechanizmu wyboru kanału płatności po stronie merchanta -->
<p>Choose payment method:</p>
<ul>
<li onclick="setPayway(event, 1500)">One time payment with card</li>
<li onclick="setPayway(event, 1503)">Remember your card</li>
<li onclick="setPayway(event, 1523)">Pay with VisaMobile</li>
</ul>
<!-- miejsce, w które wstrzyknięty zostanie HTML IFRAME z widget"em -->
<div class="form-group" id="iframe-wrapper">
<iframe id="iframe"></iframe>
</div>
<!-- przycisk wywołujący akcję w widget'cie -->
<button type="submit" id="button" disabled="disabled">PayButton</button>
</form>
</div>
<script type="text/javascript">
window.addEventListener('load', () => {
// pomocnicze zmienne (tylko na potrzeby przykładu)
var currentPayway = null;
var widget = null;
// przykładowe konfiguracje zależne od środowiska devloperskiego (tylko na potrzeby przykładu)
var AUTOPAY_CARDS_DOMAIN_ENV_PROD = 'https://cards.autopay.eu';
var AUTOPAY_CARDS_DOMAIN_ENV_TEST = 'https://testcards.autopay.eu';
var MERCHANTS_SERVICE_ID_ENV_PROD = 903555;
var MERCHANTS_SERVICE_ID_ENV_TEST = 903555;
// pomocnicza metoda obsługująca wybór kanału płatności i osadzenie widget'u
function setPayway (event, paywayId) {
if (currentPayway === paywayId) {
return;
}
currentPayway = paywayId
removeWidget();
disableSubmitButton();
markActiveIcon(event);
if (paywayId === 1500) {
startWidget('/widget-new/partner' , { language: 'en', amount: 1.23, currency: 'PLN', serviceId: MERCHANTS_SERVICE_ID_ENV_TEST });
return
}
if (paywayId === 1503) {
startWidget('/widget-new/partner' , { language: 'en', amount: 1.23, currency: 'PLN', serviceId: MERCHANTS_SERVICE_ID_ENV_TEST, recurringAction: 'INIT_WITH_REFUND' });
return
}
if (paywayId === 1523) {
startWidget('/widget-new/visamobile', { language: 'en', amount: 1.23, currency: 'PLN', serviceId: MERCHANTS_SERVICE_ID_ENV_TEST, merchantName: 'ShopName' });
return
}
}
// pomocnicza metoda (tylko na potrzeby przykładu) ustawiająca obramowanie na wybranym kanale płatności
function markActiveIcon (event) {
var currentActive = document.querySelector('ul li.active');
if (currentActive) {
currentActive.classList.remove('active');
}
var newActive = event.target;
if (newActive.nodeName.toLowerCase() === 'img') {
newActive = newActive.parentNode;
}
newActive.classList.add('active');
}
// główna metoda odpowiadająca za osadzenie IFRAME z widget'em i zestawienia komunikacji między nim a jego obiektowym reprezentantem WidgetConnection
function startWidget (widgetVariantUrl, widgetConfig) {
if (!widgetEvents || !WidgetConnection) {
return;
}
var iframeEl = document.getElementById('iframe');
iframeEl.src = AUTOPAY_CARDS_DOMAIN_ENV_TEST + widgetVariantUrl;
widget = new WidgetConnection(widgetConfig)
widget.startConnection(iframeEl).then(() => {
// obsłużenie głównego, finalnego event'u zawierającego wartość PaymentToken'a
widget.on(widgetEvents.formSuccess, function (message, eventData) {
console.log('payment token event =>', eventData);
console.log('payment token value:', message);
// w tym miejscu powinno być wywołanie API merchanta, aby przekazać paymentToken (message) do backend'u merchanta; <<<<<<<<<<<<<<<<<
})
// obsłużenie event'ów związanych z walidacją podczas wprowadzania danych w widget'cie przez użytkownika/cardholder'a
widget.on(widgetEvents.validityStatus, function (message, eventData) {
console.log('form validation status =>', eventData);
if (eventData.valid) {
enableSubmitButton();
} else {
disableSubmitButton();
}
})
// obsłużenie event'u związanego z walidacją w momencie wprowadzania danych w widget'cie przez użytkownika/cardholder'a
widget.on(widgetEvents.validationResult, function (message, eventData) {
console.log('form validation result =>', eventData);
if (eventData.valid) {
enableSubmitButton();
} else {
disableSubmitButton();
}
})
// obsłużenie event'u showModal
widget.on(widgetEvents.showModal, function () {
console.log('show modal');
})
})
}
// pomocnicza metoda (tylko na potrzeby przykładu) ustawiająca usuwanie widget'u dla innych, niż kartowe, kanałów płatnosći (w przykladzie jest kanał 106 PBL)
function removeWidget () {
if (!widget) {
return;
}
widget.stopConnection();
}
// pomocnicza metoda (tylko na potrzeby przykładu)
function enableSubmitButton () {
document.getElementById('button').removeAttribute('disabled');
}
// pomocnicza metoda (tylko na potrzeby przykładu)
function disableSubmitButton () {
document.getElementById('button').setAttribute('disabled', 'disabled');
}
// pomocnicza metoda (tylko na potrzeby przykładu) powiązująca naćiśnięcie aktywnego przycisku zapłać z wywołaniem sendForm() w obiekcie widget'u
function submitForm (event) {
event.preventDefault();
if (!widget || widget.invalid) {
return;
}
disableSubmitButton();
widget.sendForm();
}
window.setPayway = setPayway;
window.submitForm = submitForm
});
</script>
</body>
</html>
El iFrame de tarjeta (PayBmCheckout) ya no es compatible, en su lugar, para el pago con tarjeta incrustado en el sitio del Socio, utilice Widget de tarjeta.
Los pagos automáticos son una forma extremadamente cómoda y segura de
realizar transacciones recurrentes. Consiste en la recogida automática
de las cuentas por cobrar del cliente en sus fechas de pago. El
servicio debe activarse primero. En el caso de las tarjetas, esto se hace por
redirigir al cliente al formulario de activación del servicio. En el caso de BLIK
, en cambio, mediante la aceptación de un pago automático en la
Aplicación Móvil. Una vez que dicha transacción de activación ha sido autorizada con éxito, el
AP transmite al Partner un mensaje estándar de
cambio de estado de la transacción (ITN) y un
mensaje de activación del servicio de pago automático (RPAN). El mensaje RPAN contiene el campo clientHashque el
Socio identificará el pago automático específico durante
los débitos posteriores y la desactivación del servicio.
Todas las transacciones dentro del ciclo de vida de un pago automatizado
(activación y adeudos) se procesan dentro de Canales de Pago
dedicados (BLIK -. GatewayID=522, Tarjetas - GatewayID = 1503) o
gatewayType="Pago automático".. Al integrar
pagos automáticos BLIK, es posible especificar (en los datos facilitados antes de
la integración) la vida útil de los pagos automáticos
activados (ilimitada por defecto) o especificarla en la transacción de inicialización
(parámetro RecurringValidityTime).
La activación del pago automático consiste en la autorización de transacción de activación, comunicación ITN y RPAN. Tras la recepción de la RPAN, el socio está listo para realizar débitos recurrentes (o un clic).
Se trata de activar el servicio de pago automático durante
el pago de un servicio/bien (así RecurringAction=INIT_WITH_PAYMENT
y liquidación de la operación al Socio).
El mensaje ITN enviado tras un pago automático es similar a los
recibidos tras pagos puntuales (sólo se amplía con el nodo
RecurringDatay - para los pagos con tarjeta - CardData).
Los otros dos elementos del proceso de activación del servicio son el inicio de la transacción y
RPAN.
El proceso de activación del servicio se inicia desde el Sitio Asociado mediante
el inicio de la transacción con el parámetro RecurringAction permite controlar el comportamiento
del Sistema:
(a) el valor de INIT_CON_PAGO - corresponde a la activación del servicio de pago automático al pagar un servicio/bien (la tarjeta o cuenta se carga con el importe adeudado y los fondos del pago se transfieren al Socio); en la lista de canales de pago disponibles, el sistema presenta únicamente pagos automáticos (a menos que se haya seleccionado un canal de pago en el Servicio),
(b) el valor de INIT_WITH_REFUND - corresponde a la activación del servicio de pago automático fuera del proceso de pago del servicio/mercancía (la tarjeta o cuenta se carga con el importe de 1 PLN, seguido de devolución automática de fondos a la cuenta del Cliente); en la lista de canales de pago disponibles, el Sistema presenta únicamente pagos automáticos (si no se ha seleccionado ningún canal de pago en el Sitio web),
(c) el valor de INIT_SIN_PAGO - corresponde a la activación del servicio de pago automático fuera del proceso de pago del servicio/bien; Valor admitido únicamente en el modelo de Marca Blanca, para el método BLIK. El importe inicial de este valor es 0,00.
d) sin parámetro (o vacío) - a menos que se haya seleccionado un canal de pago en el Servicio, el Sistema mostrará todos los canales de pago disponibles para el Servicio (incluidos los automáticos) y dejará que el Cliente decida: pago único o iniciar un pago automático. Si el Cliente elige el pago automático, la transacción se facturará al Socio de la forma estándar (y el parámetro RecurringAction=INIT_WITH_PAYMENT volverá en RPAN).
NOTAS: No se permite iniciar transacciones de activación con el canal de pago automático seleccionado, pero sin la RecurringAction seleccionada.
En algunos casos (si se deduce de la respuesta del método
legalData)
RecurringAcceptanceState (con un valor de ACEPTADOlo que significa que el
Cliente ha leído y aceptado los términos y condiciones del pago automático en el
Sitio Asociado) y RecurringAcceptanceID.
La activación del servicio de tarjeta de pago automático se lleva a cabo en
formatos proporcionados por AP. El cliente debe introducir
datos de la tarjeta: nombre, apellidos, número de tarjeta, fecha de caducidad y código CVV.
En el caso del pago automático desde una cuenta bancaria (BLIK), la autorización tiene lugar sin especificar los datos de la tarjeta: por ejemplo, con el código BLIK (transportado en los parámetros de inicio en AuthorisationCode), o a través de BLIK OneClick Alias (transportado en los parámetros de inicio en BlikUIDKey/BlikUIDLabel). Los pagos automáticos para el método BLIK se pueden iniciar en dos variantes:
Una vez autorizada la transacción, el Sistema AP transmite al Servicio Asociado un mensaje de cambio de estado de la transacción (ITN) y un mensaje de activación automática del servicio de pago (RPAN). El mensaje RPAN está dedicado a eventos de activación de pagos automáticos y contiene su identificador (ClientHash), que el Socio utilizará durante posteriores adeudos y desactivación del servicio. El RPAN también contiene información de acción para el proceso de pago automático (RecurringAction, descrito anteriormente).
Tras la recepción de un estado de pago positivo para la activación del
pago automático, se envía un mensaje dedicado al Servicio.
Esta notificación consiste en el envío por parte del Sistema AP de un documento XML
que contiene datos sobre el pago automático activado. El
documento se envía a través del protocolo HTTPS (puerto 443 por defecto),
a través del método POST, como un parámetro HTTP llamado recurring. Este parámetro se
almacena utilizando el mecanismo de codificación de transporte Base64.
Formato de documento (XML)
<?xml version="1.0" encoding="UTF-8"?>
<recurringActivation>
<serviceID>ServiceID</serviceID>
<transaction>
<orderID>OrderID</orderID>
<remoteID>RemoteID</remoteID>
<amount>999999.99</amount>
<currency>PLN</currency>
<gatewayID>GatewayID</gatewayID>
<paymentDate>YYYYMMDDhhmmss</paymentDate>
<paymentStatus>PaymentStatus</paymentStatus>
<paymentStatusDetails>PaymentStatusDetails</paymentStatusDetails>
<startAmount>999998.99</startAmount>
<invoiceNumber>InvoiceNumber</invoiceNumber>
<customerNumber>CustomerNumber</customerNumber>
<customerEmail>CustomerEmail</customerEmail>
<customerPhone>CustomerPhone</customerPhone>
</transaction>
<recurringData>
<recurringAction>RecurringAction</recurringAction>
<clientHash>ClientHash</clientHash>
<expirationDate>YYYYMMDDhhmmss</expirationDate>
</recurringData>
<cardData>
<index>Index</index>
<validityYear>ValidityYear</validityYear>
<validityMonth>ValidityMonth</validityMonth>
<issuer>Issuer</issuer>
<bin>BIN</bin>
<mask>Mask</mask>
</cardData>
<hash>Hash</hash>
</recurringActivation>
Valores de los elementos: orderID, serviceID, importe relativos a cada uno de los pagos automáticos activados son idénticos a los valores de los campos correspondientes facilitados por el Servicio al iniciarse el respectivo pago de inicialización.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1. | serviceID | SÍ | cadena{1,10} | El identificador del servicio asociado, asignado durante el registro del servicio, identifica de forma exclusiva el servicio asociado en el sistema de pago en línea. |
2. | transacción -> orderID | SÍ | cadena{1,32} | El identificador de la transacción asignado en el Servicio de Interlocutores y comunicado al inicio de la transacción. |
3. | transacción -> remoteID | SÍ | cadena{1,20} | Identificador alfanumérico de la transacción asignado por el Sistema de Pago en Línea. |
5. | transacción -> importe | SÍ | importe | Importe de la transacción. Se utiliza un punto - '.' - como separador decimal. Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto.NOTAS: El valor permitido de una única Transacción en el Sistema de Producción es respectivamente: - para PBL - mín. 0,01 PLN, máx. 100000,00 PLN (o hasta el importe fijado por el Banco emisor del instrumento de pago) - para tarjetas de pago - mín. 0,10 PLN, máx. 100000,00 PLN (o hasta el límite individual de una sola transacción en el Banco del Emisor de la Tarjeta) - para transferencias rápidas - mín. 0,01 PLN, máx. 100000,00 PLN (o hasta el límite individual del Banco para una sola operación de transferencia intrabancaria). - para BLIK - mín. 0,01 PLN, máx. 75000,00 PLN (o hasta el límite individual del Banco para una sola operación de transferencia intrabancaria). - para OTP - min. 100,00 PLN, máx. 2000,00 PLN - para Alior Rat - min. 50,00 PLN, máx. 7750,00 PLN |
6. | transacción -> moneda | SÍ | cadena{1,3} | Moneda de la transacción. |
7. | transacción -> gatewayID | SÍ | cadena{1,5} | Identificador del Canal de Pago a través del cual el cliente liquidó el pago. |
8. | transacción -> paymentDate | SÍ | cadena{14} | La hora en que se autorizó la transacción, transmitida en el formato AAAAMMDDhhmmss. (hora CET) |
9. | transacción -> paymentStatus | SÍ | enum | Estado de autorización de la transacción. Toma valores (transiciones de estado idénticas al campo correspondiente en ITN): PENDIENTE - transacción iniciada ÉXITO - autorización correcta de la transacción, el Servicio recibe los fondos para la transacción FALLO - transacción no completada correctamente |
10. | transacción -> paymentStatusDetails | SÍ | enum | Estado detallado de la transacción, el valor puede ser ignorado por el Servicio. |
11. | transacción -> startAmount | NO | importe | El importe de la transacción indicado en el Enlace de Pago (no incluye el importe de la comisión cobrada al Cliente, si la hubiera.) La suma de la comisión del Cliente y startAmount se encuentra en el campo amount, ya que éste es el valor resultante de la transacción). Se utiliza un punto - '.' - como separador decimal. Formato: 0.00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. |
12. | transaction -> invoiceNumber | NO | cadena{1,100} | El número del documento financiero en el servicio. |
13. | transacción -> clienteNúmero | NO | cadena{1,35} | Número de cliente en el servicio. |
14. | transacción -> customerEmail | NO | cadena{1,60} | Dirección de correo electrónico del cliente. |
15. | transacción -> clienteTeléfono | NO | cadena{9-15} | Número de teléfono del usuario. |
16. | recurringData -> recurringAction | NO | cadena{1,100} | Acción en el proceso de pago automático. |
17. | recurringData -> clientHash | SÍ | cadena{1,64} | Identificador de pago automático. |
18. | recurringData -> expirationDate | NO | cadena{14} | Hora de vencimiento del pago automático, transmitida en el formato AAAAMMDDhhmmss. (hora CET) |
19. | cardData -> índice | NO | cadena{1, 64} | Índice de la tarjeta de pago utilizada en el pago automático (si se utiliza una tarjeta). |
20. | cardData -> validezAño | NO | cadena{4} | Validez de la tarjeta en formato AAAA (si se ha utilizado una tarjeta). |
21. | cardDate -> validityMonth | NO | cadena{2} | Validez de la tarjeta en formato mm (si se utiliza la tarjeta). |
22. | cardData -> emisor | NO | cadena{64} | Emisor de la tarjeta, valores posibles: - VISA - TARJETA MASTER - MAESTRO - AMERICAN EXPRESS (actualmente no admitido) - DISCOVER (no compatible actualmente) - COMEDORES (actualmente no compatible) - UNCATEGORIZED (emisor no reconocido) |
23. | cardData -> bin | NO | cadena{6} | Los 6 primeros dígitos del número de tarjeta. |
24. | cardData -> máscara | NO | cadena{4} | Los 4 últimos dígitos del número de tarjeta. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
TIP: Elemento hash (mensaje) se utiliza para autenticar la
del documento. El valor de este elemento se calcula como el valor de la función hash
a partir de una cadena que contiene los valores concatenados de todos los campos
del documento y la clave compartida adjunta. Para obtener una descripción de cómo se calcula el hash
, consulte la sección Seguridad de las transacciones.
Respuesta a la notificación
La respuesta de notificación espera un estado HTTP de 200 (OK) y
texto en formato XML (no codificado en Base64), devuelto por el
Partner Service en la misma sesión HTTP, que contenga un acuse de recibo del
mensaje.
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>ServiceID</serviceID>
<recurringConfirmations>
<recurringConfirmed>
<clientHash>ClientHash</clientHash>
<confirmation>Confirmation</confirmation>
</recurringConfirmed>
</recurringConfirmations>
<hash>Hash</hash>
</confirmationList>
Elemento confirmación se utiliza para transmitir el estado de la verificación de la
autenticidad de la transacción por parte del Servicio Asociado. El valor del elemento
se determina comprobando la corrección del valor del parámetro.
serviceIDcomparación de los valores de los campos orderID i importe en el
mensaje de notificación y en el mensaje que inicia la transacción,
así como verificar que el hash calculado a partir de los
parámetros del mensaje coincide con el valor pasado en el campo hash del mensaje.
Se proporcionan dos valores para el elemento confirmación:
a) CONFIRMADO - los valores de los parámetros en ambos mensajes y el parámetro hash coinciden: la transacción es auténtica;
b) NO CONFIRMADO - los valores de los dos mensajes son diferentes o un hash no coincide - transacción no auténtica;
TIP: Elemento hash (en respuesta a un mensaje) se utiliza para autenticar la respuesta y se calcula a partir de los valores de los parámetros de respuesta. Para obtener una descripción de cómo se calcula el resumen, consulte la sección Seguridad de las transacciones.
Si no hay una respuesta correcta a las notificaciones enviadas, el sistema de pago en línea realizará otro intento de transmisión transcurrido un tiempo especificado. El servicio del socio debe realizar su propia lógica empresarial (por ejemplo, lanzar un servicio de pago automático, enviar correos, etc.) sólo después de que el primer mensaje de un determinado ClientHash.
A continuación se muestra un diagrama que describe la renovación programada de los mensajes (nos reservamos
, sin embargo, la posibilidad de renovar cualquiera de ellos en cualquier momento).
Número de renovación | Intervalo hasta la próxima renovación |
---|---|
1-12 | 3 minutos |
13-156 | 10 minutos |
157-204 | 1 hora |
205-209 | 1 día |
NOTAS: La repetición continua del mensaje idéntico
por parte del Sistema indica una falta de respuesta o una respuesta incorrecta al mismo por parte del Servicio, y requiere
por parte del Socio para el diagnóstico urgente de la causa.
Recepción correcta del identificador de servicio (ClientHash), hace que el
Socio esté preparado para cobrar automáticamente al Cliente los
bienes/servicios adquiridos en el Servicio. El proceso consta de transacciones y
comunicación ITN.
A continuación se muestra el proceso de cobro automático al cliente por el servicio/mercancía (así RecurringAction=MANUAL/AUTO y liquidación de la operación al Socio).
El mensaje ITN enviado tras un pago automático es similar a los recibidos tras pagos puntuales. Sólo se amplía con el nodo RecurringData y (para pagos con tarjeta) CardData.
Para realizar una carga automática, el Servicio Asociado debe realizar una
Pre-transacción con el parámetro ClientHashcompatible con el servicio de pago automático
previamente activado (procedente del RPAN), con
parámetro RecurringAcceptanceState vale NOT_APPLICABLE
y el valor correspondiente del parámetro RecurringAction:
a) AUTO - pago periódico (débito sin participación del cliente),
b) MANUAL - pago con un solo clic (débito ordenado por el cliente, denominado OneClick).
NOTAS: La participación del cliente en la opción MANUAL, suele limitarse a
llamar a un mensaje (seleccionando en el Servicio la opción de pagar con la tarjeta
almacenada). En la gran mayoría de los casos, se requiere una
autorización adicional en el banco (en forma de código 3DS o CVC). Entonces, en lugar de un
débito (y el estado del pedido en respuesta a una pretraducción), el
sistema devolverá un enlace para continuar - este es el comportamiento predeterminado del sistema en el
entorno de prueba. Con el fin de probar un escenario de carga sin necesidad de
autorización adicional, se debe declarar la necesidad de cambiar la configuración del
Sistema para la duración de la prueba.
NOTAS: Opción no disponible para los pagos automáticos BLIK (BLIK OneClick).
El interlocutor puede desactivar el servicio de pago automático en cualquier momento. El proceso puede consistir en un mensaje que ordene la desactivación del y un mensaje RPDN (dedicado a eventos de cancelación del servicio de pago automático).
También puede ocurrir que la cancelación del servicio se inicie por parte del PA (por ejemplo, a petición del cliente, banco u organización de tarjetas). En tal situación, el Sistema también entregará un mensaje RPDN.
El servicio puede desactivar el servicio a través de un mensaje dedicado. Todos los parámetros
se pasan a través del método POST (a la carpeta
https://{host_gateway}/desactivar_recurrente). El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros. Los valores
de los parámetros pasados deben estar codificados en UTF-8.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | El identificador del servicio asociado, asignado durante el registro del servicio, identifica de forma exclusiva el servicio asociado en el sistema de pago en línea. |
2 | MessageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio con una longitud de 32 caracteres alfanuméricos latinos (por ejemplo, basado en UID), el valor del campo debe ser único para el Sitio Asociado. |
3 | ClientHash | SÍ | cadena{1,64} | Identificador de pago automático. |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
NOTAS: El elemento Hash (mensaje) se utiliza para autenticar el documento. El valor de este elemento se calcula como el valor de una función hash a partir de una cadena que contiene los valores concatenados de todos los campos del documento y la clave compartida adjunta.
En respuesta a la notificación, se devuelve un texto con formato XML en la misma sesión HTTP
, que contiene un acuse de recibo.
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<recurringConfirmations>
<recurringConfirmed>
<clientHash>ClientHash</clientHash>
<confirmation>Confirmation</confirmation>
<reason>Reason</reason>
</recurringConfirmed>
</recurringConfirmations>
<hash>Hash</hash>
</confirmationList>
Elemento confirmación se utiliza para transmitir el estado de verificación de la autenticidad de la operación por parte del Servicio. El valor del elemento se determina comprobando la corrección de los valores de los parámetros. serviceID y clientHash con los especificados en el mensaje RPAN al inicio de un determinado pago de activación, así como verificar que el hash calculado a partir de los parámetros del mensaje coincide con el valor pasado en el campo Hash.
Se proporcionan dos valores para el elemento confirmación:
a) CONFIRMADO - valores de los parámetros son correctos y el parámetro Hash son consistentes - operación auténtica;
b) NO CONFIRMADO - valores en ambos mensajes son incorrectos o Hash mismatch - operación no auténtica;
NOTAS: El elemento hash (en el mensaje de respuesta) se utiliza para autenticar la respuesta y se calcula a partir del valor de los parámetros de respuesta. El valor de este elemento se calcula como el valor de una función hash a partir de una cadena que contiene los valores concatenados de todos los campos del documento (sin etiquetas) y la clave compartida adjunta. Para una descripción de la función Seguridad de las transacciones.
Cuando se desactiva el pago automático para un determinado ClientHash, se envía un mensaje dedicado en forma de documento XML, es a través del protocolo HTTPS (puerto 443 por defecto), utilizando el método POST, con un parámetro denominado recurrente. Este parámetro se almacena utilizando el mecanismo de codificación de transporte Base64.
Formato de documento (XML)
<?xml version="1.0" encoding="UTF-8"?>
<recurringDeactivation>
<serviceID>ServiceID</serviceID>
<recurringData>
<recurringAction>RecurringAction</recurringAction>
<clientHash>ClientHash</clientHash>
<deactivationSource>DeactivationSource</deactivationSource>
<deactivationDate>DeactivationDate</deactivationDate>
<recurringData>
<hash>Hash</hash>
</recurringDeactivation>
Los valores de los elementos serviceID, clientHash pertenecientes a cada uno de los
pagos cíclicos desactivados, son idénticos a los valores de los
campos correspondientes proporcionados en el mensaje RPAN al inicio del
pago de inicialización respectivo.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | SÍ | cadena{1,10} | El identificador del servicio asociado, asignado durante el registro del servicio, identifica de forma exclusiva el servicio asociado en el sistema de pago en línea. |
2 | recurringData -> recurringAction | SÍ | cadena{1,100} | Acción en el proceso de pago automático (en este caso, el valor DESACTIVAR). |
3 | recurringData -> clientHash | SÍ | cadena{1,64} | Identificador de pago automático. |
4 | recurringData -> deactivationSource | SÍ | cadena{1,64} | Motivo de la desactivación del pago automático. Esta descripción debe ser tratada como informativa, la lista de sus valores permitidos crece constantemente y la aparición de nuevos valores puede no implicar la no aceptación del mensaje RPDN. A continuación figuran los valores actuales: - SERVICIOpor encargo de los socios - ADQUIRIRpor encargo del PA (por ejemplo, tras recibir información sobre el fraude) - BM_ESpedido por el cliente en bills.autopay.eu - PAYBMpor caducidad de la tarjeta. |
5 | recurringData -> deactivationDate | SÍ | cadena{14} | La hora a la que se desconecta el pago automático, transmitida en el formato AAAAMMDDhhmmss. (hora CET) |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
NOTAS: El elemento hash (mensaje) se utiliza para autenticar el documento. El valor de este elemento se calcula como el valor de una función hash a partir de una cadena que contiene los valores concatenados de todos los campos del documento y la clave compartida adjunta.
La respuesta a la notificación espera el estado HTTP 200 (OKq) y
texto en formato XML (no codificado en Base64), devuelto por el Servicio en la misma
sesión HTTP, que contiene un acuse de recibo del mensaje.
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>ServiceID</serviceID>
<recurringConfirmations>
<recurringConfirmed>
<clientHash>ClientHash</clientHash>
<confirmation>Confirmation</confirmation>
</recurringConfirmed>
</recurringConfirmations>
<hash>Hash</hash>
</confirmationList>
Elemento confirmación se utiliza para transmitir el estado de verificación de la autenticidad de la operación por parte del Servicio. El valor del elemento se determina comprobando la corrección de los valores de los parámetros. serviceID y clientHash con los especificados en el mensaje RPAN al inicio de un determinado pago de inicialización, y la verificación de que el hash calculado a partir de los parámetros del mensaje coincide con el valor pasado en el campo hash.
Se proporcionan dos valores para el elemento confirmación:
a) CONFIRMADO - valores de los parámetros son correctos y el parámetro hash son coherentes - operación auténtica.
b) NO CONFIRMADO - valores en ambos mensajes no son válidos o
hash mismatch - operación no auténtica.
NOTAS: El elemento hash (en la respuesta del mensaje) se utiliza para la autenticación de la respuesta y se calcula a partir del valor de los parámetros de respuesta. El valor de este elemento se calcula como el valor de una función hash a partir de una cadena que contiene los valores hash de todos los campos del documento (sin etiquetas) y la clave compartida incluida. Para obtener una descripción de cómo calcula el hash, consulte la sección Seguridad de las transacciones.
Si no hay una respuesta correcta a las notificaciones enviadas, el Sistema
realizará otro intento de comunicación transcurrido un tiempo determinado. El
Servicio debe realizar su propia lógica de negocio (por ejemplo, detener
el pago automático, el envío por correo, etc.), sólo después del primer
mensaje RPDN sobre un determinado ClientHash.
TIP: Le recomendamos que lea también las secciones Supervisión
de las comunicaciones ITN/ISTN/IPN/RPAN/RPDN i Sistema de renovación de mensajes
ITN/ISTN/IPN/RPAN/RPDN.
La verificación de la identidad del ordenante puede realizarse sobre la base de
la comparación de los datos proporcionados para la verificación en los parámetros de inicio
de la transacción y los datos obtenidos del pago registrado en el Sistema.
Si durante la integración se acuerda la opción de verificar los datos
y se aportan los datos declarados por el cliente
para su verificación en el inicio de la transacción, el Sistema realizará una comprobación de la veracidad de dichos datos
y su resultado se colocará en el mensaje ITN junto a los datos del ordenante de la transferencia. Para
la mayoría de las transacciones PBL, el primer mensaje ITN no
contendrá los datos de dirección (nombres, dirección) del cliente. Estos datos se completan
en el Sistema después de escanear el historial de cuentas AP del canal de pago respectivo.
La cumplimentación de estos datos da lugar al envío de un mensaje ITN posterior al
Socio, que ya contiene estos datos.
Campos del mensaje de inicio de transacción asociados a un servicio (descripción en la sección Iniciar una transacción con parámetros adicionales):
VerificaciónFName,
VerificaciónLNombre,
VerificaciónStreet,
VerificaciónCasaNo,
VerificaciónCalleEscaleraNo,
VerificaciónNº de calle
VerificaciónCódigo postal,
VerificaciónCiudad,
VerificaciónNRB
Los campos del mensaje ITN asociados al servicio (descritos en la sección Campos adicionales en el mensaje ITN/IPN de la transacción entrante):
nodo customerData
verificationStatus
nodo verificationStatusReasons
TIP: Las instrucciones detalladas sobre cómo interpretar los estados de
pagos y verificaciones en este proceso se encuentran en la sección Campos adicionales en el mensaje ITN/IPN de la transacción entrante.
El inicio de las transacciones puede realizarse con los parámetros adicionales que se indican en los apartados siguientes.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | tipo | descripción |
---|---|---|---|
8 | Idioma | cadena{1,2} | Selección de la lengua en la que se presentarán los contenidos en el Sistema. Los valores aceptables son: PL, EN, DE, CS, ES, FR, IT. El uso de valores distintos de PL deberá confirmarse durante la integración y dependerá de la elección real de idioma del Cliente en el Sitio Web. |
9 | ClienteNRB | cadena{26} | Número de cuenta del cliente, un parámetro destinado únicamente a los Servicios asociados que generan números de cuenta dedicados al pedido o al Cliente (véase Modelo de liquidación de las operaciones después de cada pago). Sólo se permiten dígitos. Si, durante la integración, se estableció el uso de cuentas fuera de Polonia, entonces el campo transfiere IBAN y el rango de datos del campo esperado cambia a: caracteres alfanuméricos latinos (mín. 15, máx. 32 caracteres). |
10 | SwiftCode | cadena{8,11} | El código swift correspondiente al número de cuenta indicado. Sólo se permiten dígitos. Parámetro que debe facilitarse si durante la integración se estableció el uso de cuentas no polacas. |
11 | ForeignTransferMode | cadena{4,5} | Sistema por el que se va a realizar la transferencia de liquidación exterior: SEPA (Zona Única de Pagos en Euros): es posible realizar transferencias en euros dentro de los Estados miembros de la Unión Europea, así como a otros países del Viejo Continente, como Islandia, Liechtenstein, Noruega, Suiza, Mónaco o Andorra, SWIFT - transferencias al extranjero no viables con la SEPA (por ejemplo, moneda distinta del euro), implica mayores costes de transferencia que con la SEPA. Valores aceptables: SEPA y SWIFT. Parámetro que debe facilitarse si se ha establecido el uso de cuentas fuera de Polonia durante la integración. |
12 | PaísFiscal | cadena{1,64} | País de residencia del ordenante. |
13 | ClienteIP | cadena{1,15} | Dirección IP del usuario, un parámetro destinado únicamente a los Servicios asociados que ejecutan el Sistema en segundo plano (véase Antes de la transacción y Solicitar los datos de una transferencia rápida). |
14 | Título | cadena{1,95} | Título de la transferencia que compensa la transacción, un parámetro destinado únicamente a los Servicios asociados compensados por transferencia después de cada pago (véase Modelo de liquidación de las operaciones después de cada pago). En determinados casos, independientemente de AP, el título de la transferencia de liquidación puede ser modificado independientemente por el Banco desde el que se realizó la liquidación. Caracteres alfanuméricos latinos aceptables y caracteres de la gama: donde el signo "/" será sustituido por un "-" para las transacciones salientes. |
15 | ReceiverName | cadena{1,35} | Nombre del destinatario de la transferencia que compensa la transacción, parámetro destinado únicamente a los Servicios asociados compensados por transferencia después de cada depósito (véase Modelo de liquidación de las operaciones después de cada pago). Caracteres alfanuméricos latinos aceptables y caracteres de la gama: |
16 | Productos | cadena{1,10000} | Información sobre los productos incluidos en la transacción, transmitida como XML codificado con el protocolo de transporte Base64. La descripción de la estructura en parte Cesta de productos. |
17 | ClienteTeléfono | cadena{9-15} | Número de teléfono del usuario. Sólo se permiten números. |
18 | ClientePesel | cadena{11} | Número PESEL del usuario. Sólo se permiten números. |
20 | NúmeroDeCliente | cadena{1,35} | Número de cliente en el Servicio. |
21 | NúmeroDeFactura | cadena{1,100} | El número del documento financiero en el Servicio. |
22 | Nombre de la empresa | cadena{1,150} | Nombre de la empresa para la verificación automática del contribuyente, por ejemplo, Cool Company. |
23 | Nip | cadena{1,10} | El número de identificación a efectos del IVA de la empresa verificada, por ejemplo 5851351185. Sólo se permiten números. |
24 | Regon | cadena{9,14} | El número de identificación REGON de la empresa verificada, por ejemplo 191781561. Sólo se permiten números. |
25 | VerificaciónNombreF | cadena{1,32} | El nombre de pila facilitado en el Servicio para la verificación automática del contribuyente, por ejemplo, Jan. Sólo se aceptan letras del alfabeto polaco. |
26 | VerificaciónNombreL | cadena{1,64} | Nombre dado en el Servicio para la verificación automática del contribuyente, por ejemplo, Kowalski. Sólo se aceptan letras del alfabeto polaco. |
27 | VerificaciónStreet | cadena{1,64} | Calle proporcionada en el Servicio para la verificación automática, por ejemplo, Długa. Sólo se permiten letras del alfabeto polaco y números. |
28 | VerificaciónCasaNo | cadena{1,64} | El número de domicilio facilitado en el Servicio para la verificación automática del contribuyente. Sólo se permiten letras del alfabeto polaco y números. |
29 | VerificaciónEscaleraNo | cadena{1,64} | El número de bastidor facilitado en el Servicio para la verificación automática del contribuyente. Sólo se permiten letras del alfabeto polaco y números. |
30 | VerificaciónStreetPremiseNo | cadena{1,64} | Número de local facilitado en el Servicio para la verificación automática del contribuyente. Sólo se permiten letras del alfabeto polaco y números. |
31 | VerificaciónCódigoPostal | cadena{1,64} | Código postal facilitado en el sitio web para la verificación automática del contribuyente, formato XX-XXX, por ejemplo 80-180. Sólo se permiten números y el signo -. |
32 | VerificaciónCiudad | cadena{1,64} | Ciudad especificada en el Servicio para la verificación automática del contribuyente, por ejemplo, Varsovia. Sólo se permiten letras del alfabeto polaco y números. |
33 | VerificaciónNRB | cadena{1,26} | El número de cuenta bancaria facilitado en el Servicio para la verificación automática del contribuyente, por ejemplo 88154010982001554242710005. Sólo se permiten números. |
35 | RecurringAcceptanceState | cadena{1,100} | Información de aceptación de las condiciones de pago automático que indica si el Cliente ha aceptado las condiciones de pago automático o si la aceptación debe ser forzada por parte del Sistema. Campo necesario para los pagos automáticos en el modelo WhiteLabel del servicio de pago prestado por AP al Cliente (el Cliente paga una comisión). La disponibilidad de los términos y condiciones puede comprobarse llamando al método legalData. Valores permitidos: NOT_APPLICABLE - no se requiere la aceptación de los términos y condiciones (pago único o acción de adeudo, es decir, recurringAction con valor AUTO o MANUAL) ACEPTADO - declaración de aceptación de los términos y condiciones en el servicio del contratista (que se proporcionará con el RecurringAcceptanceID) PROMPT - en el formulario de la tarjeta se propone el consentimiento de inscripción de la tarjeta, su marcación inicia el pago automático FUERZA - se requiere el consentimiento para guardar la tarjeta en el formulario de la tarjeta, de lo contrario no es posible el pago. NOTAS: Disponibilidad de opciones ACEPTADO/PROMOVIDO/FUERZA depende de los acuerdos comerciales (en particular, determinar dónde se muestra el servicio de consentimiento/pago automatizado). |
36 | RecurringAction | cadena{1,100} | Campo obligatorio para los pagos automáticos, que especifica las posibles acciones en un pago automático. Valores permitidos: INIT_WITH_PAYMENT - activación del pago automático con pago de bienes/servicios INIT_WITH_REFUND - activación del pago automático seguida de la devolución del pago INIT_WITHOUT_PAYMENT - activación del pago automático sin pago de bienes/servicios. El importe inicial del pago es 0,00. AUTO - pago cíclico (débito sin intervención del cliente) MANUAL - pago con un solo clic (débito iniciado por el cliente) NOTAS: Opción no disponible para los pagos automáticos BLIK (BLIK OneClick). DESACTIVAR - desactivar el pago automático |
37 | ClientHash | cadena{1,64} | Identificador automático de pago. Este parámetro permite asignar un instrumento de pago (por ejemplo, tarjeta, BLIK) a un cliente de forma anónima. Basándose en él, el Socio puede activar adeudos posteriores en el modelo de pago automático. |
38 | NombreOperador | cadena{1,35} | El nombre del operador del número de teléfono indicado. Valores aceptables: Plus, Play, Orange, T-Mobile. |
39 | ICCID | cadena{12,19} | Número de tarjeta SIM del número de teléfono especificado. Valores permitidos (sólo se admiten dígitos): Para Plus: 12 ó 13 dígitos Para Play, Orange, T-Mobile: 19 dígitos |
40 | AuthorizationCode | cadena{6} | Código de autorización de pago introducido en el Servicio/Sistema (actualmente soportado en BLIK). Su uso significa que no es necesario redirigir al Cliente a la página del Canal de Pago. Por lo tanto, sólo debe introducirse a través de la pretransacción. Formato dependiente del canal de pago. Para BLIK efectuado en segundo plano (BLIK 0, eventualmente BLIK OneClick): 6 dígitos. |
41 | Tipo de pantalla | cadena{4,6} | Tipo de vista del formulario de autorización de pago. Valores aceptables: IFRAME - no compatible COMPLETO. |
42 | BlikUIDKey | cadena{1,64} | Clave UID del alias (utilizada en BLIK). Es el identificador único del usuario en el Servicio. Caracteres y caracteres alfanuméricos latinos permitidos: _. |
43 | BlikUIDLabel | cadena{1,20} | Etiqueta UID alias (utilizada en BLIK), que se presentará al Cliente en la aplicación bancaria para distinguir las cuentas con el Socio. Se recomienda utilizar el nombre de usuario, apodo o dirección de correo electrónico asignados a la cuenta autorizada del Cliente. Si existe la posibilidad de que los datos personales (por ejemplo, la dirección de correo electrónico jan.kowalski@poczta.pl) hacer que los datos sean confidenciales (sustituyendo los 3 puntos por algunos caracteres, por ejemplo ja...ki@po...pl). Caracteres alfanuméricos latinos aceptables y caracteres del rango: . : @ - , espacio. |
44 | BlikAMKey | cadena{1,64} | Clave alias de la aplicación móvil del banco (utilizada en BLIK). Es el identificador único de su cuenta BLIK. Cifras aceptables. |
45 | ReturnURL | cadena{1,1000} | Dirección de retorno de pago dinámica que comienza por http/https. URL válidas aceptables. Puede contener IP, puerto, subdominio, caracteres polacos y (después del dominio) parámetros y caracteres especiales: ,'\+%$#_!=. |
46 | TransactionSettlementMode | cadena{2,10} | Posibilidad de modificar la liquidación de las transacciones. Falta de parámetro (compatibilidad con versiones anteriores) tratado como envío de valores COMUNES. El parámetro NINGUNO da lugar a que la transacción se trate como una recarga de saldo prepagada y sin liquidación. Valores aceptables: COMÚN NONE |
47 | PaymentToken | cadena{1,100000} | Token utilizado en los monederos Visa y Google Pay colocados directamente en el sitio web del Socio (autorización sin redirección al Sistema). En este caso, el Sitio Web se integra directamente con la API de Visa y/o Google para recuperar el identificador de la tarjeta. El token obtenido se transmite al Sistema de Pago en Línea en un formulario codificado con el protocolo de transporte Base64. NOTAS: El parámetro es innecesario si la selección de Canales de Pago (y el inicio de sesión en el monedero) se realiza directamente en la página del Sistema de Pago Online. |
48 | Número de documento | cadena{1,150} | Número de documento financiero. |
49 | RecurringAcceptanceID | cadena{1,10} | Identificador de las condiciones del servicio de pago automático expuestas en el Sitio Web y aceptadas por el Cliente. Campo obligatorio para los pagos automáticos en el modelo Marca blanca servicio de pago prestado por AP al Cliente (el Cliente paga una comisión). El ID del reglamento correspondiente al idioma (y canal de pago) elegido debe descargarse mediante el método legalData. |
50 | RecurringAcceptanceTime | cadena{1,19} | Campo opcional. En el momento de la aceptación de los términos y condiciones por parte del cliente, este valor será verificado por el Sistema con la duración de los términos y condiciones con el dado RecurringAcceptanceID. Valor de la muestra: 2014-10-30 07:54:50. (Hora en CET) |
51 | DefaultRegulationAcceptanceState | cadena{1,100} | Información sobre la aceptación de los términos y condiciones del servicio de pago. Campo obligatorio en el modelo Marca blanca servicio de pago prestado por AP al Cliente (el Cliente paga una comisión). Su incumplimiento puede dar lugar a un error o a la visualización de la página de transición del Sistema con el requisito de aceptar los términos y condiciones. La disponibilidad de los términos y condiciones puede comprobarse llamando al método legalData. Valores permitidos: ACEPTADO - aceptación de las condiciones establecidas en el servicio del contratista (que se indicará junto con el DefaultRegulationAcceptanceID). |
52 | DefaultRegulationAcceptanceID | cadena{1,10} | Identificador de los términos y condiciones del servicio de pago prestado por AP al Cliente mostrados en el Sitio Web y aceptados por el Cliente. Campo obligatorio en el modelo WhiteLabel del servicio de pago prestado por AP al Cliente (el Cliente paga la comisión). El ID de las normas y reglamentos pertinentes para el idioma seleccionado (y canal de pago) debe recuperarse utilizando el método legalData. |
53 | DefaultRegulationAcceptanceTime | cadena{1,19} | Campo opcional. Momento de aceptación de la normativa por parte del cliente, este valor será verificado por el Sistema con la hora de la normativa con el DefaultRegulationAcceptanceID especificado; valor de ejemplo: 2014-10-30 07:54:50. (Hora en CET) |
54 | Tipo de cartera | cadena{1,32} | Payment Wallet Type, determina la fuente del parámetro PaymentToken (si se carga). Los valores disponibles son: SDK_NATIVE - formato de tarjeta nativo (SDK para móviles) WIDGET - widget de tarjeta (formato de tarjeta antes del inicio de la transacción) _ |
55 | RecurringValidityTime | cadena{10} | Fecha de vencimiento del pago automático BLIK activado, formato AAAA-MM-DD (valor de ejemplo: 2024-01-30). Si falta el parámetro, se propondrá una fecha de configuración por defecto establecida durante la integración (habitualmente indefinida). |
56 | ServiceURL | cadena{1,1000} | Parámetro que especifica la dirección web de la tienda desde la que se ha lanzado el pago, empezando por http/https. URL válida aceptable. Puede contener IP, puerto, subdominio, caracteres polacos, así como (después del dominio) parámetros y caracteres especiales: ,'+%$#_!= |
57 | BlikPPLabel | cadena{1,35} | Etiqueta del pago recurrente BLIK, que se muestra en la aplicación móvil cuando se acepta. Si falta el parámetro, se utilizará su valor por defecto (establecido durante la integración). |
58 | ReceiverNameForFront | cadena{1,35} | El nombre del beneficiario, que se muestra en el paywall o la aplicación móvil, entre otros, al aceptar un pago. Si falta el parámetro, se utilizará su valor por defecto (habitualmente la URL del servicio). NOTAS: El servicio debe acordarse con el mentor empresarial. Caracteres alfanuméricos latinos aceptables, caracteres en el rango: |
59 | Nombre del titular de la cuenta | cadena{1,100} | Nombre del propietario del medio de pago. |
La cesta de productos se envía como un parámetro (método POST) llamado Products. Su valor se codifica con el protocolo de transporte Base64.
Formato antes de la codificación (XML)
<?xml version="1.0" encoding="UTF-8"?>
<productList>
<product>
<subAmount>SubAmount1</subAmount>
<params>Params1</params>
</product>
<product>
<subAmount>SubAmount2</subAmount>
<params>Params2</params>
</product>
…
<product>
<subAmount>SubAmountN</subAmount>
<params>ParamsN</params>
</product>
</productList>
Nodo productList debe contener al menos 1 elemento producto,
cada nodo. producto deben contener cada uno un elemento de subImporte
i parámetros.
Elemento subImporte debe contener un importe de producto positivo (el separador decimal es un punto seguido de dos dígitos de penique). La suma de importes de productos consecutivos debe ser igual al importe indicado en el parámetro Importe (el importe de la transacción).
Si no se cumplen las condiciones anteriores, el Sistema devolverá un error.
Elemento parámetros se puede utilizar para comunicar
información específica del producto. Los nombres de los parámetros y su
significado están sujetos a un acuerdo en forma de trabajo cada vez durante
la integración.
Ejemplos de parámetros de productos y su significado a continuación.
<params>
<param name="productName" value="Nazwa produktu 1" />
</params>
<params>
<param name="productType" value="ABCD" />
<param name="productName" value="Nazwa produktu 1" />
</params>
<params>
<param name="productID" value="12456" />
</params>
<params>
<param name="idBalancePoint" value="12456" />
</params>
En caso de que el Socio utilice la facturación TRANSFERENCIA_MASIVAes decir
cada transacción se liquida inmediatamente después del depósito y
las liquidaciones se realizan a nivel de producto/punto de liquidación
(es decir, se realizan tantas
transferencias de liquidación tras el depósito como productos en la cesta), y
no se han establecido datos de facturación fijos (o no todos
los datos de facturación están establecidos rígidamente en la configuración de facturación),
El socio debe proporcionar en cada producto los datos que faltan para la facturación de ese producto. Los parámetros disponibles que constituyen los datos son:
clienteNRB - número de cuenta de destino para la facturación.
Formato NRB (26 dígitos con suma de comprobación). Si durante la integración de
se establece el uso de cuentas no polacas, entonces el campo transfiere
IBAN y el rango de datos esperado del campo cambia a: alfanuméricos
caracteres latinos (mín. 15, máx. 32 caracteres). Especificar
valores en formato IBAN dará lugar a la necesidad de especificar en el producto
también los parámetros swiftCode, foreignTransferMode.
título - título de la transferencia de liquidación del producto. En ciertos
casos, fuera del control de AP, el título de la transferencia de liquidación puede
ser modificado independientemente por el Banco desde el que se produjo la
liquidación.
Caracteres alfanuméricos latinos aceptables y caracteres del rango
:
receiverName - el nombre del destinatario de la transferencia que liquida el producto.
Caracteres alfanuméricos latinos aceptables y caracteres del rango
:
Ejemplo de aplicación de parámetros a un producto:
<params>
<param name="customerNRB" value="83109010980000000107285707" />
<param name="title" value="Rozliczenie produktu X" />
<param name="receiverName" value="Jan Kowalski" />
</params>
Ejemplo de parámetros de la cesta:
<params>
<param name="idBalancePoint" value="12456" />
<param name="productName" value="Zasilenie salda dla Autopay" />
</params>
Si se ha establecido durante las discusiones de la cesta de productos que su resumen se va a mostrar en la página del Sistema (la pantalla de selección del Canal de Pago), se pueden especificar las etiquetas de cada parámetro utilizado en la cesta. El Sistema puede utilizar la etiqueta por defecto del parámetro o puede aceptarla al inicio de la transacción.
El valor del atributo título se mostrará antes del valor del parámetro de producto.
Ejemplo de atributo title
<params>
<param name="productName" value="Nazwa produktu 1" title="Nazwa"/>
<param name="productType" value="ABCD" title="Typ"/>
</params>
La notificación inmediata de un cambio en el estado de una transacción puede contener
campos adicionales (véase Sistemas de autorización previa). Su aparición es una cuestión de
configuración, determinada durante la integración (por defecto, sólo el nodo se envía
. customerData).
El hecho de que se trate de un mensaje ITN o IPN viene determinado únicamente por la presencia de un nodo producto.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | tipo | descripción |
---|---|---|---|
11 | direcciónIP | cadena{1,15} | La dirección IP del Cliente registrada por el front-end del Sistema, o la dirección transmitida al Sistema en el parámetro CustomerIP, o la IP desde la que se inició la transacción en el Sistema. |
13 | númeroDeCliente | cadena{1,35} | Número de cliente en el Servicio. |
21 | título | cadena{1,140} | Titularidad del pago. En determinados casos, ajenos a la voluntad de AP, el título de la transferencia puede ser modificado de forma independiente por el Banco en el que tuvo lugar el pago del cliente. |
22 | customerData-> fName | cadena{1,128} | Nombre del pagador. |
23 | customerData-> lName | cadena{1,128} | Nombre del pagador. |
24 | customerData-> streetName | cadena{1,128} | Nombre de la calle del pagador. |
25 | customerData-> streetHouseNo | cadena{1,10} | Número de casa del pagador. |
26 | customerData-> streetStaircaseNo | cadena{1,10} | Número de jaula del pagador. |
27 | customerData-> streetPremiseNo | cadena{1,10} | Número de local del pagador. |
28 | customerData-> código postal | cadena{1,6} | Código postal de la dirección del pagador. |
29 | customerData-> ciudad | cadena{1,128} | Ciudad pagadora. |
30 | customerData-> nrb | cadena{1,26} | Cuenta bancaria del pagador. |
31 | datosdelcliente> datosdelremitente | cadena{1,600} | Datos del pagador de forma indivisa. |
32 | verificationStatus | enum | Elemento que contiene el estado de verificación del pagador. Es un enum que permite los valores PENDIENTE, POSITIVO y NEGATIVO. |
s.f. | verificationStatusReasons | carta | Una lista de motivos para la verificación negativa o pendiente. Puede haber muchos motivos. |
33 | verificationStatus | enum | Motivo detallado en caso de verificación negativa o pendiente. Valores permitidos para la verificación negativa: - NOMBRE - el nombre o los apellidos no coinciden - NRB - el número de cuenta no coincide - TÍTULO - el título no coincide - CALLE - el nombre de la calle no coincide - HOUSE_NUMBER - número de casa incorrecto - ESCALERA - número de escalera incorrecto - PREMISE_NUMBER - el número de local no es correcto - POSTAL_CODE - el código postal no coincide - CIUDAD - la ciudad no está de acuerdo - EN LISTA NEGRA: la cuenta desde la que se ha efectuado el pago está en la lista negra. - SHOP_FORMAL_REQUIREMENTS - el servicio verificado no cumplía las condiciones formales Valores permitidos para la verificación pendiente: - NEED_FEEDBACK - se está a la espera de que el servicio cumpla las condiciones formales. NOTAS: Para contar los valores Hash, se toman los valores de los siguientes nodos: verificationStatusReasons, verificationStatusReason. |
60 | startAmount | importe | El importe de la transacción indicado en el Enlace de Pago (no incluye el importe de la comisión cobrada al Cliente, si la hubiera). La suma de la comisión del cliente y startAmount está en el campo importeya que éste es el valor resultante de la transacción). Se utiliza un punto como separador decimal - '.' Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. |
70 | recurringData-> recurringAction | cadena{1,100} | Acción en el proceso de pago automático (el significado y los valores permitidos se describen en la sección Definiciones). |
71 | recurringData-> clientHash | cadena{1,64} | Identificador de pago automático generado por el PA y transmitido al socio tras la activación correcta del pago automático. |
72 | recurringData-> expirationDate | cadena{14} | Hora de vencimiento del pago automático, transmitida en el formato AAAAMMDDhhmmss. (hora CET) |
73 | cardData-> index | cadena{1,64} | Índice de la tarjeta (si se utiliza una tarjeta). El índice identifica una tarjeta con una fecha de caducidad determinada (si se cambia la fecha o el número de tarjeta, cambia el valor de este parámetro). |
74 | validezAño | cadena{4} | Validez de la tarjeta en formato AAAA (si se ha utilizado una tarjeta). |
75 | cardDate-> validityMonth | cadena{4} | Validez de la tarjeta en formato mm (si se utiliza la tarjeta). |
76 | cardData-> emisor | cadena{1,64} | Tipo de tarjeta (si se utiliza una tarjeta). Valores posibles: - VISA - TARJETA MASTER - MAESTRO - AMERICAN EXPRESS (actualmente no admitido) - DISCOVER (no compatible actualmente) - COMEDORES (actualmente no compatible) - UNCATEGORIZED (emisor no reconocido) |
77 | cardData-> bin | cadena{6} | Los 6 primeros dígitos del número de tarjeta (si se utiliza una tarjeta). Se pasa si no se pasa el parámetro cardData-> mask. |
78 | cardData-> máscara | cadena{4} | Los 4 últimos dígitos del número de tarjeta (si se utiliza una tarjeta). Se pasa si no se pasa el parámetro cardData->bin. |
90 | producto-> subImporte | importe | El importe del producto utiliza un punto como separador decimal - '.' Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. Nodo sólo disponible en comunicaciones IPN. |
91 | producto-> parámetros | carta | Parámetros posteriores del producto según el formato de la cesta en el inicio de la transacción. Nodo solo disponible en mensajes IPN. |
NOTAS: Para contar los valores Hash, se toman los atributos valor otros nodos parámetros.producto.
Ejemplo de mensaje ITN/IPN con parámetros adicionales (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transactionList>
<serviceID>ServiceID</serviceID>
<transactions>
<transaction>
<orderID>OrderID</orderID>
<remoteID>RemoteID</remoteID>
<amount>999999.99</amount>
<currency>PLN</currency>
<gatewayID>GatewayID</gatewayID>
<paymentDate>YYYYMMDDhhmmss</paymentDate>
<paymentStatus>PaymentStatus</paymentStatus>
<paymentStatusDetails>PaymentStatusDetails</paymentStatusDetails>
<addressIP>127.0.0.1</addressIP>
<customerNumber>1111111</customerNumber>
<title>title</title>
<customerData>
<fName>fName</fName>
<lName>lName</lName>
<streetName>streetName</streetName>
<streetHouseNo>streetHouseNo</streetHouseNo>
<streetStaircaseNo>streetStaircaseNo</streetStaircaseNo>
<streetPremiseNo>streetPremiseNo</streetPremiseNo>
<postalCode>postalCode</postalCode>
<city>city</city>
<nrb>nrb</nrb>
<senderData>senderData</senderData>
</customerData>
<verificationStatus>verificationStatus</verificationStatus>
<verificationStatusReasons>
<verificationStatusReason>reason1</verificationStatusReason>
<verificationStatusReason>reason2</verificationStatusReason>
<verificationStatusReason>reason3</verificationStatusReason>
</verificationStatusReasons>
<startAmount>999998.99</startAmount>
<recurringData>
<recurringAction>RecurringAction</recurringAction>
<clientHash>ClientHash</clientHash>
<expirationDate>YYYYMMDDhhmmss</expirationDate>
</recurringData>
<cardData>
<index>Index</index>
<validityYear>ValidityYear</validityYear>
<validityMonth>ValidityMonth</validityMonth>
<issuer>Issuer</issuer>
<bin>BIN</bin>
</cardData>
<product>
<subAmount>SubAmount</subAmount>
<params>
<param name="idBalancePoint" value="idBalancePoint"/>
<param name="invoiceNumber" value="invoiceNumber"/>
<param name="customerNumber" value="customerNumber"/>
<param name="subAmount" value="SubAmount"/>
</params>
</product>
</transaction>
</transactions>
<hash>Hash</hash>
</transactionList>
Estado de los pagos | VerificationStatus | Detalles de la verificación (verificationStatusReasons) | Detalles |
---|---|---|---|
PENDIENTE | PENDIENTE | Vacío | El cliente ha seleccionado la forma de pago. |
ÉXITO | PENDIENTE | Vacío | La transacción ha sido pagada, el Sistema está a la espera de recuperar los datos del contribuyente de la cuenta. |
ÉXITO | PENDIENTE | NEED_FEEDBACK | Autopay está a la espera de que el socio cumpla las condiciones formales. |
ÉXITO | POSITIVO | Vacío | La verificación se ha realizado correctamente. |
ÉXITO | NEGATIVO | Lista de motivos de NEGATIVO | Verificación negativa. |
Estado de los pagos | VerificationStatus | Detalles de la verificación (verificationStatusReasons) | Detalles |
---|---|---|---|
PENDIENTE | PENDIENTE | Vacío | El cliente ha seleccionado la forma de pago. |
FALLO | PENDIENTE | Vacío | La transacción no se ha completado correctamente. No se proporcionará el estado de verificación. |
El mensaje ITN para una transacción entrante contiene, además del estado del pago
(campo paymentStatus) una descripción detallada de ese estado (campo
paymentStatusDetails). Esta descripción debe tratarse como informativa,
la lista de sus valores permitidos crece constantemente y la aparición de
nuevos valores puede no implicar la no aceptación del mensaje
ITN.
Valor del campo | Significado del campo |
---|---|
AUTORIZADO | operación autorizada por un Canal de Pago |
ACEPTADO | transacción aprobada por el Centro de atención telefónica (por ejemplo, como resultado de una reclamación aceptada) |
RECHAZADO | Transacción interrumpida por un canal de pago (banco/agente de compensación) |
RECHAZADO_POR_USUARIO | Transacción finalizada por el cliente |
IMPORTE_INCORRECTO | se pagó un importe distinto del indicado al inicio de la transacción |
EXPIRADO | operación vencida |
CANCELADO | una transacción cancelada por el Servicio Asociado o el Centro de Atención Telefónica (por ejemplo, a petición del Cliente). No es posible iniciar una nueva transacción o continuar una transacción iniciada anteriormente con el mismo OrderID |
RECURSIÓN_INACTIVA | error cíclico de la actividad de pago |
OTRO_ERROR | se ha producido otro error al procesar la transacción |
Valor del campo | Significado del campo | Código de error de organización de tarjeta opcional |
---|---|---|
ERROR_DE_CONEXIÓN | error de conexión con el banco emisor de la tarjeta de pago | ✔ |
LÍMITE_TARJETA_EXCEDIDO | error en los límites de las tarjetas de pago | ✔ |
ERROR DE SEGURIDAD | error de seguridad (por ejemplo, cvv incorrecto) | ✔ |
DO_NOT_HONOR | Denegación de autorización en el banco; sugerencia de que el cliente se ponga en contacto con el emisor de la tarjeta | ✔ |
THREEDS_NEGATIVE | transacción fallida en 3DS | ✔ |
TARJETA_EXPIRADA | tarjeta no válida | ✔ |
NÚMERO_TARJETA_INCORRECTO | número de tarjeta incorrecto | ✔ |
SOSPECHOSO_FRAUDE | sospecha de fraude (por ejemplo, pérdida de la tarjeta, etc.) | ✔ |
STOP_RECURRING | imposibilidad de repetición por anulación de las instrucciones del cliente | ✔ |
VOID | transacción abandonada o error de comunicación | ✖ |
UNCLASSIFIED | otros errores | ✔ |
Valor del campo | Significado del campo |
---|---|
FONDOS_INSUFICIENTES | Falta de fondos. Mensaje recomendado que se mostrará al cliente indicando: Pago fallido - rechazo del banco. Compruebe el motivo del rechazo en la solicitud bancaria. Si el motivo es que has superado el límite, puedes aumentarlo poniéndote en contacto con tu banco. |
LÍMITE SUPERADO | Error de límites (por ejemplo, importes). Mensaje recomendado para mostrar al cliente: Pago fallido - denegación bancaria. Compruebe el motivo del rechazo en la solicitud del banco.... Si el motivo es que has superado el límite, puedes aumentarlo poniéndote en contacto con tu banco. |
BAD_PIN | se ha introducido un PIN incorrecto al confirmar la transacción |
EMISOR_DECLINADO, USUARIO_DECLINADO, SEC_DECLINADO | Transacción finalizada por el cliente |
TIEMPO DE ESPERA i AM_TIMEOUT | tiempo de espera en la comunicación con la aplicación móvil del banco |
USER_TIMEOUT | tiempo de espera para que el cliente confirme la transacción |
En el caso de un socio que utilice estructura ampliada (Cesta de productos con múltiples puntos de facturación), el Sistema proporciona notificaciones independientes de los cambios de estado de cada producto. Este servicio tiene sentido si los puntos de facturación individuales deben recibir sus propias notificaciones. En este caso, la configuración de la IPN (dirección para las notificaciones, campos que deben incluirse en el mensaje, etc.) se almacena precisamente en el nivel de configuración del punto de facturación. La estructura de la IPN es similar a la de la ITN (ampliada únicamente por el nodo producto similar a la descrita en el capítulo Campos adicionales en el mensaje ITN/IPN de la transacción entrante, complementado únicamente por la repetición de la cantidad subImporte en params). Ejemplo de IPN en la subsección Campos adicionales en el mensaje ITN/IPN de la transacción entrante).
Es posible proporcionar mensajes sobre todos los desembolsos (liquidaciones, desembolsos de saldos y reembolsos) realizados por el Sistema como parte del servicio de pago. Dado que el servicio no está habilitado por defecto, la necesidad de este servicio, junto con la dirección postal de la RTI, deberá ser solicitada por el Socio durante la determinación de los requisitos.
Si la comunicación ISTN se activa con éxito, el Sistema transmite inmediatamente notificaciones sobre el hecho de la ordenación de la operación de liquidación (reintegros/devoluciones, en su caso) y el cambio de su estado. Las confirmaciones se envían, a la dirección en el servidor del Servicio del Socio establecido durante la adición de la configuración del Servicio del Socio:
https://sklep_nazwa/odbior_informacji_o_rozliczeniu
Esta notificación consiste en el envío por parte del Sistema de un documento XML
que contiene los nuevos estados de las transacciones. El documento se envía a través del protocolo
HTTPS (puerto 443 por defecto). El documento se envía
a través del método POST, como un parámetro HTTP denominado transacciones. Este parámetro
se almacena utilizando el mecanismo de codificación de transporte Base64.
Formato de documento (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transactionList>
<serviceID>ServiceID</serviceID>
<transactions>
<transaction>
<isRefund>true/false</isRefund>
<productID>ProductID</productID>
<orderID>OrderID</orderID>
<orderOutID>OrderOutID</orderOutID>
<remoteID>RemoteID</remoteID>
<remoteOutID>RemoteOutID</remoteOutID>
<amount>999999.99</amount>
<currency>PLN</currency>
<transferDate>YYYYMMDDhhmmss</transferDate>
<transferStatus>TransferStatus</transferStatus>
<transferStatusDetails>TranasferStatusDetails</transferStatusDetails>
<title>Title</title>
<receiverBank>ReceiverBank</receiverBank>
<receiverNRB>ReceiverNRB</receiverNRB>
<receiverName>ReceiverName</receiverName>
<receiverAddress>ReceiverAddress</receiverAddress>
<senderBank>SenderBank</senderBank>
<senderNRB>SenderNRB</senderNRB>
</transaction>
</transactions>
<hash>Hash</hash>
</transactionList>
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | NO | cadena{1,10} | El identificador del servicio asociado, asignado durante el registro del servicio, identifica de forma exclusiva el servicio asociado en el sistema de pago en línea. |
2 | isRefund | NO | Booleano | Información sobre si el ISTN se refiere a la devolución de una operación (verdadero) o a la liquidación normal (falso). |
3 | productID | NO | cadena{1,36} | El identificador del producto facturado de la cesta de productos de la transacción entrante, el valor del campo debe ser único para el Servicio Asociado. |
4 | orderID | NO | cadena{1,32} | Introduzca un identificador de transacción de hasta 32 caracteres alfanuméricos latinos; el valor del campo debe ser único para el Servicio asociado. |
5 | orderOutID | NO | cadena{1,32} | Identificador de transacción de salida de hasta 32 caracteres alfanuméricos latinos. El campo puede ser asignado por el Servicio (en el caso de una orden de facturación) o por el Sistema de Pago Online. |
6 | remoteID | NO | cadena{1,20} | Identificador alfanumérico de la operación entrante asignado por el sistema de pago en línea (se facilita si hay un pago vinculado a la liquidación). |
7 | remoteOutID | NO | cadena{1,20} | Identificador alfanumérico de la operación de liquidación asignado por el Sistema de Pago en Línea. |
8 | importe | SÍ | importe | Importe de la transacción. Se utiliza un punto - '.' - como separador decimal. Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. |
9 | divisa | SÍ | cadena{1,3} | Moneda de la transacción. |
40 | fechaTransferencia | NO | cadena{14} | La hora en que se autorizó la transacción, transmitida en el formato AAAAMMDDhhmmss. (hora CET). Sólo se produce para transferStatus=SUCCESS. |
41 | transferStatus | SÍ | enum | Estado de autorización de la operación de liquidación. Adopta los siguientes valores: - PENDIENTE - transferencia pendiente - ÉXITO - transferencia ordenada al banco - FALLO - no se puede realizar la transferencia, por ejemplo, número de cuenta incorrecto |
42 | transferStatusDetails | NO | enum | Estado detallado de la transacción, el valor puede ser ignorado por el Servicio Asociado. Acepta los siguientes valores (la lista puede ampliarse): - AUTORIZADO - transacción presentada para su ejecución en el banco - CONFIRMADO - transacción confirmada en el banco (dinero enviado físicamente) - CANCELADA: transacción cancelada por el Servicio asociado o el Centro de atención telefónica (por ejemplo, a petición del Servicio). - ANOTHER_ERROR - se ha producido otro error en el procesamiento de la transacción |
43 | título | NO | cadena{1,140} | Título de la transferencia de liquidación. En determinados casos, ajenos a la voluntad de AP, el título de la transferencia de liquidación puede ser modificado independientemente por el Banco desde el que se realizó la liquidación. Caracteres alfanuméricos latinos aceptables y caracteres de la gama: ĘęÓ󥹌śŁłŻżŹźĆćŃń\\s.-/,!@#%\^\*()\_=+\[\]{};:? donde el signo "/" será sustituido por un "-" para las transacciones salientes. |
44 | receptorBanco | NO | cadena{1,64} | El nombre del banco al que el Sistema ha realizado la transferencia. |
45 | receptorNRB | NO | cadena{26} | El número de cuenta bancaria del destinatario de la transferencia. |
46 | receiverName | NO | cadena{1,140} | Nombre del destinatario de la transferencia. Caracteres alfanuméricos latinos aceptables y caracteres de la gama: |
47 | receiverAddress | NO | cadena{1,140} | Dirección del destinatario de la transferencia. Caracteres alfanuméricos latinos aceptables y caracteres de la gama: |
48 | senderBank | NO | cadena{1,64} | El nombre del banco a través del cual el Sistema realizó la transferencia. |
49 | senderNRB | NO | cadena{26} | Número de cuenta bancaria del remitente de la transferencia. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
En respuesta a la notificación, se espera un texto en formato XML (no codificado en Base64), devuelto por el Servicio Partner en la misma sesión HTTP, que contiene un acuse de recibo del estado de la transacción.
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8"?>
<confirmationList>
<serviceID>ServiceID</serviceID>
<transactionsConfirmations>
<transactionConfirmed>
<remoteOutID>RemoteOutID</remoteOutID>
<confirmation>Confirmation</confirmation>
</transactionConfirmed>
</transactionsConfirmations>
<hash>Hash</hash>
</confirmationList>
Elemento confirmación se utiliza para transmitir el estado de verificación de la
autenticidad de la transacción por parte del servicio asociado. El valor del elemento
se determina validando el valor del parámetro
serviceID, así como verificando que el hash calculado coincide con el valor
pasado en el campo hash.
Se proporcionan dos valores para este elemento:
a) CONFIRMADO - el parámetro hash es consistente - transacción auténtica;
b) NO CONFIRMADO - el parámetro hash es inconsistente - transacción
no auténtica;
Si no hay una respuesta correcta a las notificaciones enviadas, el Sistema
realizará nuevos intentos de comunicar un nuevo estado una vez transcurrido un
tiempo especificado. El Servicio Asociado debe realizar su propia lógica de negocio,
sólo después del primer mensaje sobre un estado de pago determinado.
TIP: Merece la pena echar un vistazo a Plan de reproducción de mensajes ITN/ISTN/IPN/RPAN/RPDN.
En el modelo básico, el Sistema sólo proporcionará el estado ÉXITOSin embargo, una notificación más precisa es posible
. La opción completa debe ser
notificada durante la integración e implica el siguiente patrón de
transiciones de estado.
Una orden para una operación de liquidación envía un estado
PENDIENTE. Posteriormente, el sistema proporcionará ÉXITO o FALLO. Para las transacciones
para las que se ha producido el estado ÉXITO, ya no debería
haber un cambio de estado a FALLO. No obstante, puede producirse un cambio de
estado de detalle (los posteriores
mensajes de cambio de estado de detalle son meramente informativos y no deben implicar
la reejecución de ninguna lógica empresarial).
En casos especiales (por ejemplo, un error en el banco), una transacción originalmente
confirmada puede pasar a ser reejecutada, y así
cambiar su estado a. PENDIENTE y de nuevo en ÉXITO.
Otro caso especial puede ser la situación de FALLO (por ejemplo, después de un
error interno del Sistema), luego se sustituye por el estado de la ÉXITO.
Con el fin de construir una vista de selección de método de pago en el Servicio, el Sistema permite que la lista actual de los canales de pago para ser consultado de forma remota. Para ello, llame al método gatewayList (https://{host_gateway}/gatewayList/v3) con parámetros correspondientes (en formato JSON). Todos los parámetros se transmiten utilizando la tecnología REST. El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros. Los valores de los parámetros pasados deben estar codificados en UTF-8.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | entero | ID de servicio de socio. |
2 | MessageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio con una longitud de 32 caracteres alfanuméricos latinos (por ejemplo, basado en UID). El valor del campo debe ser único para el servicio asociado. |
3 | Divisas | SÍ | cadena{0,1000} | Lista de monedas cuya lista de canales disponibles debe devolverse. La lista debe tener un mínimo de un elemento. Los valores aceptables son: PLN, EUR, GBP, USD. |
4 | Idioma | SÍ | cadena{2} | Lengua en la que se devolverán las descripciones de los métodos de pago. Valores aceptables: PL,EN,DE,FR,IT,ES,CS,RO,SK,HU,UK,EL,HR,SL,TR,BG. |
5 | Hash | SÍ | cadena{64} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones |
Ejemplo de mensaje
{
"ServiceID": 47498,
"MessageID": "11111111111111111111111111111111",
"Currencies":"PLN,EUR",
"Language": "PL",
"Hash": "306519f632e53a5e662de0125da7ac3f8135c7e4080900f2b145d4b25ff1b55d"
}
En respuesta a una solicitud, se devuelven 2 listas de definiciones en la misma sesión HTTP:
a) Canales de pago (nodo gatewayList
)
b) Grupos de pago (nodo gatewayGroups
)
A continuación encontrará una descripción detallada del mensaje devuelto:
nombre | obligatorio | tipo | descripción | |
---|---|---|---|---|
1 | resultado | SÍ | cadena{1,5} | Estado de la respuesta. Valores aceptables: - OK - ERROR |
2 | errorStatus | SÍ | cadena{1,100} | Estado de error, a rellenar en caso de error (en caso contrario, nulo). |
3 | descripción | SÍ | cadena{1,500} | Descripción del error, que se rellenará en caso de error (en caso contrario, null). |
4 | gatewayGroups | SÍ | carta | Una lista que contiene grupos de pago. |
4.1 | tipo | SÍ | cadena{1,20} | Tipo de grupo de pago. Cada definición de pago se asigna a uno de los tipos. |
4.2 | título | SÍ | cadena{1,50} | Nombre del grupo de pago. |
4.3 | shortDescription | NO | cadena{1,200} | Breve descripción del grupo de pago. |
4.4 | descripción | NO | cadena{1,1000} | Descripción detallada del grupo de pago. |
4.5 | pedir | SÍ | entero | Orden recomendado de visualización de los grupos de pago. |
4.6 | iconUrl | NO | cadena{1,100} | Dirección desde la que se puede descargar el logotipo del grupo de pago. |
5 | serviceID | SÍ | cadena{1,10} | Identificador del servicio asociado; derivado de la solicitud del método. |
6 | messageID | SÍ | cadena{32} | Identificador del mensaje derivado de la solicitud del método. |
7 | gatewayList | NO | carta | Lista que contiene más canales de pago (vacía si no hay canales de pago configurados). |
7.1 | gatewayID | SÍ | entero{1,5} | Identificador del Canal de Pago con el que el Cliente puede liquidar el pago. |
7.2 | nombre | SÍ | cadena{1,200} | El nombre del Canal de Pago que puede mostrarse en la lista de bancos disponibles. |
7.3 | groupType | NO | cadena{1,30} | Tipo, utilizado para agrupar los Canales de Pago en su lista. El parámetro toma valores del nodo gatewayGroups . |
7.4 | bankName | NO | cadena{1,32} | Nombre del banco. |
7.5 | iconUrl | NO | cadena{1,100} | Dirección desde la que se puede descargar el logotipo del Canal de Pago. |
7.6 | estado | SÍ | cadena{1,64} | Información sobre el estado de disponibilidad de los canales. Acepta valores: - OK - canal disponible - TEMPORARY_DISABLED - canal temporalmente no disponible (por ejemplo, debido a trabajos bancarios) - DISABLED - canal no disponible (servicio suspendido durante un periodo prolongado) |
7.7 | stateDate | NO | cadena{1,19} | Última actualización del estado del Canal de Pago; valor de ejemplo: 2023-08-28 00:00:01. (hora CET) |
7.8 | shortDescription | NO | cadena{1,200} | Campo opcional que contiene una breve descripción del canal de pago. Puede mostrarse cuando se selecciona. |
7.9 | descripción | NO | cadena{1,1000} | Campo opcional que describe detalladamente el canal de pago (puede ser con etiquetas HTML). |
7.10 | descripciónUrl | NO | cadena{1,200} | Campo opcional que contiene un enlace a una página externa que detalla el canal de pago. |
7.11 | disponiblePara | SÍ | cadena{2,10} | El valor de este campo indica a qué cliente está destinado el canal de pago:B2C - forma de pago para particulares B2B - método de pago para empresas AMBOS - método de pago para todos los clientes.En función de este parámetro, debe decidirse si debe presentarse al cliente un canal de pago. |
7.12 | requiredParams | NO | lista | Una lista de parámetros necesarios al seleccionar un método de pago. Por ejemplo, el inicio de una transacción para un método de pago del grupo B2B debe incluir el parámetro Nip . Los parámetros necesarios se describen en la sección: Iniciar una transacción con parámetros adicionales.Actualmente, estos parámetros pueden ser: Nip y Nombre del titular de la cuenta . |
7.13 | mcc | NO | objeto | Código de categoría de comerciante. Nodo opcional, configurable adicionalmente. En casos especiales, para sitios que contienen productos de diferentes categorías, podemos devolver una lista de códigos MCC permitidos y prohibidos para que el comerciante por su parte pueda decidir si el método de pago puede ser presentado o no. |
7.13.1 | permitido | NO | carta | Lista de códigos MCC permitidos. |
7.13.2 | no autorizado | NO | carta | Lista de códigos MCC prohibidos. |
7.14 | inBalanceAllowed | NO | booleano | Información sobre si el canal puede utilizarse (tras acuerdos comerciales) para saldos prepagados (inicio de la transacción con el parámetro TransactionSettlementMode=NONE). |
7.15 | minValidityTime | NO | entero | Tiempo mínimo de validez de la transacción en minutos. Aparece para los canales en los que se tarda más de lo habitual en establecer el estado del pago. |
7.16 | pedir | SÍ | entero | Orden recomendado de visualización del método de pago. |
7.17 | divisas | SÍ | lista | Una lista que contiene las divisas disponibles para el canal de pago, con límites en los importes. |
7.17.1 | divisa | SÍ | cadena{3} | La moneda que puede ser pagada por este canal. Si hay varias divisas disponibles para un canal de pago, la lista contendrá más de un elemento. Sólo valores aceptables: PLN, EUR, GBP y USD. Para el recuento de los valores Hash, se toman los valores de los siguientes nodos divisas. |
7.17.2 | minImporte | NO | importe | El importe mínimo de una transacción que puede pagarse a través de este canal. Se utiliza un punto como separador decimal - '.' Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. El campo está presente sólo para algunos canales, el valor se expresa en la moneda del campo divisa. Para el recuento de los valores Hash, se toman los valores de los siguientes nodos divisas. |
7.17.3 | maxAmount | NO | importe | El importe máximo de una transacción que puede pagarse a través de este canal. Se utiliza un punto como separador decimal - '.' Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. El campo sólo está presente para algunos canales, el valor se expresa en la moneda del campo divisa. Para el recuento de los valores Hash, se toman los valores de los siguientes nodos divisas. |
7.18 | buttonTitle | SÍ | cadena | Mensaje sugerido que debe aparecer en el botón "pagar" después de seleccionar un canal de pago. |
Ejemplo de respuesta
{
"result": "OK",
"errorStatus": null,
"description": null,
"gatewayGroups": [
{
"type": "PBL",
"title": "Przelew internetowy",
"shortDescription": "Wybierz bank, z którego chcesz zlecić płatność",
"description": null,
"order": 1,
"iconUrl": null
},
{
"type": "FR",
"title": "Dane do przelewu",
"shortDescription": "Zleć przelew wykorzystując podane dane",
"description": null,
"order": 2,
"iconUrl": null
},
{
"type": "BNPL",
"title": "Kup teraz, zapłać później",
"shortDescription": "Kup teraz, zapłać później",
"description": null,
"order": 3,
"iconUrl": null
}
],
"serviceID": "10000",
"messageID": "2ca19ceb5258ce0aa3bc815e80240000",
"gatewayList": [
{
"gatewayID": 106,
"name": "Płatność testowa PBL",
"groupType": "PBL",
"bankName": "NONE",
"iconURL": "https://testimages.autopay.eu/pomoc/grafika/106.gif",
"state": "OK",
"stateDate": "2023-10-03 14:35:01",
"description": "Płatność testowa",
"shortDescription": null,
"descriptionUrl": null,
"availableFor": "BOTH",
"requiredParams": ["Nip"],
"mcc": {
"allowed": [1234, 9876],
"disallowed": [1111]
},
"inBalanceAllowed": true,
"minValidityTime": null,
"order": 1,
"currencies": [
{
"currency": "PLN",
"minAmount": 0.01,
"maxAmount": 5000.00
}
],
"buttonTitle": "Płacę"
},
{
"gatewayID": 9,
"name": "Przelew z innego banku",
"groupType": "FR",
"bankName": "BANK TEST",
"iconURL": "https://testimages.autopay.eu/pomoc/grafika/9.gif",
"state": "OK",
"stateDate": "2023-10-03 14:35:02",
"description": "<b>Szybki przelew</b>",
"shortDescription": "Szybki przelew",
"descriptionUrl": null,
"availableFor": "BOTH",
"requiredParams": [],
"mcc": null,
"inBalanceAllowed": true,
"minValidityTime": null,
"order": 2,
"currencies": [
{
"currency": "PLN"
}
],
"buttonTitle": "Wygeneruj dane do przelewu"
},
{
"id": 701,
"name": "Zapłać później z Payka",
"groupType": "BNPL",
"bankName": "NONE",
"iconUrl": "https://testimages.autopay.eu/pomoc/grafika/701.png",
"state": "OK",
"stateDate": "2023-10-03 14:37:10",
"description": "<div class=\"payway_desc\"><h1>Dane dotyczące kosztu</h1><p>Zapłać później - jednorazowo do 45 dni (...). Szczegóły oferty na: <a href="?r="https://payka.pl\" target=\"_blank\">Payka.pl</a></p></div>",
"shortDescription": "Zapłać później - jednorazowo do 45 dni lub w kilku równych ratach",
"descriptionUrl": null,
"availableFor": "B2C",
"requiredParams": [],
"mcc": null,
"inBalanceAllowed": false,
"minValidityTime": 60,
"order": 3,
"currencies": [
{
"currency": "PLN",
"minAmount": 49.99,
"maxAmount": 7000.00
}
],
"buttonTitle": "Płacę"
}
]
}
NOTAS: El resultado de la consulta del método debe ser guardado y actualizado cada minuto para comprobar la disponibilidad del canal. En caso de que falte una respuesta o sea incorrecta, debe mostrarse la última configuración conocida y correcta de los canales de pago. Esta es la segunda razón para mantener una copia temporal de la gatewayList en el Servicio de socios. Una respuesta no válida debe considerarse como una respuesta vacía, un tiempo de espera o una lista de nodos vacía. gatewayGroups o gatewayList.
Descripción de una integración que permite utilizar una lista de pagos integrada en un servicio (o aplicación móvil) sin pasos de transición. En
algunos casos, en lugar de un paso de transición, el comportamiento
estándar del sistema prevé el bloqueo del inicio de la transacción.
El contenido formal pertinente (es decir, las cláusulas de información
y, en su caso, los términos y condiciones) debe mostrarse ya en el momento de la selección del método de pago,
y, a continuación, debe transmitirse al Sistema de Pago en Línea la confirmación de su
visualización y, en su caso, aceptación (en forma de identificadores).
El sistema permite consultar a distancia la lista actual de obligaciones y
contenidos formales relacionados. Para ello se utiliza el método
legalData (https://{host_gates}/legalData) con los correspondientes parámetros
(en formato JSON).
TIP: Todos los parámetros se transmiten utilizando tecnología REST. El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros. Los valores de los parámetros transmitidos deben estar codificados en UTF-8.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | entero | ID de servicio de socio. |
2 | MessageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio con una longitud de 32 caracteres alfanuméricos latinos (por ejemplo, basado en UID). El valor del campo debe ser único para el servicio asociado. |
3 | GatewayID | SÍ | entero{1,5} | Identificador del Canal de Pago a través del cual el Cliente pretende liquidar el pago. |
4 | Idioma | SÍ | cadena{2} | El idioma en el que se presenta el contenido del sitio web. Valores aceptables PL, EN, DE, CS, ES, FR, IT, SK, RO, HU, UK. El uso de valores distintos de PL debe confirmarse durante la integración y depende de la elección real (por parte del cliente) del idioma en el Servicio. |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
Ejemplo de mensaje
{
"ServiceID": 102422,
"MessageID": "11111111111111111111111111111111",
"GatewayID": 1500,
"Language": "PL",
"Hash":"61789013d932e2bc728d6206f7e9222b93e3176f7f07f6aa8cce1ccd65afaf0d"
}
En respuesta a la solicitud, se devuelve una lista (en la misma sesión HTTP), que contiene más contenido formal en forma de: ID, tipo y redacción del contenido, su ubicación en el Servicio, dirección a las reglas y otra información adicional.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | resultado | SÍ | cadena{1,5} | Estado de la respuesta. Valores aceptables: - OK - ERROR |
2 | errorStatus | SÍ | cadena{1,100} | Estado de error, a rellenar en caso de error. En caso contrario, null. |
3 | descripción | SÍ | cadena{1,500} | Descripción del error, que se rellenará en caso de error. En caso contrario, null. |
4 | serviceID | SÍ | cadena{1,10} | Identificador del servicio asociado; derivado de la solicitud del método. |
5 | messageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio de 32 caracteres alfanuméricos latinos de longitud (por ejemplo, basado en UID). Derivado de la solicitud del método. |
6 | gatewayID | SÍ | entero{1,5} | Identificador del Canal de Pago con el que el Cliente puede liquidar el pago. |
7 | idioma | SÍ | cadena{2} | El idioma en el que el Sistema devuelve el contenido (cláusulas y reglamentos). |
8 | serviceModel | SÍ | cadena{1,20} | Un campo para denotar el modelo en el que funciona el servicio, para posibles orientaciones futuras basadas en estos valores (actualmente con valores: COMERCIANTE, PAGADOR). Debe ignorarse en este momento. |
s.f. | regulationList | SÍ | carta | Lista que contiene los contenidos formales disponibles para el canal de pago. |
9 | reglamentoID | SÍ | entero{1,10} | Identificador formal del contenido, que (si es aceptado por el cliente) debe pasarse en el parámetro de inicio. DefaultRegulationAcceptanceIDo RecurringAcceptanceID (respectivamente para el tipo DEFAULT i RECURRENTE). El método de aceptación viene determinado por los campos showCheckbox i isCheckboxRequired. NOTAS: Este valor puede repetirse para llamadas con diferentes GatewayIDya que la normativa se atribuye a un grupo de canales de pago y no a canales individuales. |
10 | tipo | SÍ | cadena{1,64} | Tipo de obligación formal. Valores proyectados: - DEFAULT - cláusula(s) y condiciones de pago en el modelo de servicio prestado por AP al cliente - RECURRENTE - cláusula(s) y las condiciones del pago automático. Valor sólo disponible si se ha configurado un servicio de pago automático. - DSP2 - cláusula dedicada a los canales de tipo PSD2 (valor no utilizado por el momento) - RODO - cláusula informativa sobre el tratamiento de datos personales - PRIVACIDAD - cláusula informativa sobre la política de privacidad |
11 | url | NO | cadena{1,500} | Dirección al archivo de términos y condiciones (que debe incrustarse en el propio Servicio). Por defecto, si se trata de una obligación formal, debe formar parte de una de sus cláusulas, es decir, el campo inputLabel. TIP: Aparece cuando hay un documento asociado al consentimiento. |
s.f. | labelList | SÍ | carta | Lista que contiene las cláusulas disponibles para una obligación formal determinada. La obligación puede requerir la visualización de uno o varios contenidos. |
12 | labelID | SÍ | entero{1,10} | Identificador de cláusula, transmitido con fines de diagnóstico (puede ser ignorado por el Socio). |
13 | inputLabel | SÍ | cadena{1,500} | El contenido de la cláusula que se mostrará en el Servicio junto con la correspondiente reglamentoID. En algunos casos, puede incluir un enlace a la normativa. |
14 | colocación | NO | cadena{1,64} | Información que sugiere dónde colocar las cláusulas. Valores actuales: - TOP_OF_PAGE - en la parte superior del sitio (por ejemplo, cerca del logotipo/pancarta superior) - NEAR_PAYWALL - alrededor de la lista de canales de pago (directamente encima, debajo o al lado) - ABOVE_BUTTON - encima del botón "Iniciar pago - BOTTOM_OF_PAGE - al final de la página (normalmente se refiere a cláusulas de información RODO, PRIVACY) |
15 | showCheckbox | SÍ | booleano | Información sobre si una cláusula debe mostrarse junto a una casilla de verificación para que el usuario la acepte. |
16 | checkboxRequired | SÍ | booleano | Información sobre si la casilla mostrada debe ser marcada por el usuario para proceder al pago. NOTAS: Si el valor es verdadero, el botón "Iniciar pago" se bloqueará hasta que se marque la casilla de verificación. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. |
Ejemplo de respuesta
{
"serviceID": "102422",
"messageID": "11111111111111111111111111111111",
"gatewayID": "1500",
"language": "PL",
"serviceModel": "PAYER",
"regulationList": [
{
"regulationID": 6288,
"type": "RECURRING",
"url": "https://host/path?params",
"labelList": [
{
"labelID": 1,
"inputLabel": "<ul><li>\r\nZapoznałem się i akceptuję <a id=\"regulations_pdf\" target=\"_blank\" href=https://{host_bramki}/path?params>Regulamin świadczenia usług płatniczych</a> oraz <a class=\"privacy-policy\" href=\"https://{host_bramki}/polityka-prywatnosci.pdf\" target=\"_blank\">Politykę prywatności</a></li><li>\r\nChcę aby usługa została zrealizowana niezwłocznie, a w przypadku odstąpienia od umowy, wiem, że nie otrzymam zwrotu poniesionych kosztów za usługi zrealizowane na moje żądanie do chwili odstąpienia od umowy\r\n</li></ul>",
"placement": "ABOVE_BUTTON",
"showCheckbox": true,
"checkboxRequired": true
}
]
},
{
"regulationID": 1,
"type": "PRIVACY",
"labelList": [
{
"labelID": 1,
"inputLabel": "Autopay korzysta z plików cookie. Pozostając na tej stronie, wyrażasz zgodę na korzystanie z plików cookie zgodnie z <a class=\"privacy-policy\" href="?r="https://{host_bramki}/polityka-prywatnosci.pdf\" target=\"_blank\">Polityką prywatności Autopay S.A. </a> Możesz samodzielnie zarządzać cookies zmieniając odpowiednio ustawienia swojej przeglądarki lub oprogramowania urządzenia."
"placement": "BOTTOM_OF_PAGE",
"showCheckbox": false,
"checkboxRequired": false
}
]
}
],
"hash": "61789013d932e2bc728d6206f7e9222b93e3176f7f07f6aa8cce1ccd65afaf0d",
"result": "OK",
"errorStatus": null,
"description": null
}
Dado que los requisitos formales del contenido de las cláusulas, su disposición y el método de aceptación dependen del canal de pago utilizado, este método debe llamarse cada vez que se seleccione (de ahí la obligatoriedad del parámetro de la opción GatewayID).
El contenido y el comportamiento relevantes deberían adaptarse dinámicamente a
las respuestas del Sistema (por ejemplo, debería aparecer una casilla de verificación obligatoria con
una cláusula informativa y un enlace a los términos y condiciones). Por supuesto, con el fin de hacer que la
aplicación funcione rápido, el uso de una caché para
recordar las respuestas de las llamadas recientes (por ejemplo, durante 1 minuto) es bienvenido.
El consentimiento mostrado (y posiblemente aprobado) en el momento de la transición al pago debe confirmarse en el Sistema mediante la inclusión en el mensaje de inicio en el parámetro de inicio de su identificador (y, por lo tanto, el valor correspondiente de la etiqueta reglamentoID).
En función del valor del campo tipo reglamentos:
- para la cláusula mostrada/aceptada de tipo=DEFAULT:
a. al parámetro DefaultRegulationAcceptanceID debe ir su valor
. reglamentoID;b. al parámetro DefaultRegulationAcceptanceState debe ir
valor ACEPTADO yc. al parámetro DefaultRegulationAcceptanceTime debe pulsar el valor
correspondiente al momento de aceptación del consentimiento marcando la casilla
y pulsando el botón "Iniciar pago".
- para la cláusula mostrada/aceptada de tipo=RECURRENTE:
a. al parámetro RecurringAcceptanceID debe alcanzar su valor reglamentoID;
b. al parámetro RecurringAcceptanceState debe alcanzar el valor de ACEPTADO y
c. al parámetro RecurringAcceptanceTime debe pulsar el valor correspondiente al momento de aceptación del consentimiento marcando la casilla de verificación y pulsando el botón "Iniciar pago".
NOTAS: Campos (por ejemplo serviceModel, url, labelID) y valores de campo (por ejemplo
PSD2, RODO, PRIVACIDAD) métodos legalData no son necesarios para la gestión de
, pero debe preverse que se produzcan en la
respuesta a una solicitud.
Para todos los servicios, es posible consultar el saldo actual. Para
esto, se debe llamar al método. saldoObtener
https://{host_gates}/webapi/balanceGet con los parámetros correspondientes.
Todos los parámetros se pasan mediante el método POST (Content-Type:
application/x-www-form-urlencoded). El protocolo distingue entre mayúsculas y minúsculas
tanto en los nombres como en los valores de los parámetros. Los valores de los parámetros
pasados deben estar codificados en UTF-8.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | ID de servicio de socio. |
1 | BalancePointID | SÍ | cadena{1,10} | Identificador del punto de liquidación. NOTAS: Campos obligatorios ServiceID o BalancePointID. Si se especifican ambos, se detendrá el procesamiento de la solicitud y se producirá un error http. |
2 | MessageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio con una longitud de 32 caracteres alfanuméricos latinos (por ejemplo, basado en UID). El valor del campo debe ser único para el servicio asociado. |
3 | PlenipotenciarioID | NO | cadena{8,8} | ID del proxy. Si está presente, se utiliza la clave compartida del proxy para calcular el Hash, en lugar de la clave primaria del punto de servicio/facturación. También afecta al Hash en respuesta a este mensaje. IMPORTANTE El uso de este campo requiere acuerdos comerciales especiales. |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Se utiliza una clave compartida asignada al identificador de configuración utilizado (Servicio o Punto de Liquidación). Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
En respuesta a la solicitud, se devuelve un texto en formato XML (en la misma sesión HTTP), que contiene un acuse de recibo de la operación para o una descripción del error.
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balanceGet>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<balance>Balance</balance>
<currency>Currency</currency>
<hash>Hash</hash>
</balanceGet>
o
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balanceGet>
<balancePointID>BalancePointID</balancePointID>
<messageID>MessageID</messageID>
<balance>Balance</balance>
<currency>Currency</currency>
<hash>Hash</hash>
</balanceGet>
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | SÍ | cadena{1,10} | Identificador del servicio asociado. Derivado de una solicitud de método. |
1 | balancePointID | SÍ | cadena{1,10} | Identificador del punto de liquidación. Derivado de una solicitud de método. NOTAS: Se devolverá uno de los campos ServiceID o BalancePointID. |
2 | messageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio de 32 caracteres alfanuméricos latinos de longitud (por ejemplo, basado en UID). Derivado de la solicitud del método. |
3 | saldo | SÍ | importe | Valor de saldo; se utiliza un punto como separador decimal - '.' Formato: 0.00. |
4 | divisa | SÍ | cadena{1,3} | Moneda de equilibrio. Sólo valores aceptables: PLN, EUR, GBP y USD. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Se utiliza una clave compartida asignada al identificador de configuración utilizado (Servicio o Punto de Liquidación). Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. |
Para los servicios que tengan saldo en el Sistema, es posible realizar operaciones
de abono del saldo contra futuras devoluciones. Para ello, es necesario
realizar un inicio de operación con el parámetro TransactionSettlementMode o
valores NONE y Importe indicando el importe de la recarga.
El uso de Pretransacciones permitirá la entrega sencilla de la transacción
finalizada al pagador (por ejemplo, proporcionando la
dirección del departamento de contabilidad del socio en CustomerEmail).
NOTAS: El servicio debe ser acordado con el custodio del negocio. En el modelo Marketplace, también será necesario construir una cesta de productos indicando qué BalancePointID se va a alimentar.
Para los servicios que tienen saldo en el Sistema, es posible realizar operaciones de
para retirar todo o parte del saldo a la cuenta definida para
liquidaciones. Para ello es necesario llamar al método balancePago
(https://{host_gates}/settlementapi/balancePayoff) con los parámetros
correspondientes.
Todos los parámetros se pasan a través del método POST (Content-Type: application/x-www-form-urlencoded). El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros. Los valores de los parámetros pasados deben estar codificados en UTF-8.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
NOTAS: Campos obligatorios ServiceID o BalancePointID.
Si se especifican ambos, se detendrá el procesamiento de la solicitud y se producirá un error http.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | ID de servicio de socio. |
1 | BalancePointID | SÍ | cadena{1,10} | Identificador del punto de liquidación. |
2 | MessageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio con una longitud de 32 caracteres alfanuméricos del alfabeto latino (por ejemplo, basado en UID), el valor del campo debe ser único e indicar una orden de pago específica en el Servicio Asociado. La verificación de la unicidad por parte del Sistema permite repetir el MessageID en caso de problemas de comunicación (la repetición de este valor dará lugar a la confirmación de la orden, sin reejecución en el Sistema). |
3 | Importe | NO | importe | Importe de la retirada del saldo (no puede ser superior al saldo actual del servicio); si no se especifica este parámetro, se retira el total de los fondos acumulados en el saldo; se utiliza un punto - '.' como separador decimal. Formato: 0.00. |
4 | Moneda | NO | cadena{1,3} | Moneda de pago. La moneda por defecto es el PLN (el uso de otra moneda debe acordarse durante la integración). Se admite una moneda dentro de ServiceID. Sólo valores aceptables: PLN, EUR, GBP y USD. |
5 | ClienteNRB | NO | cadena{26} | El número de cuenta al que se va a realizar la retirada de saldo. Por defecto, la configuración de desembolso no permite definir este valor en la solicitud de método balancePago. Dicha solicitud debe realizarse durante la integración. NOTAS: En algunos modelos, el uso de este campo sólo puede darse para peticiones procedentes de una lista de IPs de confianza y el uso de uno de 3 elementos adicionales: - asegurar la comunicación con un certificado de cliente o - asegurar la comunicación con un túnel IPSec o - utilización del valor del parámetro ClienteNRB de la lista de cuentas de confianza El incumplimiento de las mismas da lugar a un error CUSTOMER_NRB_NOT_AUTHORIZED. Administradores del panel del sistema (https://portal.autopay.eu/admin) pueden actualizar ellos mismos las listas de IP y NRB de confianza en el Control de acceso configuración del servicio. Sólo se permiten dígitos. Si, durante la integración, se estableció el uso de cuentas fuera de Polonia, entonces el campo transfiere IBAN y el rango de datos del campo esperado cambia a: caracteres alfanuméricos latinos (mín. 15, máx. 32 caracteres). |
6 | SwiftCode | NO | cadena{8,11} | El código swift correspondiente al número de cuenta indicado. Sólo se permiten dígitos. Parámetro que debe facilitarse si durante la integración se estableció el uso de cuentas no polacas. |
7 | ForeignTransferMode | NO | cadena{4,5} | Sistema por el que se va a realizar la transferencia de liquidación exterior: - SEPA (Zona Única de Pagos en Euros): es posible realizar transferencias en euros dentro de los Estados miembros de la Unión Europea, así como a otros países del Viejo Continente, como Islandia, Liechtenstein, Noruega, Suiza, Mónaco o Andorra, - SWIFT - transferencias al extranjero no posibles con SEPA (por ejemplo, otra moneda distinta del euro. Esta opción conlleva costes de transferencia más elevados que la SEPA. Valores aceptables: SEPA i SWIFT. Parámetro que debe facilitarse si se ha establecido el uso de cuentas fuera de Polonia durante la integración. |
8 | ReceiverName | NO | cadena{35} | El nombre del beneficiario de la retirada de saldo. Por defecto, la configuración del desembolso no permite definir este valor en la solicitud del método balancePago. Dicha solicitud debe realizarse durante la integración. Caracteres alfanuméricos latinos aceptables y caracteres de la gama: êÓÓ±³¿¼ññæñ.-/,!()=[]{};:? |
9 | Título | NO | cadena{32} | Título del desembolso del saldo. Por defecto, la configuración del desembolso no permite definir este valor en la solicitud del método balancePago. Dicha solicitud debe realizarse durante la integración. En determinados casos, ajenos al control del PA, este título podrá ser modificado independientemente por el Banco. Caracteres alfanuméricos latinos aceptables y caracteres de la gama: donde el signo "/" será sustituido por un "-" para las transacciones salientes. |
10 | RemoteRefID | NO | cadena{1,20} | El identificador alfanumérico de la transacción entrante asignado por el Sistema y transmitido al Socio en el mensaje ITN de la transacción entrante. El valor de este mensaje se utiliza para indicar el instrumento de pago (tarjeta, cuenta, etc.) que se utilizará para realizar la retirada. |
11 | NúmeroDeFactura | NO | cadena{1,100} | El número del documento financiero en el Servicio. En este mensaje, el valor se utiliza para indicar la factura rectificativa asociada al pago. |
12 | PlenipotenciarioID | NO | cadena{8,8} | ID del proxy. Si está presente, se utiliza la clave compartida del proxy para calcular el Hash, en lugar de la clave primaria del punto de servicio/facturación. También afecta al Hash en respuesta a este mensaje. IMPORTANTE El uso de este campo requiere acuerdos comerciales especiales. |
s.f. | Hash | SÍ | cadena{1,128} | Se utiliza la clave compartida asignada al identificador de configuración utilizado (Servicio o Punto de Liquidación). El valor de la función hash para el mensaje calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
Al recibir una solicitud de retirada de saldo, el Sistema realiza una verificación inicial con los campos y sus valores enviados en el mensaje y guarda la orden para su ejecución. En respuesta a la solicitud, se devuelve un texto con formato XML (en la misma sesión HTTP), que contiene un acuse de recibo de que la orden se ha guardado en la cola para su ejecución o una descripción del error (la estructura del mensaje de error se describe en el apartado Mensajes de error.
NOTAS: El acuse de recibo de una orden no equivale a su ejecución efectiva. Una retirada de saldo puede procesarse hasta 30 minutos después del envío de la solicitud de retirada y puede que no siempre tenga éxito. En caso de que surjan problemas durante el procesamiento de una retirada de saldo (por ejemplo, fondos insuficientes en el saldo), al día hábil siguiente se envía un informe con información sobre las retiradas de saldo que no han tenido éxito.
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balancePayoff>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<hash>Hash</hash>
</balancePayoff>
o
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<balancePayoff>
<balancePointID>BalancePointID</balancePointID>
<messageID>MessageID</messageID>
<hash>Hash</hash>
</balancePayoff>
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | SÍ | cadena{1,10} | Identificador del servicio asociado. Derivado de una solicitud de método. |
1 | balancePointID | SÍ | cadena{1,10} | Identificador del punto de liquidación. Derivado de una solicitud de método. NOTAS: Se devolverá uno de los campos ServiceID o BalancePointID. |
2 | messageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio de 32 caracteres alfanuméricos latinos de longitud (por ejemplo, basado en UID). Derivado de la solicitud del método. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. |
NOTAS: Todas las respuestas distintas de la supuesta (es decir, con campos incorrectos, en particular en blanco o incorrectos hash). En caso de que el Sistema autorice al emisor del mensaje de retorno pero la operación falle, la respuesta seguirá el esquema descrito en el apartado Mensajes de error. En caso de error de comunicación o de saldo insuficiente (por ejemplo, ON_DEMAND_ERROR), la orden puede renovarse. Si el saldo está bloqueado (BALANCE_DISABLED) o la configuración no está activa (PARTNER_DISABLED), la orden no debe renovarse.
IMPORTANTE En caso de que se devuelva un error en respuesta a una solicitud de retirada de saldo, la solicitud puede volver a intentarse, pero tenga en cuenta que cualquier solicitud de retirada que no termine en error puede ejecutarse. En caso de problemas de conexión, que superen el tiempo máximo de respuesta, se puede repetir la solicitud con el mismo MessageID sin temor a duplicar la orden.
En caso de saldo bloqueado (BALANCE_DISABLED) o configuración inactiva (PARTNER_DISABLED), la solicitud no debe renovarse. 3 errores seguidos (independientemente de la causa) bloquearán el servicio de desembolso bajo demanda para la IP remitente de mensajes especificada durante 10 minutos - las llamadas durante este tiempo para esta IP finalizarán con un error TEMPORARY_DISABLED.
Para los servicios con saldo en el Sistema, es posible realizar operaciones de devolución al Cliente de todo o parte del importe abonado por la transacción indicada. La devolución de la totalidad de la transacción puede realizarse una sola vez (en caso de que se intente repetidamente solicitar la devolución de la misma transacción, el Sistema devuelve un error debidamente descrito). Las devoluciones de parte del importe de una transacción pueden realizarse en ella varias veces, siempre que su total no supere el importe del depósito.
Para realizar una devolución de transacción, llame al método transactionRefund (https://{host_gates}/settlementapi/transactionRefund) con los parámetros correspondientes. Todos los parámetros se pasan mediante el método POST (Content-Type: application/x-www-form-urlencoded). El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros. Los valores de los parámetros pasados deben estar codificados en UTF-8.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | ID de servicio de socio. |
2 | MessageID | SÍ | cadena{32} | Identificador pseudoaleatorio del mensaje con una longitud de 32 caracteres alfanuméricos del alfabeto latino (por ejemplo, basado en UID), el valor del campo debe ser único e indicar una orden de pago específica en el Servicio Asociado. La verificación de la unicidad por parte del Sistema permite repetir lo siguiente MessageID en caso de problemas de comunicación (la reiteración de este valor dará lugar a la confirmación del pedido, sin reejecución en el Sistema). |
3 | RemoteID | SÍ | cadena{1,20} | Identificador alfanumérico de la transacción de entrada devuelta asignado por el Sistema y transmitido al Socio en el mensaje ITN de la transacción de entrada. |
4 | Importe | NO | importe | Importe de la retirada del saldo (no puede ser superior al saldo actual del servicio); si no se especifica este parámetro, se retira el total de los fondos acumulados en el saldo; se utiliza un punto - '.' como separador decimal. Formato: 0.00. En el modelo Marketplace, el campo debe estar en blanco (devolución total). De lo contrario, no sería posible indicar el punto o puntos de facturación a los que se cobrará dicha operación. En el caso de una devolución total, el saldo se deduce en función de la suma de los importes de los productos del respectivo punto de compensación. |
5 | Moneda | NO | cadena{1,3} | Moneda de pago. La moneda por defecto es el PLN (el uso de otra moneda debe acordarse durante la integración). Se admite una moneda dentro de ServiceID. Sólo valores aceptables: PLN, EUR, GBP y USD. |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. |
En respuesta a la solicitud, se devuelve un texto con formato XML (en la misma sesión HTTP), ya sea confirmando la operación o describiendo el error (descrito a continuación).
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<transactionRefund>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<hash>Hash</hash>
</transactionRefund>
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | SÍ | cadena{1,10} | Identificador del servicio asociado. Derivado de una solicitud de método. |
2 | messageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio de 32 caracteres alfanuméricos latinos de longitud (por ejemplo, basado en UID). Derivado de la solicitud del método. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. |
La opción de realizar reembolsos a las transacciones pagadas es posible hasta 12
meses atrás, a contar desde la fecha en que se inició la transacción. Una excepción son los pagos
BLIK, que, debido a limitaciones de tiempo por parte del proveedor del canal de pago
, pueden reembolsarse hasta 6 meses atrás.
Estos plazos se aplican a la tramitación de las devoluciones a través del
panel de administración y del transactionRefund, por ejemplo, a través de las herramientas administrativas propias de
. Cuando se superen, se devolverá un error
(TRANSACCIÓN_DEMASIADO_ANTIGUO_PARA_DEVOLUCIÓN).
El esquema de funcionamiento es análogo al de las retiradas de saldo. Es decir, el Sistema acepta la orden y la procesa de forma asíncrona en un máximo de 30 minutos, y en caso de fallo, la información sobre la operación que termina en un error se envía en un informe en el siguiente día hábil.
En caso de problemas de conexión, superando el tiempo máximo de respuesta, la solicitud se puede repetir con el mismo MessageID sin temor a una solicitud duplicada.
Todas las respuestas distintas de la supuesta (es decir, con campos
no válidos, en particular, en blanco o no válidos.
hash). Si el Sistema autoriza al remitente del mensaje de retorno
, pero la operación falla, se devuelve como respuesta un mensaje de error
.
Para los sitios con un saldo en el Sistema y especificando
de los productos en el carrito de la compra, el parámetro productID, es posible realizar la operación de devolución
al Cliente de la totalidad o parte del importe pagado por el
producto indicado. La devolución con éxito de la totalidad del importe del producto se puede realizar una vez
(en caso de un intento repetido de ordenar la devolución del mismo producto, el Sistema
devuelve un error debidamente descrito). Devoluciones de parte del importe del producto se pueden realizar en
él varias veces, siempre y cuando su suma no supere el importe pagado
al producto.
Para realizar una devolución de producto, llame al método productoReembolso
(https://{host_gates}/settlementapi/productRefund) con los parámetros
correspondientes. Todos los parámetros se pasan mediante el método POST
(Content-Type: application/x-www-form-urlencoded). El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros. Los valores
de los parámetros pasados deben estar codificados en UTF-8.
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | ID de servicio de socio. |
2 | MessageID | SÍ | cadena{32} | Identificador pseudoaleatorio del mensaje con una longitud de 32 caracteres alfanuméricos del alfabeto latino (por ejemplo, basado en UID), el valor del campo debe ser único e indicar una orden de pago específica en el Servicio Asociado. La verificación de la unicidad por parte del Sistema permite repetir lo siguiente MessageID en caso de problemas de comunicación (la reiteración de este valor dará lugar a la confirmación del pedido, sin reejecución en el Sistema). |
3 | RemoteID | SÍ | cadena{1,20} | Identificador alfanumérico de la transacción de entrada devuelta asignado por el Sistema y transmitido al Socio en el mensaje ITN de la transacción de entrada. |
4 | ProductID | SÍ | cadena{1,36} | Identificador del producto devuelto. |
5 | Importe | NO | importe | Importe de la devolución (no puede ser mayor que el importe del producto y el saldo actual del servicio + el importe de la comisión de devolución, si la hubiera). Si no se especifica este parámetro, se devolverá al cliente todo el importe pagado por el producto devuelto; se utiliza un punto - '.' - como separador decimal. Formato: 0.00. |
6 | Moneda | NO | cadena{1,3} | Moneda de pago. La moneda por defecto es el PLN (el uso de otra moneda debe acordarse durante la integración). Se admite una moneda dentro de ServiceID. Sólo valores aceptables: PLN, EUR, GBP y USD. |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. |
En respuesta a la solicitud, se devuelve un texto en formato
XML (en la misma sesión HTTP), que contiene un acuse de recibo de la operación o una descripción del
error (descrito a continuación).
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<productRefund>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<hash>Hash</hash>
</productRefund>
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | SÍ | cadena{1,10} | Identificador del servicio asociado. Derivado de una solicitud de método. |
2 | messageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio de 32 caracteres alfanuméricos latinos de longitud (por ejemplo, basado en UID). Derivado de la solicitud del método. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. |
La opción de realizar reembolsos a las transacciones pagadas es posible hasta 12
meses atrás, a contar desde la fecha en que se inició la transacción. Una excepción son los pagos
BLIK, que, debido a limitaciones de tiempo por parte del proveedor del canal de pago
, pueden reembolsarse hasta 6 meses atrás.
Estos plazos se aplican a la tramitación de las devoluciones a través del
panel de administración y del productoReembolso, por ejemplo, a través de sus propias herramientas de administración de
. Cuando se superen, se devolverá un error
(TRANSACCIÓN_DEMASIADO_ANTIGUO_PARA_DEVOLUCIÓN).
El esquema de funcionamiento es análogo al de las retiradas de saldo. Es decir, el Sistema acepta la orden y la procesa de forma asíncrona en un máximo de 30 minutos, y en caso de fallo, la información sobre la operación que termina en un error se envía en un informe en el siguiente día hábil.
En caso de problemas de conexión, superando el tiempo máximo de respuesta, la solicitud se puede repetir con el mismo MessageID sin temor a una solicitud duplicada.
Todas las respuestas distintas de la supuesta (es decir, con campos
no válidos, en particular, en blanco o no válidos.
hash). Si el Sistema autoriza al remitente del mensaje de retorno
, pero la operación falla, se devuelve como respuesta un mensaje de error
(Ver. Mensajes de error).
Una vez realizada la devolución o la retirada de saldo, tenemos la opción de comprobar en qué estado se encuentra la operación de liquidación y
qué identificador le ha asignado el Sistema de Pagos Online. Para ello hay que llamar al método outDetails
(https://{host_gates}/settlementapi/outDetails) con los parámetros
correspondientes.
Todos los parámetros se pasan a través del método POST (Content-Type: application/x-www-form-urlencoded). El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros. Los valores de los parámetros pasados deben estar codificados en UTF-8.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
NOTAS: Campos obligatorios ServiceID o BalancePointID.
Si se especifican ambos, se detendrá el procesamiento de la solicitud y se producirá un error http.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | ID de servicio de socio. |
1 | BalancePointID | SÍ | cadena{1,10} | Identificador del punto de liquidación. |
2 | MessageID | SÍ | cadena{32} | Introduzca el mismo identificador de mensaje que se envió anteriormente al solicitar una devolución o una retirada de saldo. |
3 | Método | SÍ | enum | La operación para la que se creó la transacción de liquidación: SALDO_PAGO - retirada del saldo REEMBOLSO_TRANSACCIÓN - devolución de transacciones PRODUCT_REFUND - devolución de productos |
s.f. | Hash | SÍ | cadena{1,128} | Se utiliza la clave compartida asignada al identificador de configuración utilizado (Servicio o Punto de Liquidación). El valor de la función hash para el mensaje calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<outDetails>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<Status>Status</status>
<remoteOutID>RemoteOutId</remoteOutId>
<hash>Hash</hash>
</outDetails>
o
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<outDetails>
<balancePointID>BalancePointID</balancePointID>
<messageID>MessageID</messageID>
<Status>Status</status>
<remoteOutID>RemoteOutId</remoteOutId>
<hash>Hash</hash>
</outDetails>
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | SÍ | cadena{1,10} | Identificador del servicio asociado. Derivado de una solicitud de método. |
1 | balancePointID | SÍ | cadena{1,10} | Identificador del punto de liquidación. Derivado de una solicitud de método. NOTAS: Se devolverá uno de los campos ServiceID o BalancePointID. |
2 | messageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio de 32 caracteres alfanuméricos latinos de longitud (por ejemplo, basado en UID). Derivado de la solicitud del método. |
3 | Estado | SÍ | enum | Estado de tramitación: NUEVO - A la espera en la cola de reprocesamiento. PROCESAMIENTO - Durante el proceso ERROR - Procesamiento fallido, por ejemplo, no hay fondos en el saldo HECHO - El tratamiento se ha realizado correctamente. |
4 | remoteOutID | NO | cadena{1,20} | Identificador alfanumérico de la operación de liquidación asignado por el Sistema de Pago en Línea. Complementado sólo para el estatus HECHO |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. |
El sistema permite mostrar al cliente un resumen de la transacción. Para ello
, el Socio puede construir enlaces desencadenantes con los parámetros pertinentes del método
. confirmación (https://{host_gates}/web/confirmación/pago).
Todos los parámetros se pasan utilizando el método GET. El protocolo es
sensible a mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros. Los
valores de los parámetros pasados deben estar codificados en UTF-8.
Al redirigir a un Cliente con los parámetros correctos, se mostrará un
resumen de la transacción (con contenido según su estado) o información
sobre su ausencia (si el Sistema no la encuentra).
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | ID de servicio de socio. |
2 | OrderID | SÍ | cadena{32} | El identificador de la transacción asignado en el Servicio de Interlocutores y comunicado al inicio de la transacción. |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
NOTAS: El servicio debe ser activado después de un acuerdo con el
mentor de negocios. Es posible cambiar el contenido de los mensajes o
ajustar el diseño (estos están sujetos a acuerdo en
forma de trabajo durante la integración).
Para todos los servicios, es posible consultar el estado de la transacción. Para
esto, se debe llamar al método transactionStatus
(https://{host_gateway}/webapi/transactionStatus) con los parámetros pertinentes.
Todos los parámetros se pasan a través del método POST (Content-Type: application/x-www-form-urlencoded). El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros. Los valores de los parámetros pasados deben estar codificados en UTF-8.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | ID de servicio de socio. |
2 | OrderID | SÍ | cadena{32} | El identificador de la transacción asignado en el Servicio de Interlocutores y comunicado al inicio de la transacción. |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Comprobación obligatoria del cumplimiento de la abreviatura calculada por parte del Servicio asociado. |
Para una consulta correcta, debe enviarse una cabecera HTTP definida
con el contenido adecuado junto con los parámetros pasados. El encabezado
adjunto se denominará BmHeader y tienen el siguiente valor
pay-bm, en su totalidad, debe ser el siguiente
'BmHeader: pay-bm'.. En el caso de un mensaje válido, se devuelve (en la misma sesión HTTP) un
texto en formato XML que contiene todas las transacciones
con el OrderID indicado junto con información básica sobre ellas.
TIP: Tal situación puede ocurrir, por ejemplo, cuando el Cliente cambia el Canal de Pago, llama al mismo inicio de transacción de nuevo desde el historial del navegador, etc. El sistema permite bloquear tales casos, pero la opción no se recomienda (no sería posible pagar la transacción abandonada).
IMPORTANTE Si la consulta es para un orderID que aparece en más de 50 transacciones de un servicio determinado, se devuelve una respuesta (XML) con
código de error 403.
Estructura de respuesta cuando se alcanza el límite de transacciones con el mismo orderId:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<transaction>
<reason>LIMIT_REQUESTED_TRANSACTIONS_WITH_THE_SAME_ORDER_ID_AND_SERVICE_ID_EXCEEDED</reason>
<description>Transaction limit 50 with the same order id {{ORDER_ID}} and service id {{SERVICE_ID}} exceeded. Requested count {{TRANSACTION_AMOUNT}}
</description>
</transaction>
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | SÍ | cadena{1,10} | El identificador del servicio asociado, asignado durante el registro del servicio, identifica de forma exclusiva el servicio asociado en el sistema de pago en línea. |
2 | orderID | SÍ | cadena{1,32} | El identificador de la transacción asignado en el Servicio de Interlocutores y comunicado al inicio de la transacción. |
3 | remoteID | SÍ | cadena{1,20} | Identificador alfanumérico de la transacción asignado por el Sistema de Pago en Línea. |
5 | importe | SÍ | importe | El importe de la transacción utiliza un punto como separador decimal - '.' Formato: 0,00; longitud máxima: 14 dígitos antes del punto y 2 después del punto. |
6 | divisa | SÍ | cadena{1,3} | Moneda de la transacción. |
7 | gatewayID | NO | cadena{1,5} | Identificador del Canal de Pago a través del cual el Cliente liquidó el pago. |
8 | paymentDate | SÍ | cadena{14} | La hora en que se autorizó la transacción, transmitida en el formato AAAAMMDDhhmmss. (hora CET) |
9 | paymentStatus | SÍ | enum | Estado de autorización de la transacción, toma valores (descripción de los cambios de estado más adelante): PENDIENTE - transacción iniciada. ÉXITO - correcta autorización de la transacción, el Servicio asociado recibirá los fondos para la transacción - se pueden expedir bienes/servicios. FALLO - la transacción no se ha completado correctamente. |
10 | paymentStatusDetails | NO | cadena{64} | Estado detallado de la transacción, el valor puede ser ignorado por el Servicio Asociado. TIP: Descripción detallada en parte Estados detallados de las transacciones. |
s.f. | hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
NOTAS: Dado que el método puede devolver varias transacciones, las transacciones sucesivas se descargan en el Hash
(según el orden de aparición de las transacciones
en la respuesta). Dentro de una transacción determinada, se aplica el
orden según el número que aparece junto al campo (excluido el parámetro ServiceID,
nivel superior).
Ejemplo de cadena de función hash
Hash = funkcja(<serviceID> + „|” +
<orderID1> + „|” + <remoteID1> + „|” + <amount1> + „|” + <currency1> + „|” + <gatewayID1> + „|” + <paymentDate1> + „|” + <paymentStatus1> + „|” + <paymentStatusDetails1> + „|” +
<orderID2> + „|” + <remoteID2> + „|” + <amount2> + „|” + <currency2> + „|” + <gatewayID2> + „|” + <paymentDate2> + „|” + <paymentStatus2> + „|” + <paymentStatusDetails2> + …
Condiciones | Importancia de | Mensaje propuesto al cliente |
---|---|---|
Exactamente una transacción con paymentstatus=SUCCESS | Transacción pagada correctamente. | El sistema ha registrado correctamente el pago. |
Más de una transacción con paymentstatus=SUCCESS | Múltiples transacciones pagadas. | El sistema ha registrado más de un pago. |
Hay un RemoteID con paymentstatus=PENDING y no hay ninguno con paymentstatus=SUCCESS | La transacción está pendiente de pago. | El sistema está pendiente de pago. |
Hay al menos una transacción pero no hay otro estado que paymentstatus=FAILURE | Transacción cancelada. | El sistema ha registrado una cancelación de pago o una falta de autorización de pago. |
Sin transacción u otro error | No encontrar un acuerdo. | No se ha encontrado la transacción. |
Para todos los servicios, es posible cancelar una transacción iniciada pero
no pagada llamando al método transactionCancel
(https://{host_gateway}/webapi/transactionCancel) con los parámetros
correspondientes. Todos los parámetros se pasan mediante el método POST
(Content-Type: application/x-www-form-urlencoded).
El protocolo distingue entre mayúsculas y minúsculas tanto en los nombres como en los valores de los parámetros
. Los valores de los parámetros pasados deben codificarse en
UTF-8.
IMPORTANTE El orden de los atributos de la enumeración Hash debe seguir su numeración.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | ServiceID | SÍ | cadena{1,10} | ID de servicio de socio. |
2 | MessageID | SÍ | cadena{32} | Identificador de mensaje pseudoaleatorio con una longitud de 32 caracteres alfanuméricos latinos (por ejemplo, basado en UID). El valor del campo debe ser único para el servicio asociado. |
3 | RemoteID | NO | cadena{1,20} | Identificador alfanumérico de la transacción asignado por el Sistema y transmitido al Socio en el mensaje ITN de la transacción entrante. Su indicación dará lugar a la cancelación de una sola transacción de las indicadas. RemoteIDsi el pago está pendiente (estado PENDIENTE). |
4 | OrderID | NO | cadena{32} | El identificador de transacción asignado en el Servicio Partner y comunicado al inicio de la transacción. El identificador de transacción que se le comunica al inicio de la transacción. RemoteID) cancelará todas las transacciones pendientes (estado PENDIENTE) del indicado OrderID (y ServiceID). NOTAS: Campos obligatorios OrderID o RemoteID. Si se especifican ambos, se detendrá el procesamiento de la solicitud y se producirá un error http. |
s.f. | Hash | SÍ | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. |
Para una consulta correcta, debe enviarse una cabecera HTTP definida
con el contenido adecuado junto con los parámetros pasados. El encabezado
adjunto se denominará BmHeader y tienen el siguiente valor
pay-bm. En su totalidad, debe presentarse de la siguiente manera:
'BmHeader: pay-bm'
En el caso de un mensaje válido, se devuelve (en la misma sesión HTTP) un
texto en formato XML que contiene una confirmación de que la operación se ha realizado o una
descripción del error.
Estructura de confirmación (XML)
<?xml version="1.0" encoding="UTF-8"?>
<transaction>
<serviceID>ServiceID</serviceID>
<messageID>MessageID</messageID>
<confirmation>ConfStatus</confirmation>
<reason>Reason</reason>
<hash>Hash</hash>
</transaction>
IMPORTANTE El orden de los atributos para la enumeración Hash debe seguir su numeración
.
Orden hash | nombre | obligatorio | tipo | descripción |
---|---|---|---|---|
1 | serviceID | NO | cadena{1,32} | Identificador del servicio asociado. Derivado de una solicitud de método. Obligatorio para la confirmación=CONFIRMED |
2 | messageID | NO | cadena{1,20} | Identificador de mensaje pseudoaleatorio de 32 caracteres alfanuméricos latinos de longitud (por ejemplo, basado en UID). Derivado de la solicitud del método. Obligatorio para la confirmación=CONFIRMED |
3 | confirmación | SÍ | cadena{1,100} | Estado del acuse de recibo del pedido. Puede tomar dos valores: - CONFIRMADO - la operación se ha realizado correctamente - NOTCONFIRMED - operación fallida |
4 | motivo | NO | cadena{1,1000} | Explicación de los detalles de la tramitación de la solicitud. |
s.f. | hash | NO | cadena{1,128} | Valor de la función de compendio de mensajes calculado como se describe en la sección Seguridad de las transacciones. Verificación obligatoria del cumplimiento de la abreviatura calculada por el Servicio. Obligatorio para la confirmación=CONFIRMED |
Si el mensaje es sintácticamente correcto, el Sistema devolverá uno de los pares
que aparecen a continuación describiendo el resultado del procesamiento. Además de su interpretación,
se recomienda para comprobar el estado de la transacción (método
transactionStatus).
Tenga en cuenta que una vez que se ha cancelado con éxito al menos una transacción
, no es posible iniciar una nueva ni continuar
una transacción iniciada previamente con el mismo OrderID.
cofirmación | motivo | detalles |
---|---|---|
CONFIRMADO | CANCELADO_COMPLETAMENTE | Para el OrderID indicado: todas las transacciones de depósito pendientes han sido canceladas. Para el RemoteID indicado: la transacción ha sido cancelada. |
CONFIRMADO | CANCELADO_PARCIALMENTE | Para el OrderID indicado: se canceló al menos una transacción, pero hubo transacciones que no se pudieron cancelar (por ejemplo, ya estaban pagadas). Para el RemoteID indicado: tal respuesta no se produce. |
NO CONFIRMADO | ESTADO_PAGO_INCORRECTO | Se encontró al menos una transacción indicada, pero no se pudo cancelar ninguna (por ejemplo, no había ninguna transacción pendiente). |
NO CONFIRMADO | TRANSACCIÓN_NO_ENCONTRADA | No se ha encontrado la transacción indicada. |
NO CONFIRMADO | OTRO_ERROR | Se ha producido otro error al procesar la solicitud. |
Todos los mensajes de error serán devueltos como un documento XML,
que contiene el código de error, su nombre y una descripción. Debido a la gran
variabilidad de posibles errores, no se mantiene una documentación completa de
los errores.
TIP: Campo descripción, describe con precisión cada uno de los errores
(campos statusCode i nombre puede ignorarse).
Ejemplo de error (XML)
<?xml version="1.0" encoding="UTF-8"?>
<error>
<statusCode>55</statusCode>
<name>BALANCE_ERROR</name>
<description>Wrong services balance! Should be 100 but is 40</description>
</error>
Esta sección presenta modelos, escenarios de eventos y el flujo de
información.
A continuación encontrará diagramas de secuencia para los 2 modelos de integración.
El modelo más sencillo, en el que la elección de los canales de pago está en las páginas de Autopago (paywall).
Se caracteriza por la presentación de canales de pago en el lado del Comerciante. Para ello, debe obtenerse una lista de canales con descripciones del servicio
. gatewayList/v3
y obtener una lista de las normas de procedimiento necesarias para cada canal de pago (/datoslegales
).
El resto del proceso es el mismo que en el modelo Paywall.
La estructura de interlocutores consta de al menos 1 servicio (identificado
por un identificador ServiceID) y cualquier número de puntos
asentamientos (identificados por un identificador idBalancePoint).
Los servicios suelen ser las fuentes de enlaces de pago (sitio web, aplicación móvil, correos electrónicos, etc.). Los servicios también distribuyen tráfico
relativo a diferentes sectores (pagos de facturas, compras de comercio electrónico
etc.). Dado que la transacción se identifica por un par de
OrderID i ServiceIDse puede decir que "el servicio corresponde
al nivel de transacción".
Los puntos de liquidación se definen si es necesario distinguir
de algún modo entre los pagos componentes (por ejemplo, indicándolos en
informes o liquidaciones independientes). Dado que el producto de transacción
se identifica mediante su punto de liquidación
asociado (idBalancePoint), puede decirse que "el punto de liquidación
corresponde al nivel de producto".
La cesta de productos (y, por tanto, también los puntos de facturación) puede no estar presente en la estructura
que describe al Socio. La razón para añadir
puntos de facturación a la estructura influye en la decisión sobre el modelo de facturación:
la necesidad de distinguir los componentes constitutivos de un depósito en la lista de operaciones (en
los informes) no implica necesariamente la liquidación
separada de cada producto o punto de liquidación; en esta situación, normalmente
los modelos de liquidación a nivel de servicio de
(por lotes o después de cada depósito) son suficientes.
la necesidad de separar las liquidaciones componentes de un depósito, resulta en el uso de un modelo de liquidación a nivel del punto de liquidación (lote o después de cada depósito).
A continuación se ilustra una estructura de ejemplo (sin indicar un modelo de liquidación
específico)
Modalidades de transacción y liquidación
Las liquidaciones sumarias tienen lugar el siguiente día laborable (D+1).
Liquidación después de cada pago se puede realizar inmediatamente después de la recepción del pago del Cliente a los datos de la transacción indicados en los parámetros del Enlace de Pago (opciones: Cuenta del destinatario, Título de la transferencia de liquidación, Nombre del destinatario de la transferencia de liquidación).
Las liquidaciones sumarias tienen lugar el siguiente día laborable (D+1).
Liquidación después de cada pago se puede realizar inmediatamente después de la recepción del pago del Cliente a los datos del producto indicado en los parámetros del Enlace de Pago (opciones: Cuenta del destinatario, Título de la transferencia de liquidación, Nombre del destinatario de la transferencia de liquidación).
Las liquidaciones pueden ser ordenadas por el Socio llamando al método: transactionSettlement.