API Referencia
undefined

Webpay Rest

Ambientes y Credenciales

La API REST de Webpay está protegida para garantizar que solamente comercios autorizados por Transbank hagan uso de las operaciones disponibles. La seguridad esta implementada mediante los siguientes mecanismos:

  • Canal seguro a través de TLSv1.2 para la comunicación del cliente con Webpay.
  • Autenticación y autorización mediante el intercambio de headers Tbk-Api-Key-Id y Tbk-Api-Key-Secret.

Ambiente de Producción

Las URLs de endpoints de producción están alojados dentro de https://webpay3g.transbank.cl/.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
Host: https://webpay3g.transbank.cl

Ambiente de Integración

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
Host: https://webpay3gint.transbank.cl

Las URLs de endpoints de integración están alojados dentro de https://webpay3gint.transbank.cl/.

Consulta la documentación para conocer las tarjetas de prueba que funcionan en el ambiente de integración.

Credenciales del Comercio

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
Tbk-Api-Key-Id: 597055555532
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

Todas las peticiones que hagas deben incluir el código de comercio y la llave secreta entregada por Transbank, actuando ambas como las credenciales que autorizan distintas operaciones.

En el repositorio GitHub transbank-webpay-credenciales podrás encontrar códigos de comercios y llaves secretas para probar en integración aunque aún no tengas tu propio código de comercio. Alternativamente puedes revisar la siguiente tabla con credenciales de integración para hacer pruebas.

Producto Código de Comercio Secreto
Webpay Plus 597055555532 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Webpay Plus Mall Próximamente... Próximamente...
Webpay Oneclick Próximamente... Próximamente...
Webpay Oneclick Mall Próximamente... Próximamente...
Webpay Transacción Completa 597055555530 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Webpay Transacción Completa Diferida 597055555531 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C

Los SDKs ya incluyen esos códigos de comercio y llaves secretas que funcionan en el ambiente de integración, por lo que puedes obtener rápidamente una configuración lista para hacer tus primeras pruebas en dicho ambiente:

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible

Webpay Plus Normal

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible

Una transacción de autorización normal (o transacción normal), corresponde a una solicitud de autorización financiera de un pago con tarjetas de crédito o débito, en donde quién realiza el pago ingresa al sitio del comercio, selecciona productos o servicio, y el ingreso asociado a los datos de la tarjeta de crédito o débito lo realiza en forma segura en Webpay.

Flujo en caso de éxito

De cara al tarjetahabiente, el flujo de páginas para la transacción es el siguiente:

Flujo de páginas Webpay Plus Normal

Desde el punto de vista técnico, la secuencia es la siguiente:

Diagrama de secuencia Webpay Plus Normal

  1. Una vez seleccionado los bienes o servicios, tarjetahabiente decide pagar a través de Webpay.
  2. El comercio inicia una transacción en Webpay.
  3. Webpay procesa el requerimiento y entrega como resultado de la operación el token de la transacción y URL de redireccionamiento a la cual se deberá redirigir al tarjetahabiente.
  4. Comercio redirecciona al tarjetahabiente hacia Webpay, con el token de la transacción a la URL indicada en punto 3. La redirección se realiza enviando por método POST el token en variable token_ws.
  5. El navegador Web del tarjetahabiente realiza una petición HTTPS a Webpay, en base al redireccionamiento generado por el comercio en el punto 4.
  6. Webpay responde al requerimiento desplegando el formulario de pago de Webpay. Desde este punto la comunicación es entre Webpay y el tarjetahabiente, sin interferir el comercio. El formulario de pago de Webpay despliega, entre otras cosas, el monto de la transacción, información del comercio como nombre y logotipo, las opciones de pago a través de crédito o débito.
  7. Tarjetahabiente ingresa los datos de la tarjeta, hace clic en pagar en formulario Webpay.
  8. Webpay procesa la solicitud de autorización (primero autenticación bancaria y luego la autorización de la transacción).
  9. Una vez resuelta la autorización, Webpay retorna el control al comercio, realizando un redireccionamiento HTTPS hacia la página de transición del comercio, en donde se envía por método POST el token de la transacción en la variable token_ws. El comercio debe implementar la recepción de esta variable.
  10. El navegador Web del tarjetahabiente realiza una petición HTTPS al sitio del comercio, en base a la redirección generada por Webpay en el punto 9.
  11. El sitio del comercio recibe la variable token_ws e invoca el segundo método Web para confirmar y obtener el resultado de la autorización. El resultado de la autorización podrá ser consultado posteriormente con la variable anteriormente mencionada.
  12. Comercio recibe el resultado de la confirmación.
  1. Sitio del comercio despliega voucher con los datos de la transacción.

Flujo si usuario aborta el pago

Diagrama de secuencia si usuario aborta el pago

Si el tarjetahabiente anula la transacción en el formulario de pago de Webpay, el flujo cambia y los pasos son los siguientes:

  1. Una vez seleccionado los bienes o servicios, tarjetahabiente decide pagar a través de Webpay.
  2. El comercio inicia una transacción en Webpay.
  3. Webpay procesa el requerimiento y entrega como resultado de la operación el token de la transacción y URL de redireccionamiento a la cual se deberá redirigir al tarjetahabiente.
  4. Comercio redirecciona al tarjetahabiente hacia Webpay, con el token de la transacción a la URL indicada en punto 3. La redirección se realiza enviando por método POST el token en variable token_ws.
  5. El navegador Web del tarjetahabiente realiza una petición HTTPS a Webpay, en base al redireccionamiento generado por el comercio en el punto 4.
  6. Webpay responde al requerimiento desplegando el formulario de pago de Webpay. Desde este punto la comunicación es entre Webpay y el tarjetahabiente, sin interferir el comercio. El formulario de pago de Webpay despliega, entre otras cosas, el monto de la transacción, información del comercio como nombre y logotipo, las opciones de pago a través de crédito o débito.
  7. Tarjetahabiente hace clic en “anular”, en formulario Webpay.
  8. Webpay retorna el control al comercio, realizando un redireccionamiento HTTPS hacia la página de retorno del comercio, en donde se envía por método POST el token de la transacción en la variable TBK_TOKEN además de las variables TBK_ORDEN_COMPRA y TBK_ID_SESION.
  1. El comercio con la variable TBK_TOKEN debe invocar el método de confirmación de transacción para obtener el resultado de la autorización. En este caso debe obtener una excepción, pues el pago fue abortado.
  2. El comercio debe informar al tarjetahabiente que su pago no se completó.

Crear una transacción Webpay Plus Normal

Para crear una transacción basta llamar al método Transaction.create()

Transaction.create()

Permite inicializar una transacción en Webpay. Como respuesta a la invocación se genera un token que representa en forma única una transacción.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/webpay/v1.0/transactions

Tbk-Api-Key-Id: 597055555532
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

{
 "buy_order": "ordenCompra12345678",
 "session_id": "sesion1234557545",
 "amount": 10000,
 "return_url": "http://www.comercio.cl/webpay/retorno"
}

Parámetros

Nombre
tipo
Descripción
buyOrder
String
Orden de compra de la tienda. Este número debe ser único para cada transacción. Largo máximo: 26. La orden de compra puede tener: Números, letras, mayúsculas y minúsculas, y los signos |_=&%.,~:/?[[email protected]()>-
sessionId
String
(Opcional) Identificador de sesión, uso interno de comercio, este valor es devuelto al final de la transacción. Largo máximo: 61
amount
Decimal
Monto de la transacción. Máximo 2 decimales para USD. Largo máximo: 17
returnUrl
String
URL del comercio, a la cual Webpay redireccionará posterior al proceso de autorización. Largo máximo: 256

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
 "token": "e9d555262db0f989e49d724b4db0b0af367cc415cde41f500a776550fc5fddd3",
 "url": "https://webpay3gint.transbank.cl/webpayserver/initTransaction"
}
Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.
url
String
URL de formulario de pago Webpay. Largo máximo: 255.

Confirmar una transacción Webpay Plus Normal

Cuando el comercio retoma el control mediante return_url debes confirmar y obtener el resultado de una transacción usando el método Transaction.commit().

Transaction.commit()

Permite confirmar y obtener el resultado de la transacción una vez que Webpay ha resuelto su autorización financiera.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
PUT /rswebpaytransaction/api/webpay/v1.0/transactions/{token}
Tbk-Api-Key-Id: 597055555532
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

Parámetros

Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "vci": "TSY",
  "amount": 10000,
  "status": "AUTHORIZED",
  "buy_order": "ordenCompra12345678",
  "session_id": "sesion1234557545",
  "card_detail": {
      "card_number": "6623"
  },
  "accounting_date": "0522",
  "transaction_date": "2019-05-22T16:41:21.063Z",
  "authorization_code": "1213",
  "payment_type_code": "VN",
  "response_code": 0,
  "installments_number": 0
}
Nombre
tipo
Descripción
VCI
String
Resultado de la autenticación del tarjetahabiente. Puede tomar el valor TSY (Autenticación exitosa), TSN (Autenticación fallida), TO (Tiempo máximo excedido para autenticación), ABO (Autenticación abortada por tarjetahabiente), U3 (Error interno en la autenticación), NP (No Participa, probablemente por ser una tarjeta extranjera que no participa en el programa 3DSecure), ACS2 (Autenticación fallida extranjera). Puede ser vacío si la transacción no se autenticó. Largo máximo: 3. Este campo es información adicional suplementaria al responseCode pero el comercio no debe validar este campo. Porque constantemente se agregan nuevos mecanismos de autenticación que se traducen en nuevos valores para este campo que no están necesariamente documentados. (En el caso de tarjetas internacionales que no proveen 3D-Secure, la decisión del comercio de aceptarlas o no se realiza a nivel de configuración del comercio en Transbank y debe ser conversada con el ejecutivo del comercio)
amount
Decimal
Formato número entero para transacciones en peso y decimal para transacciones en dólares. Largo máximo: 17
status
String
Estado de la transacción (AUTHORIZED, FAILED). Largo máximo: 64
buyOrder
String
Orden de compra de la tienda indicado en Transaction.create(). Largo máximo: 26
sessionId
String
Identificador de sesión, el mismo enviado originalmente por el comercio en Transaction.create(). Largo máximo: 61.
cardDetails
carddetails
Objeto que representa los datos de la tarjeta de crédito del tarjeta habiente.
cardDetails.cardNumber
String
4 últimos números de la tarjeta de crédito del tarjetahabiente. Solo para comercios autorizados por Transbank se envía el número completo. Largo máximo: 19.
accountingDate
String
Fecha de la autorización. Largo: 4, formato MMDD
transactionDate
String
Fecha y hora de la autorización. Largo: 6, formato: MMDDHHmm
authorizationCode
String
Código de autorización de la transacción Largo máximo: 6
paymentTypeCode
String
Tipo de pago de la transacción.
VD = Venta Débito.
VN = Venta Normal.
VC = Venta en cuotas.
SI = 3 cuotas sin interés.
S2 = 2 cuotas sin interés.
NC = N Cuotas sin interés
VP = Venta Prepago.
responseCode
String
Código de respuesta de la autorización. Valores posibles:
0 = Transacción aprobada.
-1 = Rechazo de transacción.
-2 = Transacción debe reintentarse.
-3 = Error en transacción.
-4 = Rechazo de transacción.
-5 = Rechazo por error de tasa.
-6 = Excede cupo máximo mensual.
-7 = Excede límite diario por transacción.
-8 = Rubro no autorizado.
installmentsAmount
Number
Monto de las cuotas. Largo máximo: 17
installmentsNumber
Number
Cantidad de cuotas. Largo máximo: 2
balance
Number
Monto restante para un detalle anulado. Largo máximo: 17

