JAMB PIN VENDING API
This section contains the recommended flow for integrating JAMB pin vending (UTME & Direct Entry) services on the VTpass RESTful API.
NB: Do not sell more than the approved pricing from JAMB.
If you have any questions, please let us know by contacting us.
Authentication
Learn about authentication from here.
Available Endpoints
To integrate the VTpass JAMB pin vending RESTful API, the endpoints below applies:
- Get Variation Codes: this returns variation codes for various JAMB pin types
- Verify JAMB Profile ID (get from JAMB Official Website)
- Purchase Product (Using the variation code gotten in the first step)
- Query transaction status
GET VARIATION CODES
Using a GET method, the VTpass variation codes for JAMB pin types can be accessed with the endpoint below:
Live: https://vtpass.com/api/service-variations?serviceID=jamb
Sandbox: https://sandbox.vtpass.com/api/service-variations?serviceID=jamb
FIELDS | Mandatory/Optional | TYPE | DESCRIPTION |
N/A | N/A | N/A | N/A |
EXPECTED RESPONSE
{ "response_description": "000", "content": { "ServiceName": "Jamb", "serviceID": "jamb", "convinience_fee": "0 %", "varations": [ { "variation_code": "utme", "name": "UTME", "variation_amount": "4700.00", "fixedPrice": "Yes" }, { "variation_code": "de", "name": "Direct Entry (DE)", "variation_amount": "4700.00", "fixedPrice": "Yes" } ] } }
VERIFY PROFILE ID
This endpoint allows you to verify the JAMB Profile ID (get from JAMB Official Website) before attempting to make payment.
This endpoint returns the customer name.
Using a POST method, you can verify a JAMB Profile ID with the endpoint below:
Live: https://vtpass.com/api/merchant-verify
Sandbox: https://sandbox.vtpass.com/api/merchant-verify
Smartcard number (billerscode) on sandbox: 0123456789
To simulate a failed Profile ID validation on sandbox, please use any number apart from the one provided above as the Profile ID.
FIELDS | Mandatory/Optional | TYPE | DESCRIPTION |
billersCode | M | Number | The Profile ID number you wish to make payment on.
On Sandbox |
serviceID | M | String | Service ID as specified by VTpass. In this case, it is jamb |
type | M | String | The code of the variation (as specified in the GET VARIATIONS method as variation_code). |
EXPECTED RESPONSE
{ "code": "000", "content": { "Customer_Name": "Capital James" } }
PURCHASE PRODUCT
Using a POST method, JAMB pin can be purchased with the endpoint below:
Live: https://vtpass.com/api/pay
Sandbox: https://sandbox.vtpass.com/api/pay
ServiceID: jamb
FIELDS | Mandatory/Optional | TYPE | DESCRIPTION |
request_id | M | String | This is a unique reference with which you can use to identify and query the status of a given transaction after the transaction has been executed. |
serviceID | M | String | Service ID as specified by VTpass. In this case, it is jamb |
variation_code | M | String | The code of the variation (as specified in the GET VARIATIONS method as variation_code). |
billersCode | M | String | The Profile ID you wish to make the payment on. In this case, it is 0123456789 |
amount | O | Number | The amount of the variation (as specified in the GET VARIATIONS endpoint as variation_amount)
This amount will be ignored as the variation code determine the price of the data bundle. |
phone | M | Number | The phone number of the customer or recipient of this service |
EXPECTED RESPONSE
{ "code": "000", "content": { "transactions": { "status": "delivered", "product_name": "Jamb", "unique_element": "0123456789", "unit_price": 4700, "quantity": 1, "service_verification": null, "channel": "api", "commission": 0, "total_amount": 4700, "discount": null, "type": "Education", "email": "sandbox@vtpass.com", "phone": "07061933309", "name": null, "convinience_fee": 0, "amount": 4700, "platform": "api", "method": "api", "transactionId": "16457951913329637534894519" } }, "response_description": "TRANSACTION SUCCESSFUL", "requestId": "20220225kseeoqytisffmfkd45jkfdjdjjeodlkuwowjswiwoqidkpwfiokl", "amount": "4700.00", "transaction_date": { "date": "2022-02-25 14:19:51.000000", "timezone_type": 3, "timezone": "Africa/Lagos" }, "purchased_code": "Pin : 367574683050773", "Pin": "Pin : 367574683050773" }
QUERY TRANSACTION STATUS
Using a POST method, transaction status can be queried with the endpoint below:
Live: https://vtpass.com/api/requery
Sandbox: https://sandbox.vtpass.com/api/requery
FIELDS | Mandatory/Optional | TYPE | DESCRIPTION |
request_id | M | String |
This is the reference with which you sent when purchasing a transaction after the transaction has been executed. |
EXPECTED RESPONSE
{ "code": "000", "content": { "transactions": { "status": "delivered", "product_name": "Jamb", "unique_element": "0123456789", "unit_price": 4700, "quantity": 1, "service_verification": null, "channel": "api", "commission": 0, "total_amount": 4700, "discount": null, "type": "Education", "email": "sandbox@vtpass.com", "phone": "07061933309", "name": null, "convinience_fee": 0, "amount": "4700.00", "platform": "api", "method": "wallet", "transactionId": "16457962683074858889585740" } }, "response_description": "TRANSACTION SUCCESSFUL", "requestId": "20220225kseeoqykrmtisffmfkd45jkfdjdjjeodlkuwowjswiwoqidkpwfioklfopfflw", "amount": "4700.00", "transaction_date": { "date": "2022-02-25 14:37:48.000000", "timezone_type": 3, "timezone": "Africa/Lagos" }, "purchased_code": "Pin : 367574683050773", "Pin": "Pin : 367574683050773" }