Go4Bill API Documentation

This documentation explains how to integrate with the Go4Bill API. All requests and responses are in JSON format.


Base URL

https://apitest.go4billapp.com/public/api

1. Register User

POST

Endpoint

/register

Description

Creates a new user account and sends an email verification code (OTP).

Request Body

Field Type Required Description
first_name String Yes User's first name.
last_name String Yes User's last name.
phone String Yes Unique phone number.
country String Yes User's country.
email Email Yes Unique email address.
password String Yes Minimum of 8 characters.
password_confirmation String Yes Must match password.

Example Request

{
    "first_name":"latifat",
    "last_name":"mella",
    "phone":"07064365473",
    "country":"Nigeria",
    "email":"oyegbemiledamola@gmail.com",
    "password":"password123",
    "password_confirmation":"password123"
}

Success Response

{
    "status": true,
    "message":"Registration successful. Please check your email for the verification code."
}

2. Admin Login

POST

Endpoint

/admin/login

Description

Authenticates an administrator and returns an access token upon successful login. The returned token should be included in the Authorization header when accessing protected admin endpoints.

Request Body

Field Type Required Description
email Email Yes Administrator email address.
password String Yes Administrator password.

Example Request

{
    "email":"marketadmin@go4bill.com",
    "password":"password123"
}

Success Response

{
    "status": true,
    "message": "Login successful.",
    "token": "1|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "user": {
        "id": 1,
        "first_name": "Market",
        "last_name": "Admin",
        "email": "marketadmin@go4bill.com",
        "role": "admin"
    }
}

3. User Login

POST

Endpoint

/login

Description

Authenticates a registered user and returns an access token that can be used to access protected user endpoints.

Request Body

Field Type Required Description
email Email Yes Registered email address.
password String Yes User password.

Example Request

{
    "email":"user@example.com",
    "password":"password123"
}

Success Response

{
    "status": true,
    "message": "Login successful.",
    "token": "2|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "user": {
        "id": 3,
        "first_name": "Latifat",
        "last_name": "Mella",
        "email": "user@example.com"
    }
}

2. Search Users

GET

Endpoint

/admin/users?search=yas

Description

Searches users by name, email or phone number.

Query Parameter

Name Description
search Keyword to search.

Example

GET /admin/users?search=yas

3. Link Card To User

POST

Endpoint

/update-card-unique-code

Description

Links an RFID/NFC card to an existing user account. Each card can only belong to one user.

Request Body

Field Type Required Description
user_id Integer Yes User ID.
card_unique_code String Yes Unique RFID/NFC Card Number.

Example Request

{
    "user_id":3,
    "card_unique_code":"12345675441234567890"
}

Success Response

{
    "status": true,
    "message":"Card unique code updated successfully.",
    "data":{
        "user_id":3,
        "card_unique_code":"12345675441234567890"
    }
}

4. Gate Entry Scanner

POST

Endpoint

/scanner/access

Description

This endpoint scans a user's RFID/NFC card before allowing entry into the market. The system automatically determines whether the user is:

Depending on the user's role, the system either:

Request Body

{
    "card_unique_code":"12345675441234567890"
}

Success Response

{
    "status":true,
    "message":"OPEN",
    "data":{
        "user_id":3,
        "name":"Latifat Mella",
        "role":"visitor",
        "amount_deducted":50,
        "balance":950
    }
}

5. Gate Exit Scanner

POST

Endpoint

/gate/exit

Description

This endpoint records the user's exit from the market. The system updates the user's last active gate entry and records the exit time.

Request Body

{
    "card_unique_code":"12345675441234567890"
}

Success Response

{
    "status":true,
    "message":"Exit recorded successfully."
}

General Notes