Obtener estado de una transacción Webpay Plus Normal

Esta operación permite obtener el estado de la transacción en cualquier momento. En condiciones normales es probable que no se requiera ejecutar, pero en caso de ocurrir un error inesperado permite conocer el estado y tomar las acciones que correspondan.

Transaction.status()

Obtiene resultado de transacción a partir de un token.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
GET /rswebpaytransaction/api/webpay/v1.0/transactions/{token}
Tbk-Api-Key-Id: 597055555532
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

Parámetros

Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "vci": "TSY",
  "amount": 10000,
  "status": "AUTHORIZED",
  "buy_order": "ordenCompra12345678",
  "session_id": "sesion1234557545",
  "card_detail": {
      "card_number": "6623"
  },
  "accounting_date": "0522",
  "transaction_date": "2019-05-22T16:41:21.063Z",
  "authorization_code": "1213",
  "payment_type_code": "VN",
  "response_code": 0,
  "installments_number": 0
}
Nombre
tipo
Descripción
VCI
String
Resultado de la autenticación del tarjetahabiente. Puede tomar el valor TSY (Autenticación exitosa), TSN (Autenticación fallida), TO (Tiempo máximo excedido para autenticación), ABO (Autenticación abortada por tarjetahabiente), U3 (Error interno en la autenticación), NP (No Participa, probablemente por ser una tarjeta extranjera que no participa en el programa 3DSecure), ACS2 (Autenticación fallida extranjera). Puede ser vacío si la transacción no se autenticó. Largo máximo: 3. Este campo es información adicional suplementaria al responseCode pero el comercio no debe validar este campo. Porque constantemente se agregan nuevos mecanismos de autenticación que se traducen en nuevos valores para este campo que no están necesariamente documentados. (En el caso de tarjetas internacionales que no proveen 3D-Secure, la decisión del comercio de aceptarlas o no se realiza a nivel de configuración del comercio en Transbank y debe ser conversada con el ejecutivo del comercio)
amount
Formato número entero para transacciones en peso y decimal para transacciones en dólares.
Monto de la transacción. Largo máximo: 17
status
String
Estado de la transacción (AUTHORIZED, FAILED). Largo máximo: 64
buyOrder
String
Orden de compra de la tienda indicado en Transaction.create(). Largo máximo: 26
sessionId
String
Identificador de sesión, el mismo enviado originalmente por el comercio en Transaction.create(). Largo máximo: 61.
cardDetails
carddetails
Objeto que representa los datos de la tarjeta de crédito del tarjeta habiente.
cardDetails.cardNumber
String
4 últimos números de la tarjeta de crédito del tarjetahabiente. Solo para comercios autorizados por Transbank se envía el número completo. Largo máximo: 19.
accountingDate
String
Fecha de la autorización. Largo: 4, formato MMDD
transactionDate
String
Fecha y hora de la autorización. Largo: 6, formato: MMDDHHmm
authorizationCode
String
Código de autorización de la transacción Largo máximo: 6
paymentTypeCode
String
Tipo de pago de la transacción.
VD = Venta Débito.
VN = Venta Normal.
VC = Venta en cuotas.
SI = 3 cuotas sin interés.
S2 = 2 cuotas sin interés.
NC = N Cuotas sin interés
VP = Venta Prepago.
responseCode
String
Código de respuesta de la autorización. Valores posibles:
0 = Transacción aprobada.
-1 = Rechazo de transacción.
-2 = Transacción debe reintentarse.
-3 = Error en transacción.
-4 = Rechazo de transacción.
-5 = Rechazo por error de tasa.
-6 = Excede cupo máximo mensual.
-7 = Excede límite diario por transacción.
-8 = Rubro no autorizado.
installmentsAmount
Number
Monto de las cuotas. Largo máximo: 17
installmentsNumber
Number
Cantidad de cuotas. Largo máximo: 2
balance
Number
Monto restante para un detalle anulado. Largo máximo: 17

Webpay Plus Mall

Una transacción Mall Normal corresponde a una solicitud de autorización financiera de un conjunto de pagos con tarjetas de crédito o débito, en donde quién realiza el pago ingresa al sitio del comercio, selecciona productos o servicios, y el ingreso asociado a los datos de la tarjeta de crédito o débito lo realiza una única vez en forma segura en Webpay para el conjunto de pagos. Cada pago tendrá su propio resultado, autorizado o rechazado.

Desagregación de un pago Webpay Mall

El Mall Webpay agrupa múltiples tiendas, son estas últimas las que pueden generar transacciones. Tanto el mall como las tiendas asociadas son identificadas a través de un número denominado código de comercio.

Flujo Webpay Plus Mall

El flujo de Webpay Plus Mall es en general el mismo que el de Webpay Plus Normal tanto de cara al tarjeta habiente como de cara al integrador.

Las diferencias son:

  • Se debe usar un código de comercio configurado para modalidad Mall en Transbank, el cual debe ser indicado al iniciar la transacción.
  • Se pueden indicar múltiples transacciones, cada una asociada a un código de comercio de tienda (que debe estar configurada en Transbank como perteneciente al mall).
  • Se debe verificar por separado el resultado de cada una de esas transacciones individualmente, pues es posible que el emisor de la tarjeta autorice algunas y otras no.

Crear una transacción Webpay Plus Mall

Para crear una transacción basta llamar al método Transaction.create()

Transaction.create()

Permite inicializar una transacción en Webpay. Como respuesta a la invocación se genera un token que representa en forma única una transacción.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/webpay/v1.0/transactions

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
 "buy_order": "ordenCompra12345678",
 "session_id": "sesion1234557545",
 "return_url": "http://www.comercio.cl/webpay/retorno",
 "details": [
     {
         "amount": 10000,
         "commerce_code": 597026008905,
         "buy_order": "ordenCompraDetalle1234"
     }
 ]
}

Parámetros

Nombre
tipo
Descripción
buyOrder
String
Es el código único de la orden de compra generada por el comercio mall.
sessionId
String
Identificador de sesión, uso interno de comercio, este valor es devuelto al final de la transacción. Largo máximo: 61
returnURL
String
URL del comercio, a la cual Webpay redireccionará posterior al proceso de autorización Largo máximo: 256.
details
Array
Lista de objetos, uno por cada tienda diferente del mall que participa en la transacción.
details [].amount
Decimal
Monto de la transacción de una tienda del mall. Máximo 2 decimales para USD. Largo máximo: 10.
details [].commerceCode
String
Código comercio asignado por Transbank para la tienda perteneciente al mall a la cual corresponde esta transacción. Largo: 12.
details [].buyOrder
String
Orden de compra de la tienda del mall. Este número debe ser único para cada transacción. Largo máximo: 26. La orden de compra puede tener: Números, letras, mayúsculas y minúsculas, y los signos |_=&%.,~:/?[[email protected]()>-.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
 "token": "e9d555262db0f989e49d724b4db0b0af367cc415cde41f500a776550fc5fddd3",
 "url": "https://webpay3gint.transbank.cl/webpayserver/initTransaction"
}
Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.
url
String
URL de formulario de pago Webpay. Largo máximo: 256.

Confirmar una transacción Webpay Plus Mall

Para confirmar una transacción y obtener el resultado, se debe usar el método Transaction.commit()

Transaction.commit()

Permite confirmar una tranascción y obtener el resultado de la transacción una vez que Webpay ha resueltosu autorización financiera.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
PUT /rswebpaytransaction/api/webpay/v1.0/transactions/{token}
Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

Parámetros

Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "buy_order": "415034240",
  "card_detail": {
    "card_number": "6623"
  },
  "accounting_date": "0321",
  "transaction_date": "2019-03-21T15:43:48.523Z",
  "details": [
    {
      "amount": 10000,
      "status": "AUTHORIZED",
      "authorization_code": "1213",
      "payment_type_code": "VN",
      "response_code": 0,
      "installments_number": 0,
      "commerce_code": "597026010055",
      "buy_order": "505479072",
      "status": "AUTHORIZED"
  }]
}
Nombre
tipo
Descripción
buyOrder
String
Orden de compra del mall. Largo máximo: 26
sessionId
String
Identificador de sesión, el mismo enviado originalmente por el comercio en Transaction.create(). Largo máximo: 61.
cardDetails
carddetails
Objeto que representa los datos de la tarjeta de crédito del tarjeta habiente.
cardDetails.cardNumber
String
4 últimos números de la tarjeta de crédito del tarjetahabiente.Solo para comercios autorizados por Transbank se envía el número completo. Largo máximo: 16.
accoutingDate
String
Fecha de la autorización. Largo: 4, formato MMDD
transactionDate
String
Fecha y hora de la autorización. Largo: 6, formato: MMDDHHmm
VCI
String
Resultado de la autenticación del tarjetahabiente. Puede tomar el valor TSY (Autenticación exitosa), TSN (Autenticación fallida), TO (Tiempo máximo excedido para autenticación), ABO (Autenticación abortada por tarjetahabiente), U3 (Error interno en la autenticación), NP (No Participa, probablemente por ser una tarjeta extranjera que no participa en el programa 3DSecure), ACS2 (Autenticación fallida extranjera). Puede ser vacío si la transacción no se autenticó. Largo máximo: 3. Este campo es información adicional suplementaria al responseCode pero el comercio no debe validar este campo. Porque constantemente se agregan nuevos mecanismos de autenticación que se traducen en nuevos valores para este campo que no están necesariamente documentados. (En el caso de tarjetas internacionales que no proveen 3D-Secure, la decisión del comercio de aceptarlas o no se realiza a nivel de configuración del comercio en Transbank y debe ser conversada con el ejecutivo del comercio)
details
Array
Lista con resultado de cada una de las transacciones enviados en Transaction.create().
details [].authorizationCode
String
Código de autorización de la transacción Largo máximo: 6
details [].paymentTypeCode
String
Tipo de pago de la transacción.
VD = Venta Débito.
VN = Venta Normal.
VC = Venta en cuotas.
SI = 3 cuotas sin interés.
S2 = 2 cuotas sin interés.
NC = N Cuotas sin interés
VP = Venta Prepago.
details [].responseCode
String
Código de respuesta de la autorización. Valores posibles:
0 = Transacción aprobada.
-1 = Rechazo de transacción.
-2 = Transacción debe reintentarse.
-3 = Error en transacción.
-4 = Rechazo de transacción.
-5 = Rechazo por error de tasa.
-6 = Excede cupo máximo mensual.
-7 = Excede límite diario por transacción.
-8 = Rubro no autorizado.
details [].amount
Formato número entero para transacciones en peso y decimal para transacciones en dólares.
Monto de la transacción. Largo máximo: 10
details [].installmentsAmount
Number
Monto de cada cuota. Largo máximo: 17
details [].installmentsNumber
Number
Cantidad de cuotas. Largo máximo: 2
details [].commerceCode
String
Código comercio de la tienda. Largo: 12
details [].buyOrder
String
Orden de compra de la tienda. Largo máximo: 26
details [].status
String
Estado de la transacción (AUTHORIZED, FAILED). Largo máximo: 26
balance
Number
Monto restante para un detalle anulado. Largo máximo: 17

