Inicio

Guías

Referencia

Plugins

Credibanco gateway.

Es el servicio que se encarga de comunicarse con el api Rest de Credibanco. Este microservicio está hecho con la base de Microservicio Gateway que se debe usar para los gateways implementados por microservicios.

Flujo de comunicación con credibanco.

En el siguiente diagrama se muestra la comunicación del microservicio con openpay y la API de credibanco.

1. Preautorizar con API Openpay

Consideraciones para el API Openpay

Siempre que se quiera utilizar el API Openpay se deberá contar con la llave privada la cual debe estar vigente y viajar en el Header de la solicitud, este valor sirve para realizar Basic Authentication y así poder consumir el API.

Las llaves se pueden consultar desde Dashboard al ingresar en la parte superior derecha dando clic en el icono de engranaje,entrando a la opción “Mi cuenta” misma en la que encontrarás la sección Llaves de acceso o bien en la opción Credenciales de acceso para el API.

Endpoints API Openpay

Endpoints disponibles para la generación de cargos con credibanco V2 desde la API para los diferentes ambientes para comercio y cliente:

 

Método: POST

 

Sandbox

  • https://sandbox-api.openpay.co/v1/{MERCHANT_ID}/charges
  • https://sandbox-api.openpay.co/v1/{MERCHANT_ID}/ customers/{CUSTOMER_ID}/charges
  • https://sandbox-api.openpay.co/v1/{MERCHANT_ID}/ charges/{ID_TRANSACTION}/capture

 

Producción

  • https://api.openpay.co/v1/{MERCHANT_ID}/charges
  • https://api.openpay.co/v1/{MERCHANT_ID}/ customers/{CUSTOMER_ID}/charges
  • https://api.openpay.co/v1/{MERCHANT_ID}/ charges/{ID_TRANSACTION}/capture

Códigos de respuesta API

Código HTTP

Descripción

200

Ok

400

Bad Request

401

Unauthorized

422

Unprocessable Entity

500

Internal Server Error

503

Service Unavailable

Crear transacción con Token

Para utilizar este servicio se debe tener un Token, el cual puede ser obtenido de las siguientes maneras:

  1. Creación de nuevo Token. – Si no se cuenta con un token previo, se debe utilizar el servicio de creación de token para crear uno.

Una vez que tengas un token este deberá ser usado la propiedad source_id, descrito en la siguiente tabla que especifica los campos que se pueden enviar en la petición del API:

PropiedadDescripción
method

string(requerido)

Debe contener el valor card para indicar que el cargo se hará de una tarjeta.

source_id

string (requerido, longitud = 45)

ID de la tarjeta guardada o el id del token creado de donde se retirarán los fondos.

amount

numeric (requerido)

Cantidad del cargo. Debe ser una cantidad mayor a cero, con hasta dos dígitos decimales.

currency

string (opcional)

Tipo de moneda del cargo. Se soportan los siguientes tipos de monedas: Pesos Colombianos (COP) y Dólares Americanos (USD)

description

string (requerido, longitud = 250)

Una descripción asociada al cargo.

order_id

string (opcional, longitud = 100)

Identificador único del cargo. Debe ser único entre todas las transacciones.

device_session_id

string (requerido, longitud = 32)

Identificador del dispositivo generado con la herramienta antifraudes

capture

boolean (opcional, default = true)

Indica si el cargo se hace o no inmediatamente, cuando el valor es false el cargo se maneja como una autorización (o preautorización) y solo se reserva el monto para ser confirmado o cancelado en una segunda llamada.

customer

Objeto (Opcional)

Información del cliente al que se le realiza el cargo. Ver objeto Customer.

Se puede ocupar los mismos parámetros usados en la creación de un cliente pero no se creará una cuenta al cliente.

Nota: Este parámetro solo se puede utilizar creando el cargo a nivel comercio

Si desea crear un cliente y llevar un historial de sus cargos consulte cómo crear un cliente y realice el cargo a nivel cliente.

payment_plan

objeto (opcional)

Datos del plan de meses sin intereses que se desea utilizar en el cargo. Ver Objeto PaymentPlan.

metadata

list(key, value) (opcional)

Listado de campos personalizados de antifraude, estos campos deben de apegarse a las reglas para creación de campos personalizados de antifraude

send_email

boolean (opcional)

Usado para cargos de tipo redirect. Indica si se desea enviar un email que direccione al formulario de pago de Openpay.

redirect_url

string (requerido)

Usado para cargos de tipo redirect. Indica la url a la que redireccionar despues de una transaccion exitosa en el fomulario de pago de openpay.

Nota: Este parámetro solo se puede utilizar si se especifica el manejo de 3D Secure.

use_3d_secure

string (opcional)

