La API está conformada por las siguientes acciones.

  • Autenticación.
  • Creación de la solicitud pago.
  • Obtención estado de pago.
  • Envío de token.
  • Procesamiento del pago.
  • Obtención de pago.
  • Obtención de grupos y métodos de pago

Autenticación

El mismo se realiza utilizando OAUTH2 como método de autenticación.

El token obtenido es válido por 1 hora desde que se lo solicita.

Información de solicitud:
Propiedad Descripción
grant_type client_credentials
client_id ódigo de afiliado
client_secret Clave de acceso generada por el sistema de biopago para acceder al servicio

Una vez realizada esta petición, se debe utilizar el token de acceso para acceder al recurso deseado, para hacer esto, se envía el token en el header de la petición con la Key “Authorization” y como valor el token precedido de la palabra Bearer, como se ve en el siguiente ejemplo.


    POST https://web.ipg.com/ipg/web/api/Payment/ HTTP/1.1
    Accept-Encoding: gzip,deflate
    Content-Type: application/json
    Content-Length: 263
    Host: web.ipg.com
    Connection: Keep-Alive
    User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
    Authorization: Bearer NzI4ODIzNTA6MTIzNDU2Nzg=

Generar pago

Permite la creación de una solicitud de pago.

URL https://{baseUrl}/api/Payments
Método POST
Solicitud
{
    "letter":"V", //Letra de la cédula - V, E o P.
    "number":"32321323", //Número de cédula.
    "rifLetter":"J", //Letra de la cédula - J.
    "rifNumber":"000400415", //Número de RIF.
    "amount":"1000000", //Monto a combrar, DECIMAL.
    "currency":"1", // Tipo de moneda: 1-Bolivar Digital.
    "reference":"FAC0001-00001552", //Código de referecia o factura.
    "title":"Servicio de Cable", //Título para el pago, Ej: Servicio de Cable.
    "description":"Abono mes de marzo 2017", //Descripción del pago, Ej: Abono mes de marzo 2017.
    "email": "sumail@yahoo.com.ar"; //Mail para envio de token si corresponde
    "cellphone": "4122741219"; //Telefono para envio de token si corresponde en otros bancos
    "urlToReturn":"www.su-sitio.com/url-de-retorno" //URL de retrono al finalizar el pago.
}
Respuesta
{
    "responseCode": 0,
    "responseDescription": "Operación realizada con éxito.",
    "paymentId": "ff852cc5-09c3-4e66-a80e-3f70de0c00e7",
    "urlPayment": "https://192.168.100.111:4443/Biopago2/IPG2/payments/ff852cc5-09c3-4e66-a80e-3f70de0c00e7"
}

Petición

Valor Descripción Tipo
currency Tipo de moneda Número [1 - Bolívar Digital]
amount Monto a cobrar Decimal
reference Código de referencia o factura String (50)
title Título para el pago String (100)
description Descripción del pago String (200)
letter Letra de la cédula String (V, E o P)
number Número de cédula Número
urlToReturn URL de retorno al finalizar el pago String
cellphone Teléfono para envío de token si corresponde String (11)
email Mail para envío de token si corresponde String
Para personas juridícas
RifLetter Letra del rif. String (J,G o V)
RifNumber Número del rif Number

Respuesta

Propiedad Descripción
paymentIdIdentificador del pago
urlPaymentURL de pago
responseCodeResultado de la petición
responseDescriptionDescripción de la petición

Verificar pago

Obtiene la información de una solicitud de pago.

Petición

Como parte de la URL se debe agregar el parámetro paymentID obtenido en la generación del pago, en caso de haber usado la URL generada, este estaría incluido.

URL https://{baseUrl}/api/Payments/{paymentId}
Método GET
Respuesta
{
    "status": 3,
    "currency": 1,
    "amount": 5,
    "reference": "123",
    "title": "Ajedrez",
    "description": "Ajedrez Piezas + Tablero Madera Staunton Romano Paduak",
    "letter": "V",
    "number": "11203193",
    "transactionId": 0,
    "pan": "",
    "createdOn": "",
    "entityIPGId": 159,
    "urlToReturn": "http://www.google.com?id=92a90bcc-4ddb-4a7e-8aca-613f22f5bf88",
    "authorizationCode": "",
    "responseCode": 0,
    "responseDescription": "Operación realizada con éxito."
}
                
            

Respuesta

La petición devolverá la siguiente información:

Propiedad Descripción
statusId del Estado de la transacción
currencyTipo de moneda: 1-Bolivar Fuerte, 2-Dolar
amountMonto
referenceCódigo de referecia o factura
descriptionDescripción del pago
letterLetra de la cédula - V, E o P
numberNúmero de cédula
transactionIdIdentificador de la transacción al ser procesada
paymentMethodCodeCódigo de método de pago
paymentMethodDescriptionDescripción del método de pago
authorizationCodeCódigo de autorización de la transacción al ser procesada
createdOnFecha de la transaccion aceptada
entityIPGIdIdentificiador de entidad en Biopago
responseCode Resultado de la petición
urlToReturnURL de retorno
PanPAN enmascarado utilizado en laa transaccion

Envió de token

Permite enviar un token al usuario para autenticarlo. Solo para Mail o SMS.

URL https://{baseUrl}/api/SendTokens
Método POST
Solicitud
{
    "paymentId": "8ab2ea31-3dbd-42cc-8759-8277be6da758",
    "paymentGroupId": 57,
    "authenticationMethodId": 1
}
Respuesta
{
    "responseCode": 0,
    "responseDescription": "Operación realizada con éxito."
}

Petición