Obtener estado de una transacción Webpay Plus Mall

Esta operación permite obtener el estado de la transacción en cualquier momento. En condiciones normales es probable que no se requiera ejecutar, pero en caso de ocurrir un error inesperado permite conocer el estado y tomar las acciones que correspondan.

Transaction.status()

Obtiene resultado de transacción a partir de un token.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
GET /rswebpaytransaction/api/webpay/v1.0/transactions/{token}
Tbk-Api-Key-Id: 597055555532
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

Parámetros

Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json
{
  "buy_order": "415034240",
  "card_detail": {
    "card_number": "6623"
  },
  "accounting_date": "0321",
  "transaction_date": "2019-03-21T15:43:48.523Z",
  "vci": "TSY",
  "details": [
    {
      "amount": 10000,
      "status": "AUTHORIZED",
      "authorization_code": "1213",
      "payment_type_code": "VN",
      "response_code": 0,
      "installments_number": 0,
      "commerce_code": "597026010055",
      "buy_order": "505479072",
      "status": "AUTHORIZED"
  }]
}
Nombre
tipo
Descripción
buyOrder
String
Orden de compra del mall. Largo máximo: 26
sessionId
String
Identificador de sesión, el mismo enviado originalmente por el comercio en Transaction.create(). Largo máximo: 61.
cardDetails
carddetails
Objeto que representa los datos de la tarjeta de crédito del tarjeta habiente.
cardDetails.cardNumber
String
4 últimos números de la tarjeta de crédito del tarjetahabiente.Solo para comercios autorizados por Transbank se envía el número completo. Largo máximo: 16.
accoutingDate
String
Fecha de la autorización. Largo: 4, formato MMDD
transactionDate
String
Fecha y hora de la autorización. Largo: 6, formato: MMDDHHmm
VCI
String
Resultado de la autenticación del tarjetahabiente. Puede tomar el valor TSY (Autenticación exitosa), TSN (Autenticación fallida), TO (Tiempo máximo excedido para autenticación), ABO (Autenticación abortada por tarjetahabiente), U3 (Error interno en la autenticación), NP (No Participa, probablemente por ser una tarjeta extranjera que no participa en el programa 3DSecure), ACS2 (Autenticación fallida extranjera). Puede ser vacío si la transacción no se autenticó. Largo máximo: 3. Este campo es información adicional suplementaria al responseCode pero el comercio no debe validar este campo. Porque constantemente se agregan nuevos mecanismos de autenticación que se traducen en nuevos valores para este campo que no están necesariamente documentados. (En el caso de tarjetas internacionales que no proveen 3D-Secure, la decisión del comercio de aceptarlas o no se realiza a nivel de configuración del comercio en Transbank y debe ser conversada con el ejecutivo del comercio)
details
Array
Lista con resultado de cada una de las transacciones enviados en Transaction.create().
details [].authorizationCode
String
Código de autorización de la transacción Largo máximo: 6
details [].paymentTypeCode
String
Tipo de pago de la transacción.
VD = Venta Débito.
VN = Venta Normal.
VC = Venta en cuotas.
SI = 3 cuotas sin interés.
S2 = 2 cuotas sin interés.
NC = N Cuotas sin interés
VP = Venta Prepago.
details [].responseCode
String
Código de respuesta de la autorización. Valores posibles:
0 = Transacción aprobada.
-1 = Rechazo de transacción.
-2 = Transacción debe reintentarse.
-3 = Error en transacción.
-4 = Rechazo de transacción.
-5 = Rechazo por error de tasa.
-6 = Excede cupo máximo mensual.
-7 = Excede límite diario por transacción.
-8 = Rubro no autorizado.
details [].amount
Formato número entero para transacciones en peso y decimal para transacciones en dólares.
Monto de la transacción. Largo máximo: 10
details [].installmentsNumber
Number
Cantidad de cuotas. Largo máximo: 2
details [].installmentsAmount
Number
Monto de cada cuota. Largo máximo: 17
details [].commerceCode
String
Código comercio de la tienda. Largo: 12
details [].buyOrder
String
Orden de compra de la tienda. Largo máximo: 26
details [].status
String
Estado de la transacción (AUTHORIZED, FAILED). Largo máximo: 26
balance
Number
Monto restante para un detalle anulado. Largo máximo: 17

Otros Servicios Webpay Plus

Captura diferida Webpay Plus

Este método permite a todo comercio habilitado realizar capturas de una transacción autorizada sin captura generada en Webpay Plus o Webpay OneClick. El método contempla una única captura por cada autorización. Para ello se deberá indicar los datos asociados a la transacción de venta con autorización sin captura y el monto requerido para capturar el cual debe ser menor o igual al monto originalmente autorizado.

Para capturar una transacción, ésta debe haber sido creada (según lo visto anteriormente para Webpay Plus Normal o Webpay Plus Mall) por un código de comercio configurado para captura diferida. De esa forma la transacción estará autorizada pero requerirá una captura explícita posterior para confirmar la transacción.

Puedes leer más sobre la captura en la información del producto Webpay para conocer más detalles y restricciones.

Para realizar esa captura explícita debe usarse el método Transaction.capture()

Transaction.capture()

Permite solicitar a Webpay la captura diferida de una transacción con autorización y sin captura simultánea.

Los SDKs permiten indicar opcionalmente el código de comercio de la transacción a capturar, para soportar la captura en comercios Webpay Plus Mall. En comercios Webpay Plus Normal, no es necesario especificar el código de comercio pues se usa el indicado en la configuración.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
PUT /rswebpaytransaction/api/webpay/v1.0/transactions/{token}/capture
Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
  "commerce_code": "597026007976",
  "buy_order": "ordenCompra12345678",
  "authorization_code": "123456",
  "capture_mount": 1000
}

Parámetros

Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.
authorizationCode
String
Código de autorización de la transacción que se requiere capturar Largo máximo: 6.
buyOrder
String
Orden de compra de la transacción que se requiere capturar. Largo máximo: 26.
commerceId
Number
(Opcional) Tienda mall que realizó la transacción. Largo: 6.
capturedAmount
Decimal
Monto que se desea capturar. Largo máximo: 17.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json
{
  "token": "e074d38c628122c63e5c0986368ece22974d6fee1440617d85873b7b4efa48a3",
  "authorization_code": "123456",
  "authorization_date": "2019-03-20T20:18:20Z",
  "captured_amount": 1000
}
Nombre
tipo
Descripción
token
String
Token de la transacción. Largo máximo: 64
authorizationCode
String
Código de autorización de la captura diferida. Largo máximo: 6
authorizationDate
String
Fecha y hora de la autorización.
capturedAmount
Decimal
Monto capturado. Largo máximo: 6

En caso de error pueden aparecer los siguientes códigos exclusivos del método Transaction.capture():

Código Descripción
304 Validación de campos de entrada nulos
245 Código de comercio no existe
22 El comercio no se encuentra activo
316 El comercio indicado no corresponde al certificado o no es hijo del comercio MALL en caso de transacciones MALL
308 Operación no permitida
274 Transacción no encontrada
16 La transacción no es de captura diferida
292 La transacción no está autorizada
284 Periodo de captura excedido
310 Transacción reversada previamente
309 Transacción capturada previamente
311 Monto a capturar excede el monto autorizado
315 Error del autorizador

Anulación Webpay Plus

Este método permite a todo comercio habilitado anular una transacción que fue generada en Webpay Plus (Normal y Mall) o Webpay OneClick Normal. El método contempla anular total o parcialmente una transacción. Para ello se deberá indicar los datos asociados a la transacción de venta en línea que se desea anular y los montos requeridos para anular. Se considera totalmente anulada una transacción cuando el monto anulado o el monto total de anulaciones cursadas alcancen el monto autorizado en la venta en línea.

El servicio web de anulación de transacciones Webpay soporta una sola anulación parcial para la transacción de venta en línea. En caso de enviar una segunda anulación parcial se retornará una Exception.

Las ejecuciones con errores entregarán un SoapFault de acuerdo a la codificación de errores definida mas abajo.

La anulación puede realizarse máximo 90 días después de la fecha de la transacción original.

Puedes leer más sobre la anulación en la información del producto Webpay para conocer más detalles y restricciones.

Para anular una transacción se debe invocar al método Transaction.refund().

Transaction.refund()

Permite solicitar a Webpay la anulación de una transacción realizada previamente y que se encuentra vigente.

Los SDKs permiten indicar opcionalmente el código de comercio de la transacción a anular, para soportar la anulación en comercios Webpay Plus Mall. En comercios Webpay Plus Normal, no es necesario especificar el código de comercio pues se usa el indicado en la configuración.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
PUT /rswebpaytransaction/api/webpay/v1.0/transactions/{token}/refund
Tbk-Api-Key-Id: 597055555532
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

