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://api-service.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://api-service.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
Use: 0123456789

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://api-service.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.

Click here to understand how to generate a valid request ID

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://api-service.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"
}