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 |
paymentId | Identificador del pago |
urlPayment | URL de pago |
responseCode | Resultado de la petición |
responseDescription | Descripció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 |
status | Id del Estado de la transacción |
currency | Tipo de moneda: 1-Bolivar Fuerte, 2-Dolar |
amount | Monto |
reference | Código de referecia o factura |
description | Descripción del pago |
letter | Letra de la cédula - V, E o P |
number | Número de cédula |
transactionId | Identificador de la transacción al ser procesada |
paymentMethodCode | Código de método de pago |
paymentMethodDescription | Descripción del método de pago |
authorizationCode | Código de autorización de la transacción al ser procesada |
createdOn | Fecha de la transaccion aceptada |
entityIPGId | Identificiador de entidad en Biopago |
responseCode | Resultado de la petición |
urlToReturn | URL de retorno |
Pan | PAN 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 |
name | Nombre del grupo de pago |
shortName | Nombre corto del grupo de pago |
detail | Lista de métodos de pago |
PaymentMethods
Propiedad |
Descripción |
id | Identificador del método de pago |
name | Nombre del método de pago |
shortName | Nombre corto del método de pago |
paymentDetailType | [0-none 1-CardInfo] |
Códigos
Métodos de autenticación de pago
Código |
Descripción |
1 | SMS |
2 | AMI |
3 | EMAIL |
Tipo de personas
Código |
Descripción |
1 | Persona Natural |
2 | Persona Jurídica |
Estado de la transacción
Código |
Valor |
Descripción |
0 | Pending | Pendiente |
1 | Processed | Procesada |
2 | InProcess | En proceso |
3 | Canceled | 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 |
0 | Ok | Peticion procesada con éxito |
2 | InvalidLetter | Letra de cédula inválida |
3 | InvalidNumber | Número de cédula inválido |
4 | InvalidCurrency | Moneda inválido |
5 | InvalidTitle | Título inválido |
6 | InvalidReference | Código de referencia inválido |
7 | InvalidAmount | Monto inválido |
8 | MaxSmsExceeded | Se supero la cantidad máxima de sms solicitados |
9 | PaymentNotFound | Pago no encontrado |
12 | PaymentDateOutOfRange | Fecha actual menor a la fecha de la transacción |
13 | PaymentExpired | Fecha de pago expiró |
14 | InvalidInstrument | Instrumento inválido |
15 | FinancialError | Error financiero |
16 | MaxAttemptsExceeded | Máximo número de intentos sobre el mismo token excedido |
17 | InvalidSmsToken | Token de autenticación inválido |
18 | InvalidCellPhone | Número de teléfono inválido |
19 | InvalidSecureCode | Código de seguridad inválido |
20 | InvalidCardNumber | Número de tarjeta inválido |
21 | InvalidExpirationDate | Fecha de vencimiento inválida |
22 | SmsTokenExpired | Token sms expiró |
23 | InvalidDescription | El campo Descripcion es muy largo |
24 | InvalidEmail | Email incorrecto |
25 | EntityNotFound | No se encuenra la entidad involucrada |
26 | SmsNotFound | No se encontró el SMS |
27 | PaymentMethodNotFound | No se encontró metodo de pago |
29 | SendTokenError | Error enviando el token para confirmar el pago |
30 | PaymentGroupNotFound | No se encuentra el grupo de pago |
31 | AuthenticationMethodNotFound | Método de autenticación inexistente |
32 | TransactionNotFound | Transacción no encontrada |
34 | TokenUnavailable | Token no está disponible |
2 | InvalidRifLetter | Letra del rif inválida |
3 | InvalidRifNumber | Número de rif inválido |
99 | Unknown | Error desconocido |