{
  "buy_order": "415034240",
  "commerce_code": "597026010055",
  "amount": 1000
}

Parámetros

Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.
authorizationCode
String
Código de autorización de la transacción que se requiere anular. Si la transacción es de captura diferida, se debe usar el código obtenido al llamar a Transaction.capture(). Largo máximo: 6.
buyOrder
String
Orden de compra de la transacción que se requiere anular. Largo máximo: 26.
amount
Decimal
(Opcional) Monto que se desea anular de la transacción. Largo máximo: 10.
commerceId
Number
(Opcional) Tienda mall que realizó la transacción. Largo: 12.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json
{
  "type": "NULLIFY",
  "authorization_code": "123456",
  "authorization_date": "2019-03-20T20:18:20Z",
  "nullified_amount": 1000.00,
  "balance": 0.00
}
Nombre
tipo
Descripción
type
String
Tipo de reembolso (REVERSE. NULLIFY). Largo máximo: 10
authorizationCode
String
Código de autorización de la anulación. Largo máximo: 6
authorizationDate
String
Fecha y hora de la autorización.
balance
Decimal
Saldo actualizado de la transacción (considera la venta menos el monto anulado). Largo máximo: 17
nullifiedAmount
Decimal
Monto anulado. Largo máximo: 17

En caso de error pueden aparecer los siguientes códigos de error comunes para el método Transaction.refund():

Código Descripción
304 Validación de campos de entrada nulos
245 Código de comercio no existe
22 El comercio no se encuentra activo
316 El comercio indicado no corresponde al certificado o no es hijo del comercio MALL en caso de transacciones MALL
308 Operación no permitida
274 Transacción no encontrada
16 La transacción no permite anulación
292 La transacción no está autorizada
284 Periodo de anulación excedido
310 Transacción anulada previamente
311 Monto a anular excede el saldo disponible para anular
312 Error genérico para anulaciones
315 Error del autorizador
53 La transacción no permite anulación parcial de transacciones con cuotas

Webpay OneClick Normal

La modalidad de pago OneClick permite al tarjetahabiente realizar pagos en el comercio sin la necesidad de ingresar cada vez información de la tarjeta de crédito al momento de realizar la compra. El modelo de pago contempla un proceso previo de inscripción o enrolamiento del tarjetahabiente, a través del comercio, que desee utilizar el servicio. Este tipo de pago facilita la venta, disminuye el tiempo de la transacción y reduce los riesgos de ingreso erróneo de los datos del medio de pago.

El proceso de integración con Webpay OneClick consiste en desarrollar por parte del comercio las llamadas a los servicios web dispuestos por Transbank para la inscripción de los tarjetahabientes, así como para la realización de los pagos.

Flujo de inscripción y pago

La inscripción es el proceso en el cual el tarjetahabiente registra los datos de su tarjeta en Webpay OneClick para usarlo en compras futuras. Estos datos son almacenados de forma segura en Transbank, y nunca son conocidos por el comercio. Este proceso debe ser iniciado por la tienda del comercio y es requisito que el cliente esté autenticado en la página del comercio antes de iniciar la inscripción.

Proceso:

Diagrama de secuencia inscripción Oneclick

  • El cliente se conecta y autentica en la página del comercio, mediante su nombre de usuario y clave.
  • El cliente selecciona la opción de inscripción, la cual debe estar explicada en la página del comercio.
  • El comercio consume un servicio web publicado por Transbank, donde entrega los datos del cliente y la URL de término; obtiene un token y URL de Webpay.
  • El comercio envía el browser del cliente a la URL obtenida y pasa por parámetro el token (método POST).
  • Webpay presenta el formulario de inscripción, este es similar al formulario de pago actual de Webpay Plus, para que el cliente ingrese los datos de su tarjeta.
  • El cliente será autenticado por su banco emisor, de forma similar al flujo normal de pago. En este punto se realiza una transacción de $1 peso, la cual no se captura (no se verá reflejada en su estado de cuenta).
  • Finalizada la inscripción, Webpay envía el browser del cliente a la URL entregada por el comercio, pasando por parámetro el token.
  • El comercio debe consumir otro servicio web de Transbank, con el token, para obtener el resultado de la inscripción y el identificador de usuario, que debe utilizar en el futuro para realizar los pagos.
  • El comercio presenta al cliente el resultado de la inscripción.

Después de realizado el proceso de inscripción, el comercio puede iniciar el proceso de pago cuando corresponda.

El pago es el proceso donde el comercio solicita el cargo de una compra a la tarjeta de crédito de un usuario inscrito anteriormente, usando el identificador entregado por Transbank al momento de la inscripción.

Los pagos en esta modalidad no requieren necesariamente la intervención del usuario.

El monto del pago debe estar dentro de los límites establecidos para este tipo de transacciones, el proceso interno es similar a un cargo normal de Webpay. Proceso:

Diagrama de secuencia inscripción Oneclick

  • El cliente se conecta y autentica en la página o aplicación del comercio mediante su nombre de usuario y clave.
  • El cliente selecciona la opción de pagar con Webpay Oneclick.
  • El comercio usa el servicio web de pago, publicado por Transbank, entregando el identificador de usuario (que se obtuvo en la inscripción), el monto del pago y la orden de compra. Obtiene la respuesta con el código de autorización.
  • El comercio presenta el resultado del pago al cliente.

Crear una inscripción Webpay OneClick

Para realizar el primero de los procesos descritos (la inscripción), debe llamarse al método Inscription.start()

Inscription.start()

Permite realizar la inscripción del tarjetahabiente e información de su tarjeta de crédito. Retorna como respuesta un token que representa la transacción de inscripción y una URL (urlWebpay), que corresponde a la URL de inscripción de OneClick.

Una vez que se llama a este servicio Web, el usuario debe ser redireccionado vía POST a urlWebpay con parámetro TBK_TOKEN igual al token obtenido.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/oneclick/v1.0/inscriptions

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
 "username": "juanperez",
 "email": "[email protected]",
 "response_url": "http://www.comercio.cl/return_inscription"
}

Parámetros

Nombre
tipo
Descripción
username
String
Identificador del usuario registrado en el comercio. Largo máximo: 256.
email
String
Email del usuario registrado en el comercio. Largo máximo: 256.
responseURL
String
URL del comercio a la cual Webpay redireccionará posterior al proceso de inscripción. Largo máximo: 256.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "token": "e128a9c24c0a3cbc09223973327b97c8c474f6b74be509196cce4caf162a016a",
  "url_webpay": "https://webpay3g.transbank.cl/webpayserver/bp_inscription.cgi"
}
Nombre
tipo
Descripción
token
String
Token de la inscripción.
urlWebpay
String
URL de formulario Webpay.

Confirmar una inscripción Webpay OneClick

Una vez terminado el flujo de inscripción en Transbank el usuario es enviado a la URL de fin de inscripción que definió el comercio. En ese instante el comercio debe llamar a Inscription.finish().

Inscription.finish()

Permite finalizar el proceso de inscripción del tarjetahabiente en OneClick. Retorna el identificador del usuario en OneClick, el cual será utilizado para realizar las transacciones de pago.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/oneclick/v1.0/inscriptions/{token}

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
 "username": "juanperez",
 "email": "[email protected]",
 "response_url": "http://www.comercio.cl/return_inscription"
}

Parámetros

Nombre
tipo
Descripción
token
String
Token de la inscripción.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "response_code": 0,
  "tbk_user": "b6bd6ba3-e718-4107-9386-d2b099a8dd42",
  "authorization_code": 123456,
  "credit_card_type": "Visa",
  "last_four_card_digits": "4092"
}
Nombre
tipo
Descripción
responseCode
Number
Código de retorno del proceso de inscripción, donde 0 (cero) es aprobado.
tbkUser
String
Identificador único de la inscripción del cliente en Webpay OneClick, que debe ser usado para realizar pagos o borrar la inscripción.
authorizationCode
String
Código que identifica la autorización de la inscripción.
creditCardType
creditCardType
Indica el tipo de tarjeta inscrita por el cliente (Visa, AmericanExpress, MasterCard, Diners, Magna).
lastFourCardDigits
String
Los últimos 4 dígitos de la tarjeta ingresada por el cliente en la inscripción.

Eliminar una inscripción con Webpay Oneclick

Una vez finalizado el proceso de inscripción es posible eliminarla de ser necesario. Para esto debes usar el método llamado Inscription.remove().

Inscription.remove()

Permite eliminar un usuario enrolado a Oneclick.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
DELETE /rswebpaytransaction/api/oneclick/v1.0/inscriptions

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
  "tbk_user": "b6bd6ba3-e718-4107-9386-d2b099a8dd42",
  "username": "juanperez",
}

Parámetros

Nombre
tipo
Descripción
tbkUser
String
Identificador único de la inscripción del cliente (devuelto por Inscription.finish()).
username
String
Identificador del usuario en los sistemas del comercio (el mismo indicado en Inscription.start()).

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

Autorizar un pago con Webpay Oneclick

Una vez realizada la inscripción, el comercio puede usar el tbkUser recibido para realizar transacciones. Para eso debe usar el método Transaction.authorize().

Transaction.authorize()

Permite realizar transacciones de pago. Retorna el resultado de la autorización. Este método debe ser ejecutado cada vez que el usuario selecciona pagar con OneClick en el comercio.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/oneclick/v1.0/transactions

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
  "username": "juanperez",
  "tbk_user": "b6bd6ba3-e718-4107-9386-d2b099a8dd42",
  "amount": 1000,
  "buy_order": "ordenCompra123456789"
}

Parámetros

