Skip to content
Jean A. Perez edited this page Dec 17, 2019 · 7 revisions

Webservices AZUL permite procesar transacciones con tarjetas VISA, MasterCard, American Express, Discover y Diners. El comercio afiliado puede desarrollar una aplicación en cualquier lenguaje de programación que soporte llamadas HTTP. Los sistemas pueden ser integrados a la plataforma de pagos de AZUL a través del consumo de los Webservices. Webservices están publicados en formato JSON, HTTPS Post Form y SOAP.

Nota: Para brindar la seguridad necesaria en la captura y envío de los datos hacia AZUL, el comercio deberá tener un tipo de autentificación para el formulario de tarjetas e implementar la conexión TLS 1.2.


Antes de empezar el proceso de integración/implementación, se debe establecer una comunicación segura entre el site del afiliado y el site de la plataforma de pagos de AZUL, para lo cual debe de elegirse entre:

  • VPN Site-to-Site.
  • Autenticación Mutua con Certificados Digitales emitidos localmente por AZUL.

Esta configuración debe realizarse tanto para el ambiente de pruebas como para el ambiente de producción.

Autenticación mutua con certificados digitales

Para la implementación de una comunicación segura con autenticación mutua, el afiliado debe presentar un Client Certificate emitido por AZUL (no tiene costo).

Para obtener el certificado digital primero debes generar un archivo CSR (Certificate Signing Request) y su llave (Key) de 4096 bits:

$ openssl req -new -newkey rsa:4096 -nodes -keyout your_domain.key -out your_domain.csr

Envía este archivo CSR a tu representante de AZUL, este te enviará el certificado digital que usarás para hacer requerimientos HTTP a Webservices junto con el archivo .key que creaste.

Las especificaciones con las cuales debe ser remitido el archivo CSR correspondiente son las siguientes:

Producción

Campo Valor
Common Name* URL del sitio web
Organization Name** Servicios Digitales Popular
Organization Unit Name** Produccion
Country Name** DO
State or Province** Santo Domingo
Locality Name** Distrito Nacional
Level Encryption** 4096 bits

Pruebas

Campo Valor
Common Name* URL del sitio web
Organization Name** Servicios Digitales Popular
Organization Unit Name** Desarrollo
Country Name** DO
State or Province** Santo Domingo
Locality Name** Distrito Nacional
Level Encryption** 4096 bits

* Debes indicar la URL de tu negocio (según el ambiente que se trate).

** Los archivos CSR deben llegar con estas informaciones, los valores son fijos sin importar el país o provincia en que se encuentren.

Notas Importantes

  • Los datos de pruebas y de producción nunca van a ser similares
  • Los factores de autenticación de prueba y producción nunca van a ser los mismos
  • Las URL de pruebas y Ias de producción no son las mismas

Integración

Este documento solo usa la integración con JSON. Para más información, consulta el PDF original de AZUL.

Pruebas Producción Alternativa
https://pruebas.azul.com.do/webservices/JSON/Default.aspx https://pagos.azul.com.do/webservices/JSON/Default.aspx https://contpagos.azul.com.do/webservices/JSON/Default.aspx

Debes aplicar el header Content-Type: application/json al momento de hacer el requerimiento.

Nota: El desarrollo debe estar preparado para intentar por la URI alternativa en caso de fallar la URL principal.

Autentificación

Cada requerimiento requiere de dos valores de autenticación Auth1 y Auth2, los cuales serán entregados por AZUL durante el proceso de afiliación al servicio, el funcionamiento es similar al de un usuario/password. Debes incluir estos valores en los headers de la siguiente manera:

POST /webservices/JSON/Default.aspx
Content-Type: application/json
Auth1: usuario
Auth2: password

Los factores de autentificación para el ambiente de pruebas son diferentes a los que se les proveerá en el ambiente de producción.

Invocación

Ejemplo de un requerimiento (Sale):

curl -X POST \
  https://pruebas.azul.com.do/WebServices/JSON/Default.aspx \
  -H 'Content-Type: application/json' \
  -H 'Auth1: test' \
  -H 'Auth2: test' \
  --cert '/absolute/path/to/azul.crt' \
  --key '/absolute/path/to/azul.key' \
  -d '{
    "Channel": "EC",
    "Store": "1234567890",
    "CardNumber": {{ValidCardNumber}},
    "Expiration": {{ValidExpiration}},
    "CVC": {{ValidCVC}},
    "Amount": 650730,
    "Itbis": 99264,
    "PosInputMode": "E-Commerce",
    "TrxType": "Sale",
    "CurrencyPosCode": "$",
    "Payments": "1",
    "Plan": "0",
    "AcquirerRefData": "1",
    "RRN": null,
    "CustomerServicePhone": "809-111-2222",
    "OrderNumber": "",
    "ECommerceUrl": "yourdomain.com",
    "CustomOrderId": 1,
    "DataVaultToken": "",
    "ForceNo3DS": "1",
    "SaveToDataVault": "0"
}'