Valor Descripción Tipo
paymentId Identificador del pago. Este identificador se obtiene cuando se crea la solicitud de pago.
paymentGroupId Identificador del grupo de pago. Número
authenticationMethodId Identificador del método de autenticación. Número

Respuesta

Propiedad Descripción
responseCode Resultado de la petición.
responseDescription Descripción del resultdo.

Procesamiento del pago

Permite procesar el pago.

Como parte de la URL se debe agregar el parámetro paymentID obtenido en la generación del pago, en caso de haber usado la URL generada, este estaría incluido.

URL https://{baseUrl}/api/Payments/{paymentId}/process
Método POST
Solicitud
{
    "paymentMethodId": 1,
    "paymentGroupId": 57,
    "authenticationToken": "5M4pueNi",
    "authenticationMethodId": 1
}
Respuesta
{
    "result": "PaymentAccepted",
    "detail": {
    "status": "Processed",
    "currency": "1",
    "amount": "1500",
    "reference": "FAC0001-00001550",
    "title": "Servicio de Cable",
    "description": "Abono mes de marzo 2022",
    "letter": "V",
    "number": "27691865",
    "transactionId": "12122",
    "paymentMethodDescription": "Cuenta de Ahorro",
    "paymentMethodNumber": "",
    "paymentDate": "22/09/2022 15:25:45"
    },
    "responseCode": 0,
    "responseDescription": "Operación realizada con éxito."
}

Petición

Propiedad Descripción
paymentMethodId Identificador del método de pago.
paymentGroupId Identificador del grupo de pago.
authenticationToken Token de autenticación.
authenticationMethodId Identificador de método de autenticación.

Respuesta

Propiedad Descripción
responseCode Resultado de la petición.
responseDescription Descripción de la petición.
result Descripción de la petición.
detail Detalle de la compra.

Obtención de grupos y métodos de pago

Obtiene los grupos y métodos de pago con los que el afiliado puede operar, según el tipo de persona.

URL https://{baseUrl}/api/PaymentGroups?personType={personTypeId}
Método GET
Respuesta
[{
    "id": 1,
    "name": "Banco de Venezuela",
    "paymentMethods": [{
                        "id": 1,
                        "name": "Cuenta de Ahorro",
                        "shortName": "Cta. de Ahorro",
                        "paymentDetailType": 0},
                        {"id": 2,
                        "name": "Cuenta Corriente",
                        "shortName": "Cta. Corriente",
                        "paymentDetailType": 0},
                        {"id": 3,
                        "name": "Crédito Visa",
                        "shortName": "Visa",
                        "paymentDetailType": 0},
                        {"id": 4,
                        "name": "Crédito Mastercard",
                        "shortName": "Mastercard",
                        "paymentDetailType": 0}],
    "shortName": "BDV",
    "viewType": false},
    { "id": 2,
    "name": "Tarjetas de Crédito",
    "paymentMethods": [ {
                        "id": 0,
                        "name": "Otro Banco",
                        "shortName": "Otro Banco",
                        "paymentDetailType": 1}],
    "shortName": "Tarj. Crédito",
    "viewType": false
    }
]

Petición

Valores para personType

Respuesta

PaymentGoups
Código Descripción
id Identificador del grupo de pago
nameNombre del grupo de pago
shortNameNombre corto del grupo de pago
detailLista de métodos de pago
PaymentMethods
Propiedad Descripción
idIdentificador del método de pago
nameNombre del método de pago
shortNameNombre corto del método de pago
paymentDetailType[0-none 1-CardInfo]

Códigos

Métodos de autenticación de pago

Código Descripción
1SMS
2AMI
3EMAIL

Tipo de personas

Código Descripción
1 Persona Natural
2 Persona Jurídica

Estado de la transacción

Código Valor Descripción
0Pending Pendiente
1Processed Procesada
2InProcess En proceso
3Canceled Cancelada

Códigos de respuesta

En caso de que la petición no pueda ser procesada, la API devolverá un código de error en el en la propiedad responseCode.

Todos los mensajes son descriptos a continuación:

Código Valor Descripción
0Ok Peticion procesada con éxito
2InvalidLetter Letra de cédula inválida
3InvalidNumber Número de cédula inválido
4InvalidCurrency Moneda inválido
5InvalidTitle Título inválido
6InvalidReference Código de referencia inválido
7InvalidAmount Monto inválido
8MaxSmsExceeded Se supero la cantidad máxima de sms solicitados
9PaymentNotFound Pago no encontrado
12PaymentDateOutOfRange Fecha actual menor a la fecha de la transacción
13PaymentExpired Fecha de pago expiró
14InvalidInstrument Instrumento inválido
15FinancialError Error financiero
16MaxAttemptsExceeded Máximo número de intentos sobre el mismo token excedido
17InvalidSmsToken Token de autenticación inválido
18InvalidCellPhone Número de teléfono inválido
19InvalidSecureCode Código de seguridad inválido
20InvalidCardNumber Número de tarjeta inválido
21InvalidExpirationDate Fecha de vencimiento inválida
22SmsTokenExpired Token sms expiró
23InvalidDescription El campo Descripcion es muy largo
24InvalidEmail Email incorrecto
25EntityNotFound No se encuenra la entidad involucrada
26SmsNotFound No se encontró el SMS
27PaymentMethodNotFound No se encontró metodo de pago
29SendTokenError Error enviando el token para confirmar el pago
30PaymentGroupNotFound No se encuentra el grupo de pago
31AuthenticationMethodNotFound Método de autenticación inexistente
32TransactionNotFound Transacción no encontrada
34TokenUnavailable Token no está disponible
2InvalidRifLetter Letra del rif inválida
3InvalidRifNumber Número de rif inválido
99Unknown Error desconocido