Nombre
tipo
Descripción
username
String
Identificador del usuario en los sistemas del comercio (el mismo indicado en Inscription.start()).
tbkUser
String
Identificador único de la inscripción del cliente (devuelto por Inscription.finish()).
amount
Decimal
Monto del pago en pesos.
buyOrder
Number
Identificador único de la compra generado por el comercio.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "vci": "TSY",
  "amount": 10000,
  "status": "AUTHORIZED",
  "buy_order": "ordenCompra12345678",
  "session_id": "sesion1234557545",
  "card_detail": {
    "card_number": "1234"
  },
  "accounting_date": "0320",
  "transaction_date": "2019-03-20T20:18:20Z",
  "authorization_code": "877550",
  "payment_type_code": "VN",
  "response_code": 0,
  "installments_number": 0
}
Nombre
tipo
Descripción
vci
String
Código de respuesta de la autenticación bancaria
amount
Number
Monto de la transacción. Sólo en caso de dolar acepta dos decimales.
status
String
Estado de la transacción (AUTHORIZED, FAILED).
buy_order
String
Número de orden de compra.
sessionId
String
ID de sesión de la compra.
cardDetail
cardDetail
Objeto que contiene información de la tarjeta utilizado por el tarjetahabiente.
cardNumber
String
Los últimos 4 dígitos de la tarjeta usada en la transacción.
accountingDate
String
Fecha contable de la transacción.
transactionDate
ISO8601
Fecha de la transacción.
authorizationCode
String
Código de autorización de la transacción de pago.
paymentTypeCode
String
Indica el tipo de tarjeta utilizada.
responseCode
Number
Código de retorno del proceso de pago, donde:
0 (cero) es aprobado.
-1, -2, -3, -4, -5, -6, -7, -8: Rechazo
-97: Límites Oneclick, máximo monto diario de pago excedido.
-98: Límites Oneclick, máximo monto de pago excedido
-99: Límites Oneclick, máxima cantidad de pagos diarios excedido.
installments_number
Number
Número de cuotas de la transacción.

Consultar un pago realizado con Webpay OneClick

Esta operación permite obtener el estado de la transacción en cualquier momento. En condiciones normales es probable que no se requiera ejecutar, pero en caso de ocurrir un error inesperado permite conocer el estado y tomar las acciones que correspondan.

Transaction.status()

Permite consultar el estado d epago realizado a través de Webpay Oneclick. Retorna el resultado de la autorización.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
GET /rswebpaytransaction/api/oneclick/v1.0/transactions/{buyOrder}

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

Parámetros

Nombre
tipo
Descripción
buyOrder
String
Orden de compra de la transacción a consultar.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "vci": "TSY",
  "amount": 10000,
  "status": "AUTHORIZED",
  "buy_order": "ordenCompra12345678",
  "session_id": "sesion1234557545",
  "card_detail": {
    "card_number": "1234"
  },
  "accounting_date": "0320",
  "transaction_date": "2019-03-20T20:18:20Z",
  "authorization_code": "877550",
  "payment_type_code": "VN",
  "response_code": 0,
  "installments_number": 0
}
Nombre
tipo
Descripción
vci
String
Código de respuesta de la autenticación bancaria
amount
Number
Monto de la transacción. Sólo en caso de dolar acepta dos decimales.
status
String
Estado de la transacción (AUTHORIZED, FAILED).
buyOrder
String
Número de orden de compra.
sessionId
String
ID de sesión de la compra.
cardDetail
cardDetail
Objeto que contiene información de la tarjeta utilizado por el tarjetahabiente.
cardNumber
String
Los últimos 4 dígitos de la tarjeta usada en la transacción.
accountingDate
String
Fecha contable de la transacción.
transactionDate
ISO8601
Fecha de la transacción.
authorizationCode
String
Código de autorización de la transacción de pago.
paymentTypeCode
String
Indica el tipo de tarjeta utilizada.
responseCode
Number
Código de retorno del proceso de pago, donde:
0 (cero) es aprobado.
-1, -2, -3, -4, -5, -6, -7, -8: Rechazo
-97: Límites Oneclick, máximo monto diario de pago excedido.
-98: Límites Oneclick, máximo monto de pago excedido
-99: Límites Oneclick, máxima cantidad de pagos diarios excedido.
installmentsNumber
Number
Número de cuotas de la transacción.
balance
Decimal
Monto restante de la sub-transacción de pago original: monto inicial – monto anulado. Largo máximo: 17

Reversar o anular un pago Webpay OneClick

Este proceso permite reversar una venta cuando esta no pudo concretarse dentro del mismo día contable, o anularlo.

Transaction.refund()

Permite reversar o anular una transacción de venta autorizada con anterioridad. Este método retorna como respuesta un identificador único de la transacción de reversa/anulación.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
PUT /rswebpaytransaction/api/oneclick/v1.0/transactions/{buyOrder}/refund

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
 "amount": 1000
}

Parámetros

Nombre
tipo
Descripción
buyOrder
String
Orden de compra de la transacción a reversar o anular.
amount
Number
(Opcional) Monto a anular. Si está presente se ejecuta una anulación, en caso contrario se ejecuta una reversa (a menos que haya pasado el tiempo máximo para reversar).

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "type": "NULLIFY",
  "authorization_code": "123456",
  "authorization_date": "2019-03-20T20:18:20Z",
  "nullified_amount": 1000.00,
  "balance": 0.00
}
Nombre
tipo
Descripción
type
String
Tipo de reembolso (REVERSE. NULLIFY). Largo máximo: 10
authorizationCode
Boolean
Código de autorización. Largo máximo: 6
authorizationDate
ISO8601
Fecha de la autorización de la transacción.
nullifiedAmount
Decimal
Monto anulado. Largo máximo: 17
balance
Decimal
Monto restante. Largo máximo: 17

Webpay OneClick Mall

Flujo de inscripción y pago

El flujo de Webpay OneClick Mall es en general el mismo que el de Webpay OneClick Normal tanto de cara al tarjeta habiente como de cara al integrador.

Las diferencias son:

  • El usuario debe estar registrado en la página del comercio "mall" agrupador, pero las transacciones son a nombre de las "tiendas" del mall.
  • Se pueden indicar múltiples transacciones a autorizar en una misma operación.
  • Se debe verificar por separado el resultado de cada una de esas transacciones individualmente, pues es posible que el emisor de la tarjeta autorice algunas y otras no.

Crear una inscripción Webpay OneClick Mall

Para iniciar la inscripción debe usarse el método Inscription.start()

Inscription.start()

Permite gatillar el inicio del proceso de inscripción.

Los SDKs no soportan aún los servicios Webpay OneClick Mall.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/oneclick/v1.0/inscriptions

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
 "username": "juanperez",
 "email": "[email protected]",
 "response_url": "http://www.comercio.cl/return_inscription"
}

Parámetros

Nombre
tipo
Descripción
username
String
Identificador del usuario registrado en el comercio. Largo máximo: 256.
email
String
Email del usuario registrado en el comercio. Largo máximo: 256.
responseURL
String
URL del comercio a la cual Webpay redireccionará posterior al proceso de inscripción. Largo máximo: 256.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "token": "e128a9c24c0a3cbc09223973327b97c8c474f6b74be509196cce4caf162a016a",
  "url_webpay": "https://webpay3g.transbank.cl/webpayserver/bp_inscription.cgi"
}
Nombre
tipo
Descripción
token
String
Identificador, único, del proceso de inscripción. Debe ser enviado por parámetro (TBK_TOKEN) a la URL urlWebpay.
urlWebpay
String
URL de Webpay para iniciar la inscripción.

Confirmar una inscripción Webpay OneClick Mall

Una vez terminado el flujo de inscripción en Transbank el usuario es enviado a la URL de fin de inscripción que definió el comercio (responseURL). En ese instante el comercio debe llamar a Inscription.finish().

Inscription.finish()

Permite finalizar el proceso de inscripción obteniendo el usuario tbk.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/oneclick/v1.0/inscriptions/{token}

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
 "username": "juanperez",
 "email": "[email protected]",
 "response_url": "http://www.comercio.cl/return_inscription"
}

Parámetros

Nombre
tipo
Descripción
token
String
Identificador del proceso de inscripción. Es entregado por Webpay en la respuesta del método Inscription.start().

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "response_code": 0,
  "tbk_user": "b6bd6ba3-e718-4107-9386-d2b099a8dd42",
  "authorization_code": 123456,
  "credit_card_type": "Visa",
  "last_four_card_digits": "4092"
}
Nombre
tipo
Descripción
responseCode
Number
Código de retorno del proceso de inscripción, donde 0 (cero) es aprobado.
tbkUser
String
Identificador único de la inscripción del cliente en Webpay OneClick, que debe ser usado para realizar pagos o borrar la inscripción.
authorizationCode
String
Código que identifica la autorización de la inscripción.
creditCardType
creditCardType
Indica el tipo de tarjeta inscrita por el cliente (Visa, AmericanExpress, MasterCard, Diners, Magna).
lastFourCardDigits
String
Los últimos 4 dígitos de la tarjeta ingresada por el cliente en la inscripción.

Eliminar una inscripción con Webpay Oneclick Mall

Una vez finalizado el proceso de inscripción es posible eliminarla de ser necesario. Para esto debes usar el método llamado Inscription.remove().

Inscription.remove()

Permite eliminar un usuario enrolado a Oneclick Mall.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
DELETE /rswebpaytransaction/api/oneclick/v1.0/inscriptions

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
  "tbk_user": "b6bd6ba3-e718-4107-9386-d2b099a8dd42",
  "username": "juanperez",
}

Parámetros

Nombre
tipo
Descripción
tbkUser
String
Identificador único de la inscripción del cliente (devuelto por Inscription.finish()).
username
String
Identificador del usuario en los sistemas del comercio (el mismo indicado en Inscription.start()).

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

Autorizar un pago con Webpay OneClick Mall

Una vez realizada la inscripción, el comercio puede usar el tbkUser recibido para realizar transacciones. Para eso debes usar el método Transaction.authorize().

Transaction.authorize()

Permite autorizar un pago.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/oneclick/v1.0/transactions

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
  "username": "juanperez",
  "tbk_user": "b6bd6ba3-e718-4107-9386-d2b099a8dd42",
  "buy_order": "ordenCompra123456789",
  "details": [
    {
      "commerce_code": 597026010055,
      "buy_order": "ordenCompra123445",
      "amount": 1000,
      "installments_number": 5
  }] 
}

Parámetros