Campos de requerimiento (referencia)

Nombre Descripción
Channel Canal de pago. Este valor es proporcionado por AZUL junto a los datos de acceso a cada ambiente
Store Identificador único del comercio (MID), proporcionado por AZUL
CardNumber Número de tarieta. La longitud del campo se determina por la tarjeta, no se debe rellenar con ceros (O), espaclos, ni caracteres especiales
Expiration Fecha expiración/vencimiento de la tarieta Formato YYYYMM Ej: 201502
CVC Código de seguridad de la tarieta (CVV2 0 CVC).
PosInputMode Modo de ingreso. Este valor es proporcionado por AZUL, junto a los datos de acceso a cada ambiente
TrxType Sale | Refund | Hold | CREATE | DELETE
Amount Monto total de la transacción (Impuestos incluidos.) Se envia sin coma ni punto. los dos últimos digitos representan los decimales. Ei. 1000 equivale a 10.00 Ej: 1748321 equivale a 17,483.21
Itbis Valor del ITBIS. Igual formato que el campo Amount Si Ia transacción o el negocio est6n exentos, se envia en cero o simplemente no incluir en la solicitud.
CurrencyPosCode Moneda de Ia transacción Cada MID o tienda transacciona con una sola moneda. Este valor es proporcionado por AZUL, junto a los datos de acceso a cada ambiente
Payments Valor fijo: 1
Plan Valor fijo: 0
AcquirerRefData Valor fijo: 1
CustomerServicePhone Número de servicio para atención telefónica del establecimiento. Ej: 8095442985
OrderNumber Número de orden asociado a la transacción. Puede viaiar nulo, pero siempre debe de estar
EcommerceURL Dirección web del afiliado.
CustomOrderId Numero Identificador dada por el afiliado a la transacción
AltMerchantName Campo que permite al Comercio colocar un nombre mds descriptivo para que el tarietahabiente pueda identificarle en su estado de cuenta. Se sugiere siempre colocar su nombre comercial adecuadamente a fin de evitar disputas. Si 10 desea, puede agregar a su nombre algún indicador único de orden
DataVaultToken Valor del token generado por SDP en caso de que se desee realizar una transacción con dicho token. Si se manda el valor de esto, no se deben enviar los valores de CardNumber, Expiration. El envio de CVC si es ecommerce puede ser o no mandatorio depende de 10 conversado con Negoclos SDP. Si es MOTO la transacción, no se deberia enviar CVC.
SaveToDataVault Valores posibles 1 = si, 2 = no. Si se manda este valor en 1, SDP le devolvera el token generado en el campo DataVaultToken
ForceNo3DS Valores posibles 0 =no, 1 = Si. Si se manda el valor en 0, el servicio 3D Secure hace el Challenge. Si envia el valor 1, no se realiza el Challenge.

Campos de respuesta (referencia)

Nombre Descripción
AuthorizationCode Cödigo de autorizaciön generado por el centroa utorizador para la transacciön. Sölo presente si la transacciön fue aprobada. ISOCode=ISO8583 y ResponseCode=0
CustomOrderID Numero Identificador dada por el afiliado a la transacciön. Si no fue provisto en la transacciön, este campo viaia en blanco
DateTime Fecha y hora de la transacciön. Formato YYYYMMDDHHMMSS
ErrorDescription Descripciön del error. Valor sölo presente si la transacciön produio un error. En caso de no presentar error ese campo viaja en blanco
ISOCode Código ISO-8583 recibido de respuesta.
LotNumber Nümero de lote en que se registrö la transacciön
RRN Nümero de referencia (Reference Referral Number).
AzulOrderld # de orden SDP. Puede ser usado en vez del RNN para generar una devoluciön. Importante dar prioridad a este valor sobre el RNN.
ResponseCode Cödigo de respuesta. Puede contener uno de los siguientes valores: Is08583 = la transacciön fue procesada. Se debe revisar el campo ISOCode para ver la respuesta de la transacciön Error = La transacciön no fue procesada.
ReponseMessage Mensaie de respuesta ISO-8583. Valor sölo presente si el ResponseCode = ISO8583
Ticket Nümero del ticket correspondiente a la transacciön
CardNumber Tarjeta usada para la transacciön, enmascarada (XXXXXX******XXXX)

Tipos de requerimiento (referencia)

Los tipos de requerimientos que puedes hacer en Azul Webservices son:

  • Sale
  • Refund
  • Hold
  • Post
  • Verify
  • Create token
  • Delete token
  • 3DS Challenge

Consulta esta documentación para conocer cada uno.