> For the complete documentation index, see [llms.txt](https://payvantage.gitbook.io/payvantage.gitbook.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://payvantage.gitbook.io/payvantage.gitbook.io/education/jamb.md).

# JAMB

JAMB API

### Before sending any request, ensure that:

{% hint style="info" %}
Users must provide an email and a phone number to be used for vending.
{% endhint %}

{% hint style="info" %}
Users must also provide all server IPs that will connect to this system which has to be allowed for vending by Payvantage.
{% endhint %}

## Jamb Candidate Profile Request

## A candidiate’s profile is to be requested before vending. This is to ensure that the candidate being vend for is the right candidate

<mark style="color:green;">`POST`</mark> `{{baseUrl}}/api2/merchant/profreq/`

**Sample Request**

{\
"profilerequest": \
&#x20;      { \
&#x20;          "user": "user", \
&#x20;          "password": "password",\
&#x20;          "designate\_id": "345789000-2019", \
&#x20;           "mocktype": "mock",                            \
&#x20;            "hash":  "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"\
&#x20;       }\
}

This method would be used to vend jamb pin details using allowed IP addresses, username&#x20;

#### Request Body

| Name                                            | Type   | Description                                                                                       |
| ----------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------- |
| user<mark style="color:red;">\*</mark>          | String | This username should be passed at the time of connection to ensure that the User is a valid user. |
| password<mark style="color:red;">\*</mark>      | String | This password should be passed at the time of connection to ensure that the User is a valid user. |
| designate\_id<mark style="color:red;">\*</mark> | String | This is the unique profile code to be used for vending.                                           |
| hash<mark style="color:red;">\*</mark>          | String | SHA512 hash of the parameters.                                                                    |
| mocktype<mark style="color:red;">\*</mark>      | String | ‘mock’ or ‘non mock’. Candidate doing mock exam or not doing mock exam.                           |

{% tabs %}
{% tab title="200: OK Successful" %}

<pre class="language-json"><code class="lang-json">{
    "profileResponse": 
    {
        "designate_id": "345789000-2019",
        "firstname": "Abiola",
        "lastname": "Ashiru",
        "middlename": "Ayinde"
        "phonenos": "08033310835",
        "statuscode":"0",
        "statusmessage":"Successful",
        "hash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
<strong>    }
</strong>}

</code></pre>

{% endtab %}
{% endtabs %}

## Jamb Pin Request

## Jamb Pin Sample Request

```json
// Some code
{
 "airtimeRequest": 
    {
        "user": "user",
        "password": "password",
        "prodid": "88",
        "jambtype": "UTME",
        "mocktype": "mock",
        "amount": "7700",
        "utransid": "234RRTERW1AS788PN4",
        "hash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    }
}
```

Request Method and body parameters

## Jamb pin request

<mark style="color:green;">`POST`</mark> `{{baseUrl]}/api2/merchant/airtimereq/`

#### Request Body

| Name                                       | Type   | Description                                                                                                   |
| ------------------------------------------ | ------ | ------------------------------------------------------------------------------------------------------------- |
| user<mark style="color:red;">\*</mark>     | String | This username should be passed at the time of connection to ensure that the User is a valid user.             |
| password<mark style="color:red;">\*</mark> | String | This password should be passed at the time of connection to ensure that the User is a valid user.             |
| prodid<mark style="color:red;">\*</mark>   | String | This is the unique product id to be used for vending. Note ids in the Product Table below.                    |
| amount<mark style="color:red;">\*</mark>   | String | This is the amount for the pin purchased.                                                                     |
| jambtype<mark style="color:red;">\*</mark> | String | DE or UTME                                                                                                    |
| mocktype<mark style="color:red;">\*</mark> | String | mock’ or ‘non mock’. Candidate doing mock exam or not doing mock exam                                         |
| utransid<mark style="color:red;">\*</mark> | String | Unique transaction id from vendor end. Preferably not less than 16 characters and not more than 25 characters |
| hash <mark style="color:red;">\*</mark>    | String | SHA512 hash of the parameters                                                                                 |

{% tabs %}
{% tab title="200: OK Jamb Pin Response" %}

```json
{
  {
    "airtimeResponse": {
    "utransid": "234RRTERW1AS788PN4",
    "auditid": "K21345666344455556",
    "pinnos": "6988775",
    "airtimeStatus": "Success"
    "statusMessage": "Transaction Successful",
    "hash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}
```

{% endtab %}
{% endtabs %}

## Jamb Pin Response

<details>

<summary>Sample Response</summary>

```json
{
  {
    "airtimeResponse": {
    "utransid": "234RRTERW1AS788PN4",
    "auditid": "K21345666344455556",
    "pinnos": "6988775",
    "airtimeStatus": "Success"
    "statusMessage": "Transaction Successful",
    "hash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}
```

</details>

### Parameters

| Field         | Required/Optional | Data Type | Description                                                                                                        |
| ------------- | ----------------- | --------- | ------------------------------------------------------------------------------------------------------------------ |
| utransid      | Required          | String    | Unique transaction id as sent from vendor. Preferably not less than 16 characters and not more than 25 characters. |
| auditid       | Required          | String    | Return ID generated from Payvantage. For audit purposes.                                                           |
| pinnos        | Required          | String    | Pin number from JAMB                                                                                               |
| airtimeStatus | Required          | String    | This is status of the payment. ‘Success’ or ‘Failed’.                                                              |
| statusMessage | Optional          | String    | A description of the status.                                                                                       |
| hash          | Required          | String    | SHA512 hash of all parameters in the order.                                                                        |