Nombre
tipo
Descripción
username
String
Identificador del usuario en los sistemas del comercio (el mismo indicado en Inscription.start()).
tbkUser
String
Identificador único de la inscripción del cliente (devuelto por Inscription.finish()).
buyOrder
Number
Identificador único de la compra generado por el comercio.
details
Array
Lista de objetos, uno por cada tienda diferente del mall que participa en la transacción.
details [].commerceCode
String
Código comercio asignado por Transbank para la tienda perteneciente al mall a la cual corresponde esta transacción. Largo: 12.
details [].buyOrder
String
Identificador único de la compra generado por el comercio hijo (tienda).
details [].amount
Decimal
Monto de la sub-transacción de pago. En pesos o dólares según configuración comercio mall padre.
details [].installmentsNumber
Number
Cantidad de cuotas de la sub-transacción de pago.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "buy_order": "415034240",
  "card_detail": {
    "card_number": "6623"
  },
  "accounting_date": "0321",
  "transaction_date": "2019-03-21T15:43:48.523Z",
  "details": [
    {
      "amount": 500,
      "status": "AUTHORIZED",
      "authorization_code": "1213",
      "payment_type_code": "VN",
      "response_code": 0,
      "installments_number": 0,
      "commerce_code": "597026010055",
      "buy_order": "505479072"
  }]
}
Nombre
tipo
Descripción
buyOrder
String
Orden de compra generada por el comercio padre.
cardDetail
cardDetail
Objeto que contiene información de la tarjeta utilizado por el tarjetahabiente.
cardDetail.cardNumber
String
Los últimos 4 dígitos de la tarjeta usada en la transacción.
accountingDate
String
Fecha contable de la autorización del pago.
TransactionDate
DateTime
Fecha completa (timestamp) de la autorización del pago.
details
Array
Lista con el resultado de cada transacción de las tiendas hijas.
details [].amount
Decimal
Monto de la sub-transacción de pago.
details [].status
String
Estado de la transacción (AUTHORIZED, FAILED).
details [].authorizationCode
String
Código de autorización de la sub-transacción de pago.
details [].payment_type_code
String
Tipo (VC, NC, SI, etc.) de la sub-transacción de pago.
details [].responseCode
Number
Código de retorno del proceso de pago, donde:
0 (cero) es aprobado.
-1, -2, -3, -4, -5, -6, -7, -8: Rechazo
-97: Límites Oneclick, máximo monto diario de pago excedido.
-98: Límites Oneclick, máximo monto de pago excedido
-99: Límites Oneclick, máxima cantidad de pagos diarios excedido.
details [].installmentsNumber
Number
Cantidad de cuotas de la sub-transacción de pago.
details [].commerceCode
Number
Código de comercio del comercio hijo (tienda).
details [].buyOrder
String
Orden de compra generada por el comercio hijo para la sub-transacción de pago.

Consultar un pago realizado con Webpay OneClick Mall

Esta operación permite obtener el estado de la transacción en cualquier momento. En condiciones normales es probable que no se requiera ejecutar, pero en caso de ocurrir un error inesperado permite conocer el estado y tomar las acciones que correspondan.

Transaction.status()

Permite consultar el estado de pago realizado a través de Webpay Oneclick. Retorna el resultado de la autorización.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
GET /rswebpaytransaction/api/oneclick/v1.0/transactions/{buyOrder}

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

Parámetros

Nombre
tipo
Descripción
buyOrder
String
Orden de compra de la transacción a consultar.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "buy_order": "415034240",
  "card_detail": {
    "card_number": "6623"
  },
  "accounting_date": "0321",
  "transaction_date": "2019-03-21T15:43:48.523Z",
  "details": [
    {
      "amount": 500,
      "status": "AUTHORIZED",
      "authorization_code": "1213",
      "payment_type_code": "VN",
      "response_code": 0,
      "installments_number": 0,
      "commerce_code": "597026010055",
      "buy_order": "505479072"
  }]
}
Nombre
tipo
Descripción
buyOrder
String
Orden de compra generada por el comercio padre.
cardDetail
cardDetail
Objeto que contiene información de la tarjeta utilizado por el tarjetahabiente.
cardDetail.cardNumber
String
Los últimos 4 dígitos de la tarjeta usada en la transacción.
accountingDate
String
Fecha contable de la autorización del pago.
TransactionDate
DateTime
Fecha completa (timestamp) de la autorización del pago.
details
Array
Lista con el resultado de cada transacción de las tiendas hijas.
details [].amount
Decimal
Monto de la sub-transacción de pago.
details [].status
String
Estado de la transacción (AUTHORIZED, FAILED).
details [].authorizationCode
String
Código de autorización de la sub-transacción de pago.
details [].paymentTypeCode
String
Tipo (VC, NC, SI, etc.) de la sub-transacción de pago.
details [].responseCode
Number
Código de retorno del proceso de pago, donde:
0 (cero) es aprobado.
-1, -2, -3, -4, -5, -6, -7, -8: Rechazo
-97: Límites Oneclick, máximo monto diario de pago excedido.
-98: Límites Oneclick, máximo monto de pago excedido
-99: Límites Oneclick, máxima cantidad de pagos diarios excedido.
details [].installmentsNumber
Number
Cantidad de cuotas de la sub-transacción de pago.
details [].commerceCode
Number
Código de comercio del comercio hijo (tienda).
details [].buyOrder
String
Orden de compra generada por el comercio hijo para la sub-transacción de pago.
status
Text
Estado de la transacción (AUTHORIZED,FAILED). Largo máximo: 64
balance
Decimal
Monto restante de la sub-transacción de pago original: monto inicial – monto anulado. Largo máximo: 17

Reversar o Anular un pago Webpay OneClick Mall

Para Webpay OneClick Mall hay dos operaciones diferentes para dejar sin efecto transacciones autorizadas: La reversa y la anulación.

La reversa se aplica para problemas operacionales (lado comercio) o de comunicación entre comercio y Transbank que impidan recibir a tiempo la respuesta de una autorización. En tal caso el comercio debe intentar reversar la transacción de autorización para evitar un posible descuadre entre comercio y Transbank. La reversa funciona sobre la operación completa del mall, lo que significa que todas las transacciones realizadas en la operación mall serán reversadas. Y sólo puede ser usada hasta 30 segundos después de la llamada a Transaction.authorize()

La anulación, en cambio, actúa individualmente sobre las transacciones de las tiendas de un mall. Por ende, la anulación es la operación correcta a utilizar para fines financieros, de manera de anular un cargo ya realizado. También es posible reversar una anulación debido a problemas operacionales (por ejemplo un error de comunicación al momento de anular, que le impida al comercio saber si Transbank recibió la anulación).

Para llevar a cabo la reversa, el comercio debe usar el método para este caso sin indicar el monto. Para la anulación, se debe usar el método indicando el monto de la anulación.

Transaction.refund()

Permite reversar o anular una transacción de venta autorizada con anterioridad. Este método retorna como respuesta un identificador único de la transacción de reversa/anulación.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
PUT /rswebpaytransaction/api/oneclick/v1.0/transactions/{buyOrder}/refund

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
  "commerce_code": 597026010055,
  "detail_buy_order": "ordenCompra12345",
  "amount": 1000
}

Parámetros

Nombre
tipo
Descripción
buyOrder
String
Orden de compra de la transacción a reversar o anular.
commerceCode
String
Código de comercio hijo.
detailBuyOrder
String
Orden de compra hija de la transacción a reversar o anular.
amount
Number
(Opcional) Monto a anular. Si está presente se ejecuta una anulación, en caso contrario se ejecuta una reversa (a menos que haya pasado el tiempo máximo para reversar).

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "type": "NULLIFY",
  "authorization_code": "123456",
  "authorization_date": "2019-03-20T20:18:20Z",
  "nullified_amount": 1000.00,
  "balance": 0.00
}
Nombre
tipo
Descripción
type
String
Tipo de reembolso (REVERSE. NULLIFY). Largo máximo: 10
authorizationCode
Boolean
Código de autorización. Largo máximo: 6
authorizationDate
ISO8601
Fecha de la autorización de la transacción.
nullifiedAmount
Decimal
Monto anulado. Largo máximo: 17
balance
Decimal
Monto restante de la sub-transacción de pago original: monto inicial – monto anulado. Largo máximo: 17

Webpay Transacción Completa

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible

Una transacción completa permite al comercio presentar al tarjetahabiente un formulario propio para almacenar los datos de la tarjeta, fecha de vencimiento y cvv.

Crear una Transacción Completa

Para crear una transacción completa basta llamar al método Transaction.create()

Transaction.create()

Permite inicializar una transacción completa en Webpay. Como respuesta a la invocación se genera un token que representa en forma única una transacción.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/webpay/v1.0/transactions

Tbk-Api-Key-Id: 597055555530
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

{
  "buy_order": "ordenCompra12345678",
  "session_id": "sesion1234564",
  "amount": 10000,
  "cvv": 123,
  "card_number": "4239000000000000",
  "card_expiration_date": "22/10"
}

Parámetros

Nombre
tipo
Descripción
buyOrder
String
Orden de compra de la tienda. Este número debe ser único para cada transacción. Largo máximo: 26. La orden de compra puede tener: Números, letras, mayúsculas y minúsculas, y los signos |_=&%.,~:/?[[email protected]()>- Largo máximo: 26
sessionId
String
(Opcional) Identificador de sesión, uso interno de comercio, este valor es devuelto al final de la transacción. Largo máximo: 61
amount
Decimal
Monto de la transacción. Máximo 2 decimales para USD. Largo máximo: 17
cvv
String
URL del comercio, a la cual Webpay redireccionará posterior al proceso de autorización. Largo máximo: 4
cardNumber
String
Número de la tarjeta con la que se debe hacer la transacción. Largo máximo: 16
cardExpirationDate
String
Fecha de expiración de la tarjeta con la que se realiza la transacción. Largo máximo: 5

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "token": "e074d38c628122c63e5c0986368ece22974d6fee1440617d85873b7b4efa48a3",
}
Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.

Consulta de cuotas

Para consultar el valor de las cuotas que pagará el tarjeta habiente en una transacción completa, es necesario llamar al método Transaction.installments()

Transaction.installments()

Operación que permite obtener el monto de la cuota a partir del número de cuotas. El id de la consulta que selecciona el tarjetahabiente debe ser informado en la invocación de la confirmación.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/webpay/v1.0/transactions/{token}/installments

Tbk-Api-Key-Id: 597055555530
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

{
  "installments_number": 10
}

Parámetros

Nombre
tipo
Descripción
token
String
Número de orden de compra. Largo máximo: 64
installmentsNumber
Number
Cantidad de cuotas. Largo máximo: 2

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "installments_amount": 3334,
  "id_query_installments": 11,
  "deferred_periods": [
    {
      "amount": 1000,
      "period": 1
    }
  ] 
}
Nombre
tipo
Descripción
installmentsAmount
String
Monto de cada cuota. Largo: 64.
idQueryInstallments
String
Identificador de las cuotas. Largo: 2.
deferredPeriods
Array
Arreglo con periodos diferidos.
deferredPeriods [].amount
String
Monto. Largo: 17.
deferredPeriods [].period
String
Índice de periodo. Largo: 2.

Confirmación de la transacción

Una vez iniciada la transacción y consultado el monto de las cuotas, puedes confirmar y obtener el resultado de una transacción completa usando el metodo Transaction.commit().

Transaction.commit()