Se debe especificar este parámetro en true para manejar 3D Secure.

iva

numeric (opcional)

Monto de iva . Debe ser una cantidad igual o mayor a cero.

Ejemplo de petición para pre-autorización:

Header: Basic {llave privada vigente}

{
"source_id" : "kauf2lhqt1ttwzfqtzmz",
"method" : "card",
"amount" : 10, 
"iva": 1,
"currency":"COP",
"description" : "Test de pago con iva en credibanco",
"order_id" : "id-{{$timestamp}}",
"device_session_id" : "{{$timestamp}}",
"customer" : {
     "name" : "Aaron Hernandez",
     "phone_number" : "5526927856",
     "email" : "joseaaron.hernandez@openpay.mx"
},
"capture": false
}

El campo “capture” será la bandera que identifique al momento de crear el cargo si la transacción es una preautorización.

Envío de URL de autenticación

La respuesta a la petición de creación de cargo será un JSON con la información de la transacción a pagar por el usuario. Se debe poner especial atención en los siguientes parámetros:

  • id – ID único de la transacción creada, debe ser almacenado ya que será por medio de este ID que se envíe la respuesta una vez que el usuario realice la autenticación 3D Secure.

Ejemplo de la respuesta (Pre-autorización):

{
   "id": "trvha4oojf43oolp4b1q",
   "authorization": "144338",
   "operation_type": "in",
   "transaction_type": "charge",
   "status": "in_progress",
   "conciliated": true,
   "iva": "1",
   "creation_date": "2024-07-24T13:43:31-06:00",
   "operation_date": "2024-07-24T13:43:39-06:00",
   "description": "test de pago con iva credibanco",
   "error_message": null,
   "order_id": "id-1721850211",
   "card": {
       "type": "credit",
       "brand": "visa",
       "address": null,
       "card_number": "455986XXXXXX6643",
       "holder_name": "Aaron Hernandez",
       "expiration_year": "28",
       "expiration_month": "07",
       "allows_charges": true,
       "allows_payouts": false,
       "bank_name": "BANCO DAVIVIENDA",
       "bank_code": "000"
   },
   "gateway_card_present": "CREDIBANCO",
   "amount": 10.00,
   "currency": "COP",
   "customer": {
       "name": "Aaron Hernandez",
       "last_name": null,
       "email": "joseaaron.hernandez@openpay.mx",
       "phone_number": "5526927856",
       "address": null,
       "creation_date": "2024-07-24T13:43:31-06:00",
       "external_id": null,
       "clabe": null
   },
   "method": "card"
}

Petición para la captura (confirmación) en API:

Para confirmar la transacción es necesario de 2 datos importantes:
  • Identificador del comercio (ID): mutdljy8gcsskp0ghx5t
  • Identificador de la transacción inicial (ID): tregvvvmifx4u5jigq9j
endpoint:  /v1/mutdljy8gcsskp0ghx5t/charges/tregvvvmifx4u5jigq9j/capture amount: 0000

2. Preautorizar Cobro Con Link

El  link de cobro se debe generar desde el API

POST: https://api.openpay.co/v1/myvogimhs93x3nbifdj5/checkouts

{
"amount": 200,
"iva": "0",
"origin": "DASHBOARD",
"description": "ocean mall",
"currency": "COP",
"expiration_date": "2025-07-31 18:31",
"order_id": "order_44444444",
"redirect_url": "",
"plan_id_public": "",
"capture": false,
"customer" : {
"name" : "Daniela",
"last_name" : "Caro",
"phone_number" : "4423456723",
"email" : "daniela.caro@test.co"
}
}

Al ingresar en link devuelto se mostrar la pantalla para seleccionar el método de pago.

En la cual se deberá seleccionar la opción Pago con tarjeta, después se mostrará la siguiente pantalla:

En la pantalla anterior se deberán de ingresar los datos requeridos para poder completar los pagos, al completar el pago se retorna la siguiente pantalla, mostrando que la transacción aún no se encuentra completada:

Al ingresar al dashboard a la opción de tarjetas -> Pagos la transacción se debe mostrar con estatus pendiente: como se muestra a continuación:

Este estatus indica que aún no se ha confirmado por parte del comercio.

2.2 Capturar Cobro Con Link

El comercio es quien debe confirmar la transacción desde su dashboard con el siguiente botón:

La transacción automáticamente al confirmar la transacción va a quedar aprobada

Tarjetas de prueba para realizar transacciones:

No. tarjeta

Mes

Año

CVV

Marca

Flujo

Ventana de Prueba

4559860096524495

05

24

480

VISA

Charge

SI


4916479186327004

02

25

994

VISA

Charge

SI


4111111111111110

08

24

123

VISA

Charge

NO