Operación que permite confirmar una transacción. Retorna el estado de la transacción.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
PUT /rswebpaytransaction/api/webpay/v1.0/transactions/{token}

Tbk-Api-Key-Id: 597055555530
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

{
  "token": "e074d38c628122c63e5c0986368ece22974d6fee1440617d85873b7b4efa48a3",
  "id_query_installments": 15,
  "deferred_period_index": 1,
  "grace_period": false
}

Parámetros

Nombre
tipo
Descripción
token
String
Token identificador de la transacción. Largo máximo: 64
idQueryInstallments
Number
(Opcional) Identificador de cuota. Largo máximo: 2
deferredPeriodIndex
Number
(Opcional) Cantidad de periodo diferido. Largo máximo: 2
gracePeriod
Number
(Opcional) Indicador de periodo de gracia.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "vci": "TSY",
  "amount": 10000,
  "status": "AUTHORIZED",
  "buy_order": "ordenCompra12345678",
  "session_id": "sesion1234557545",
  "card_detail": {
    "card_number": "1234"
  },
  "accounting_date": "0320",
  "transaction_date": "2019-03-20T20:18:20Z",
  "authorization_code": "877550",
  "payment_type_code": "VN",
  "response_code": 0,
  "installments_number": 0
}
Nombre
tipo
Descripción
vci
String
Código de respuesta de la autenticación bancaria. Largo máximo: 64
amount
Number
Monto de la transacción. Sólo en caso de dolar acepta dos decimales. Largo máximo: 17
status
String
Estado de la transacción (AUTHORIZED, FAILED). Largo máximo: 64
buyOrder
String
Número de orden de compra. Largo máximo: 26
sessionId
String
ID de sesión de la compra. Largo máximo: 61
cardDetail
cardDetail
Objeto que contiene información de la tarjeta utilizado por el tarjetahabiente.
cardNumber
String
Los últimos 4 dígitos de la tarjeta usada en la transacción. Largo máximo: 19
accountingDate
String
Fecha contable de la transacción.
transactionDate
ISO8601
Fecha de la transacción.
authorizationCode
String
Código de autorización de la transacción de pago. Largo máximo: 6
paymentTypeCode
String
Indica el tipo de tarjeta utilizada. Largo máximo: 2
responseCode
Number
Código de retorno del proceso de pago, donde:
0 (cero) es aprobado.
-1, -2, -3, -4, -5, -6, -7, -8: Rechazo
-97: Límites Oneclick, máximo monto diario de pago excedido.
-98: Límites Oneclick, máximo monto de pago excedido
-99: Límites Oneclick, máxima cantidad de pagos diarios excedido.
installmentsNumber
Number
Número de cuotas de la transacción. Largo máximo: 2
balance
Number
Monto restante para un detalle anulado. Largo máximo: 17

Consultar estado de una transacción completa

Esta operación permite obtener el estado de la transacción en cualquier momento. En condiciones normales es probable que no se requiera ejecutar, pero en caso de ocurrir un error inesperado permite conocer el estado y tomar las acciones que correspondan.

Transaction.status()

Obtiene resultado de transacción a partir de un token.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
GET /rswebpaytransaction/api/webpay/v1.0/transactions/{token}
Tbk-Api-Key-Id: 597055555530
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

Parámetros

Nombre
tipo
Descripción
token
String
Token identificador de la transacción. Largo: 64.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "vci": "TSY",
  "amount": 10000,
  "status": "AUTHORIZED",
  "buy_order": "ordenCompra12345678",
  "session_id": "sesion1234557545",
  "card_detail": {
    "card_number": "1234"
  },
  "accounting_date": "0320",
  "transaction_date": "2019-03-20T20:18:20Z",
  "authorization_code": "877550",
  "payment_type_code": "VN",
  "response_code": 0,
  "installments_number": 0
}
Nombre
tipo
Descripción
vci
String
Código de respuesta de la autenticación bancaria. Largo máximo: 64
amount
Number
Monto de la transacción. Sólo en caso de dolar acepta dos decimales. Largo máximo: 17
status
String
Estado de la transacción (AUTHORIZED, FAILED). Largo máximo: 64
buy_order
String
Número de orden de compra. Largo máximo: 26
sessionId
String
ID de sesión de la compra. Largo máximo: 61
cardDetail
cardDetail
Objeto que contiene información de la tarjeta utilizado por el tarjetahabiente.
cardNumber
String
Los últimos 4 dígitos de la tarjeta usada en la transacción. Largo máximo: 19
accountingDate
String
Fecha contable de la transacción.
transactionDate
ISO8601
Fecha de la transacción.
authorizationCode
String
Código de autorización de la transacción de pago. Largo máximo: 6
paymentTypeCode
String
Indica el tipo de tarjeta utilizada.
responseCode
Number
Código de retorno del proceso de pago, donde:
0 (cero) es aprobado.
-1, -2, -3, -4, -5, -6, -7, -8: Rechazo
-97: Límites Oneclick, máximo monto diario de pago excedido.
-98: Límites Oneclick, máximo monto de pago excedido
-99: Límites Oneclick, máxima cantidad de pagos diarios excedido.
installments_number
Number
Número de cuotas de la transacción. Largo máximo: 2
balance
Number
Monto restante para un detalle anulado. Largo máximo: 17

Anulación Transaccion Completa

Permite generar el reembolso del total o parte del monto de una transacción completa. Dependiendo de la siguiente lógica de negocio la invocación a esta operación generará una reversa o una anulación:

  • Si se especifica un valor en el campo “amount” se ejecutará siempre una anulación.
  • Si se supera el tiempo máximo para ejecutar una reversa se ejecutará una anulación.
  • Si no se ha dado ninguno de los casos anteriores se ejecutará una reversa.

Transaction.refund()

Permite solicitar a Webpay la anulación de una transacción realizada previamente y que se encuentre vigente.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
PUT /rswebpaytransaction/api/webpay/v1.0/transactions/{token}/refund
Tbk-Api-Key-Id: 597055555532
Tbk-Api-Key-Secret: 579B532A7440BB0C9079DED94D31EA1615BACEB56610332264630D42D0A36B1C
Content-Type: application/json

{
 "amount": 1000
}

Parámetros

Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.
amount
Decimal
(Opcional) Monto que se desea anular de la transacción. Largo máximo: 17.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json
{
  "type": "NULLIFY",
  "authorization_code": "123456",
  "authorization_date": "2019-03-20T20:18:20Z",
  "nullified_amount": 1000.00,
  "balance": 0.00
}
Nombre
tipo
Descripción
type
String
Tipo de reembolso (REVERSE. NULLIFY). Largo máximo: 10
authorizationCode
String
Código de autorización de la anulación. Largo máximo: 6
authorizationDate
String
Fecha y hora de la autorización.
nullifiedAmount
Decimal
Monto anulado. Largo máximo: 17
balance
Decimal
Saldo actualizado de la transacción (considera la venta menos el monto anulado). Largo máximo: 17
responseCode
Number
Código de resultado del pago. Si es exitoso es 0, de lo contrario el pago no fue realizado. Largo máximo: 2

Webpay Transacción Mall Completa

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible

Una transacción Mall Completa corresponde a una solicitud de transacciones completas de un conjunto de pagos con tarjetas de crédito, en donde quién realiza el pago ingresa al sitio del comercio, selecciona productos o servicios, y el ingreso asociado a los datos de la tarjeta de crédito lo realiza una única vez en forma segura en Webpay para el conjunto de pagos. Cada pago tendrá su propio resultado, autorizado o rechazado.

Desagregación de un pago Webpay Mall

El Mall Webpay agrupa múltiples tiendas, son estas últimas las que pueden generar transacciones. Tanto el mall como las tiendas asociadas son identificadas a través de un número denominado código de comercio.

Flujo Webpay Transacción Mall Completa

El flujo de Transacción Mall Completa es en general el mismo que el de Webpay Transacción Completa tanto de cara al tarjeta habiente como de cara al integrador.

Las diferencias son:

  • Se debe usar un código de comercio configurado para modalidad Mall en Transbank, el cual debe ser indicado al iniciar la transacción.
  • Se pueden indicar múltiples transacciones, cada una asociada a un código de comercio de tienda (que debe estar configurada en Transbank como perteneciente al mall).
  • Se debe verificar por separado el resultado de cada una de esas transacciones individualmente, pues es posible que el emisor de la tarjeta autorice algunas y otras no.

Crear una Transacción Mall Completa

Para crear una Transacción Mall Completa basta llamar al método Transaction.create()

Transaction.create()

Permite inicializar una transacción mall completa en Webpay. Como respuesta a la invocación se genera un token que representa en forma única una transacción.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/webpay/v1.0/transactions

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
  "buy_order": "ordenCompra12345678",
  "session_id": "sesion1234564",
  "card_number": "4239000000000000",
  "card_expiration_date": "22/10",
  "details": [
    {
      "amount": 10000,
      "commerce_code": 597026008905,
      "buy_order": "123456789"
    }, 
    {
      "amount": 10000,
      "commerce_code": 597026008913,
      "buy_order": "123456790"
    } 
  ]
}

Parámetros

Nombre
tipo
Descripción
buyOrder
String
Es el código único de la orden de compra generada por el comercio mall. Largo máximo: 26
sessionId
String
Identificador de sesión, uso interno de comercio, este valor es devuelto al final de la transacción. Largo máximo: 61
cardNumber
String
Número de la tarjeta con la que se debe hacer la transacción. Largo máximo: 19
cardExpirationDate
String
Fecha de expiración de la tarjeta con la que se realiza la transacción. Largo máximo: 5
details
Array
Lista de objetos, uno por cada tienda diferente del mall que participa en la transacción.
details [].amount
Decimal
Monto de la transacción de una tienda del mall. Máximo 2 decimales para USD. Largo máximo: 17.
details [].commerceCode
String
Código comercio asignado por Transbank para la tienda perteneciente al mall a la cual corresponde esta transacción. Largo: 12.
details [].buyOrder
String
Orden de compra de la tienda del mall. Este número debe ser único para cada transacción. Largo máximo: 26. La orden de compra puede tener: Números, letras, mayúsculas y minúsculas, y los signos |_=&%.,~:/?[[email protected]()>-. Largo máximo: 26

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "token": "e074d38c628122c63e5c0986368ece22974d6fee1440617d85873b7b4efa48a3",
}
Nombre
tipo
Descripción
token
String
Token identificador de la transacción. Largo: 64.

Consulta de cuotas

Para consultar el valor de las cuotas que pagará el tarjeta habiente en cada transacción dentro transacción mall completa, es necesario llamar al método Transaction.installments()

Transaction.installments()

Operación que permite obtener el monto de la cuota a partir del número de cuotas. El id de la consulta que selecciona el tarjetahabiente debe ser informado en la invocación de la confirmación.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
POST /rswebpaytransaction/api/webpay/v1.0/transactions/{token}/installments

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
  "commerce_code": 597026008905,
  "buy_order": "123456789",
  "installments_number": 10
}

Parámetros

Nombre
tipo
Descripción
token
String
Número de orden de compra. Largo máximo: 64
commerceCode
String
Código comercio asignado por Transbank para la tienda perteneciente al mall a la cual corresponde esta transacción. Largo: 12
buyOrder
String
Orden de compra de la tienda del mall. Largo máximo: 26
installmentsNumber
Number
Cantidad de cuotas. Largo máximo: 2

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "installments_amount": 3334,
  "id_query_installments": 11,
  "deferred_periods": [
    {
      "amount": 1000,
      "period": 1
    }
  ] 
}
Nombre
tipo
Descripción
installmentsAmount
String
Monto de cada cuota. Largo: 64.
idQueryInstallments
String
Identificador de las cuotas. Largo: 2.
deferredPeriods
Array
Arreglo con periodos diferidos.
deferredPeriods [].amount
String
Monto. Largo: 17.
deferredPeriods [].period
String
Índice de periodo. Largo: 2.

Confirmación de la transacción

Una vez iniciada la transacción y consultado el monto de las cuotas por cada subtransacción, puedes confirmar y obtener el resultado de una transacción completa usando el metodo Transaction.commit().

Transaction.commit()

Operación que permite confirmar una transacción. Retorna el estado de la transacción.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
PUT /rswebpaytransaction/api/webpay/v1.0/transactions/{token}

Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
  "details": [
    {
      "commerce_code": 597026008913,
      "buy_order": "ordenCompra1234",
      "id_query_installments": 12,
      "deferred_period_index": 1,
      "grace_period": false  
    }
  ] 
}

Parámetros

Nombre
tipo
Descripción
token
String
Token identificador de la transacción. Largo máximo: 64
details
details
Listado con las transacciones mall.
commerceCode
String
Código comercio asignado por Transbank para la tienda perteneciente al mall a la cual corresponde esta transacción. Largo máximo: 12
buyOrder
String
Orden de compra de la tienda del mall. Largo máximo: 26
idQueryInstallments
Number
(Opcional) Identificador de cuota. Largo máximo: 2
deferredPeriodIndex
Number
(Opcional) Cantidad de periodo diferido. Largo máximo: 2
gracePeriod
Number
(Opcional) Indicador de periodo de gracia.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "buy_order": "415034240",
  "card_detail": {
    "card_number": "6623"
  },
  "accounting_date": "0321",
  "transaction_date": "2019-03-21T15:43:48.523Z",
  "details": [
    {
      "amount": 500,
      "status": "AUTHORIZED",
      "authorization_code": "1213",
      "payment_type_code": "VN",
      "response_code": 0,
      "installments_number": 0,
      "commerce_code": "597026010055",
      "buy_order": "505479072"
    }
  ]
}
Nombre
tipo
Descripción
buyOrder
String
Orden de compra del mall. Largo máximo: 26
cardDetails
carddetails
Objeto que representa los datos de la tarjeta de crédito del tarjeta habiente.
cardDetails.cardNumber
String
4 últimos números de la tarjeta de crédito del tarjetahabiente.Solo para comercios autorizados por Transbank se envía el número completo. Largo máximo: 19.
accoutingDate
String
Fecha de la autorización. Largo: 4, formato MMDD
transactionDate
String
Fecha y hora de la autorización. Largo: 6, formato: MMDDHHmm
details
Array
Lista con resultado de cada una de las transacciones enviadas.
details [].amount
Number
Monto de la transacción. Largo máximo: 17
details [].status
String
Estado de la transacción (AUTHORIZED, FAILED). Largo máximo: 64
details [].authorizationCode
String
Código de autorización de la transacción Largo máximo: 6
details [].paymentTypeCode
String
Tipo de pago de la transacción.
VD = Venta Débito.
VN = Venta Normal.
VC = Venta en cuotas.
SI = 3 cuotas sin interés.
S2 = 2 cuotas sin interés.
NC = N Cuotas sin interés
VP = Venta Prepago.
details [].responseCode
String
Código de respuesta de la autorización. Valores posibles:
0 = Transacción aprobada.
-1 = Rechazo de transacción.
-2 = Transacción debe reintentarse.
-3 = Error en transacción.
-4 = Rechazo de transacción.
-5 = Rechazo por error de tasa.
-6 = Excede cupo máximo mensual.
-7 = Excede límite diario por transacción.
-8 = Rubro no autorizado.
details [].installmentsNumber
Number
Cantidad de cuotas. Largo máximo: 2
details [].installmentsAmount
Number
Monto de cada cuota. Largo máximo: 17
details [].commerceCode
String
Código comercio de la tienda. Largo: 6
details [].buyOrder
String
Orden de compra de la tienda. Largo máximo: 255
status
Text
Estado de la transacción (AUTHORIZED, FAILED). Largo máximo: 17
balance
Number
Monto restante para un detalle anulado. Largo máximo: 64

Consultar estado de una transacción mall completa

Esta operación permite obtener el estado de la transacción mall completa en cualquier momento. En condiciones normales es probable que no se requiera ejecutar, pero en caso de ocurrir un error inesperado permite conocer el estado y tomar las acciones que correspondan.

Transaction.status()

Obtiene resultado de transacción a partir de un token.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
GET /rswebpaytransaction/api/webpay/v1.0/transactions/{token}
Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

Parámetros

Nombre
tipo
Descripción
token
String
Token identificador de la transacción. Largo: 64.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json

{
  "buy_order": "415034240",
  "card_detail": {
    "card_number": "6623"
  },
  "accounting_date": "0321",
  "transaction_date": "2019-03-21T15:43:48.523Z",
  "details": [
    {
      "amount": 500,
      "status": "AUTHORIZED",
      "authorization_code": "1213",
      "payment_type_code": "VN",
      "response_code": 0,
      "installments_number": 0,
      "commerce_code": "597026010055",
      "buy_order": "505479072"
    } 
  ]
}
Nombre
tipo
Descripción
buyOrder
String
Orden de compra del mall. Largo máximo: 26
cardDetails
carddetails
Objeto que representa los datos de la tarjeta de crédito del tarjeta habiente.
cardDetails.cardNumber
String
4 últimos números de la tarjeta de crédito del tarjetahabiente.Solo para comercios autorizados por Transbank se envía el número completo. Largo máximo: 19.
accoutingDate
String
Fecha de la autorización. Largo: 4, formato MMDD
transactionDate
String
Fecha y hora de la autorización. Largo: 6, formato: MMDDHHmm
details
Array
Lista con resultado de cada una de las transacciones enviadas.
details [].amount
Number
Monto de la transacción. Largo máximo: 17
details [].status
String
Estado de la transacción (AUTHORIZED, FAILED). Largo máximo: 64
details [].authorizationCode
String
Código de autorización de la transacción Largo máximo: 6
details [].paymentTypeCode
String
Tipo de pago de la transacción.
VD = Venta Débito.
VN = Venta Normal.
VC = Venta en cuotas.
SI = 3 cuotas sin interés.
S2 = 2 cuotas sin interés.
NC = N Cuotas sin interés
VP = Venta Prepago.
details [].responseCode
String
Código de respuesta de la autorización. Valores posibles:
0 = Transacción aprobada.
-1 = Rechazo de transacción.
-2 = Transacción debe reintentarse.
-3 = Error en transacción.
-4 = Rechazo de transacción.
-5 = Rechazo por error de tasa.
-6 = Excede cupo máximo mensual.
-7 = Excede límite diario por transacción.
-8 = Rubro no autorizado.
details [].installmentsNumber
Number
Cantidad de cuotas. Largo máximo: 2
details [].installmentsAmount
Number
Monto de cada cuota. Largo máximo: 17
details [].commerceCode
String
Código comercio de la tienda. Largo: 6
details [].buyOrder
String
Orden de compra de la tienda. Largo máximo: 255
status
Text
Estado de la transacción (AUTHORIZED, FAILED). Largo máximo: 17
balance
Number
Monto restante para un detalle anulado. Largo máximo: 64

Anulación Webpay Transacción Completa

Permite generar el reembolso del total o parte del monto de una transacción completa. Dependiendo de la siguiente lógica de negocio la invocación a esta operación generará una reversa o una anulación:

  • Si se especifica un valor en el campo “amount” se ejecutará siempre una anulación.
  • Si se supera el tiempo máximo para ejecutar una reversa se ejecutará una anulación.
  • Si no se ha dado ninguno de los casos anteriores se ejecutará una reversa.

Transaction.refund()

Permite solicitar a Webpay la anulación de una transacción realizada previamente y que se encuentre vigente.

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
PUT /rswebpaytransaction/api/webpay/v1.0/transactions/{token}/refund
Tbk-Api-Key-Id: Próximamente...
Tbk-Api-Key-Secret: Próximamente...
Content-Type: application/json

{
  "buy_order": "415034240",
  "commerce_code": "597026010055",
  "amount": 1000
}

Parámetros

Nombre
tipo
Descripción
token
String
Token de la transacción. Largo: 64.
buyOrder
String
Orden de compra del mall. Largo máximo: 26
details [].commerceCode
String
Código comercio asignado por Transbank para la tienda perteneciente al mall a la cual corresponde esta transacción. Largo: 12.
amount
Decimal
(Opcional) Monto que se desea anular de la transacción. Largo máximo: 17.

Respuesta

// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
// Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
# Este SDK aún no se encuentra disponible
200 OK
Content-Type: application/json
{
  "type": "NULLIFY",
  "authorization_code": "123456",
  "authorization_date": "2019-03-20T20:18:20Z",
  "nullified_amount": 1000.00,
  "balance": 0.00
}
Nombre
tipo
Descripción
type
String
Tipo de reembolso (REVERSE. NULLIFY). Largo máximo: 10
authorizationCode
String
Código de autorización de la anulación. Largo máximo: 6
authorizationDate
String
Fecha y hora de la autorización.
nullifiedAmount
Decimal
Monto anulado. Largo máximo: 17
balance
Decimal
Saldo actualizado de la transacción (considera la venta menos el monto anulado). Largo máximo: 17
responseCode
Number
Código del resultado del pago. Si es exitoso es 0, de lo contrario el pago no fue realizado