uBill DevelopersREST API · v1 Production

Complete API Documentation

All SMS and Billing API resources in one place - exact endpoints, complete Postman descriptions, headers, request bodies, response examples, and ready-to-use code.

21 endpoint API key auth JSON / XML
POST /v1/sms/send
1curl --request POST \2  --url api.ubill.dev/v1/sms/send \3  --header 'key: ••••••••'
200 OK{ "statusID": 0, "message": "SMS Sent" }
GETTING STARTED

Working with the uBill API

UBill API - provides programmatic access to our resources. You will be able to integrate our service into your system and communicate with clients easily.

API examples

API implementations in different languages, provided by different sources.

Prefer Postman?

You can also explore the documentation and API requests in uBill’s public Postman collection.

Open in Postman
Base URLhttps://api.ubill.dev
Versionv1
ProtocolHTTPS
EncodingUTF-8
01
SECURITY

Authentication

Requests to protected endpoints must include your company’s secret API key. Most endpoints accept it in the key header; several legacy GET/XML endpoints use the key query parameter.

Never expose your API key

Store the key in a server-side environment variable. Never place it in frontend JavaScript, a mobile application, or a public Git repository.

Request headers
key: YOUR_API_KEY
Content-Type: application/json
02
CONVENTIONS

Formats and statuses

The API primarily returns JSON responses. The statusID field identifies the result; a successful request has the value 0. The XML endpoint returns an XML response.

0SMS sent
1Received
2Not delivered
3Awaiting status
4Error
API REFERENCE

All resources and endpoints

The information below is synchronized with the latest version of the public Postman collection.

API GROUP

SMS API

10 endpoint

SMS API / brandName Create

brandName Create

API key · Header
POST https://api.ubill.dev /v1/sms/brandNameCreate

Response status

statusIDDescription
0BrandName Created
10The brandName field is empty
20The minimum number of characters in the brandName must be 2 and the maximum number 11
30Unauthorized markings are used in the brandName
40brandName has already been added
50Wait for the last added brandName to be authenticated
90Json Error
99General error

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Request body JSON

Request body
{
    "brandName" : "test"
}

Code examples

cURL · PHP · JavaScript
cURL
curl --request POST \
  --url 'https://api.ubill.dev/v1/sms/brandNameCreate' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "brandName" : "test"
}'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/sms/brandNameCreate',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'BODY'
{
    "brandName" : "test"
}
BODY,
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/sms/brandNameCreate',
  {
  method: 'POST',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: "{\n    \"brandName\" : \"test\"\n}"
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
brandName Create Example
Response · JSON
{
    "statusID": 0,
    "brandID": 1,
    "message": "BrandName Created"
}
SMS API / brandName Delete

brandName Delete

API key · Header
POST https://api.ubill.dev /v1/sms/brandNameDelete

Response status

statusIDDescription
0BrandName Deleted
10BrandName not found
90Json Error
99General error

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Request body JSON

Request body
{
    "brandID": 2
}

Code examples

cURL · PHP · JavaScript
cURL
curl --request POST \
  --url 'https://api.ubill.dev/v1/sms/brandNameDelete' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "brandID": 2
}'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/sms/brandNameDelete',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'BODY'
{
    "brandID": 2
}
BODY,
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/sms/brandNameDelete',
  {
  method: 'POST',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: "{\n    \"brandID\": 2\n}"
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
brandName Delete Example
Response · JSON
{
    "statusID": 0,
    "brandID": "2",
    "message": "BrandName Deleted"
}
SMS API / Get All BrandNames

Get All BrandNames

API key · Header
GET https://api.ubill.dev /v1/sms/brandNames
This endpoint does not include a separate description in the Postman collection.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/sms/brandNames' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/sms/brandNames',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/sms/brandNames',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Get All BrandNames Example
Response · JSON
{
    "statusID": 0,
    "data": [
        {
            "id": "1",
            "name": "test",
            "authorized": "1",
            "createdAt": "2020-11-14 20:42:44"
        },
        {
            "id": "2",
            "name": "test2",
            "authorized": "2",
            "createdAt": "2021-03-27 00:22:38"
        }
    ]
}
SMS API / Send SMS

Send SMS

API key · Query
GET https://api.ubill.dev /v1/sms/send?key=YOUR_API_KEY&brandID=1&numbers=9955XXXXXXXX,9955XXXXXXXX&text=message&stopList=false

Required Parameters

Parameter Description
key Secret API key used to authenticate requests. The key can be viewed and managed in the company settings.
brandID Unique brand identifier within the system.
numbers Comma-separated list of mobile phone numbers. Numbers must be in international format without 00 or +.
text SMS message content. Any Unicode characters are supported.

Optional Parameters

Parameter Description
stopList stopList=false - disables stop list validation. The message will be sent even if the recipient number exists in the stop list.
otp otp=true - marks the message as an OTP (one-time password / verification code).
OTP messages are processed with the highest priority.
⚠️ Must be used only for authentication codes.
sendTime Scheduled SMS delivery time.
Format: Y-m-d H:i (example: 2026-02-01 23:30).
The specified time must be in the future.
If omitted, the message is sent immediately.
callbackUrl Individual callback URL for this SMS request. Works only if a default callback URL is configured globally in the API application settings.

Notes

  • OTP messages are intended strictly for authentication flows (login, verification, password reset).

  • Misuse of the otp parameter may result in delivery restrictions or account limitations.


Response Status

statusID Description
0 SMS Sent
10 brandID not found
20 Numbers not found
30 Empty message text
40 Not enough SMS
50 Valid numbers not found
60 Invalid sendTime format. Use Y-m-d H:i
90 JSON Error
99 General error

⚠️ GET Method Limitations

  • The API does not enforce a strict limit on the number of recipient numbers.

  • Actual limits are imposed by URL and HTTP header size constraints (Cloudflare, proxies, browsers).

Practical Limits

  • ✅ Up to ~1500 numbers per request works reliably.

  • ⚠️ Around 2000+ numbers may result in Header overflow errors.

  • These errors occur before the request reaches the API, at the HTTP / proxy level.

Recommendation

  • Use GET only for small to medium requests.

  • For large recipient lists, always use POST.

URL parameters 5

keyqueryYOUR_API_KEY
brandIDquery1
numbersquery9955XXXXXXXX,9955XXXXXXXX
textquerymessage
stopListqueryfalse

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/sms/send?key=YOUR_API_KEY&brandID=1&numbers=9955XXXXXXXX,9955XXXXXXXX&text=message&stopList=false'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/sms/send?key=YOUR_API_KEY&brandID=1&numbers=9955XXXXXXXX,9955XXXXXXXX&text=message&stopList=false',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET'
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/sms/send?key=YOUR_API_KEY&brandID=1&numbers=9955XXXXXXXX,9955XXXXXXXX&text=message&stopList=false',
  {
  method: 'GET'
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Send SMS Example
Response · JSON
{
    "statusID": 0,
    "smsID": "117345",
    "message": "SMS Sent"
}
SMS API / Send SMS

Send SMS

API key · Header
POST https://api.ubill.dev /v1/sms/send

Headers

Key Value
key Your secret API key
Content-Type application/json

Required Parameters (JSON Body)

Parameter Description
brandID Unique brand identifier within the system.
numbers Array of mobile phone numbers. Numbers must be in international format without 00 or +. Example: ["9955XXXXXXXX","9955XXXXXXXX"]
text SMS message content. Any Unicode characters are supported.

Optional Parameters (JSON Body)

Parameter Description
stopList false - disables stop list validation. The message will be sent even if the recipient number exists in the stop list.
otp true - marks the message as an OTP (one-time password / verification code).
OTP messages are processed with the highest priority.
⚠️ Must be used only for authentication codes.
sendTime Scheduled SMS delivery time. Format: Y-m-d H:i (example: "2026-02-01 23:30"). Must be in the future. If omitted, the message is sent immediately.
callbackUrl Individual callback URL for this SMS request. Works only if a default callback URL is configured globally in the API application settings.

Notes

  • OTP messages are intended strictly for authentication flows (login, verification, password reset).

  • Misuse of the otp parameter may result in delivery restrictions or account limitations.

Response Status

statusID Description
0 SMS Sent
10 brandID not found
20 Numbers not found
30 Empty message text
40 Not enough SMS
50 Valid numbers not found
60 Invalid sendTime format. Use Y-m-d H:i
90 JSON Error
99 General error

⚠️ Limits & Notes

  • Max request body size: 100 MB → Requests exceeding this size will be rejected.

  • Cloudflare proxied timeout: 100 seconds → Requests taking longer will return 524 Timeout.

  • For large SMS batches, split requests into smaller chunks to avoid timeouts or memory issues.

  • Use stopList to avoid sending messages to blocked numbers.

Practical Observation from Testing:

In our tests, SMS messages were successfully sent to up to 500,000 numbers in a single request. Sending requests above this number may lead to memory, timeout, or request size issues. Actual limits may vary depending on text length, encoding, and server load.

Recommendation:

For safe and reliable operation, it is recommended to limit requests to around 100,000 numbers per batch.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Request body JSON

Request body
{
    "brandID": 1,
    "numbers": [
        9955XXXXXXXX,
        9955XXXXXXXX
    ],
    "text": "Message",
    "stopList": false, // Enable/disable checking numbers in the stop list
    "sendTime": "2026-02-01 23:01" // sendTime (optional)
}

Code examples

cURL · PHP · JavaScript
cURL
curl --request POST \
  --url 'https://api.ubill.dev/v1/sms/send' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "brandID": 1,
    "numbers": [
        9955XXXXXXXX,
        9955XXXXXXXX
    ],
    "text": "Message",
    "stopList": false, // Enable/disable checking numbers in the stop list
    "sendTime": "2026-02-01 23:01" // sendTime (optional)
}'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/sms/send',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'BODY'
{
    "brandID": 1,
    "numbers": [
        9955XXXXXXXX,
        9955XXXXXXXX
    ],
    "text": "Message",
    "stopList": false, // Enable/disable checking numbers in the stop list
    "sendTime": "2026-02-01 23:01" // sendTime (optional)
}
BODY,
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/sms/send',
  {
  method: 'POST',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: "{\n    \"brandID\": 1,\n    \"numbers\": [\n        9955XXXXXXXX,\n        9955XXXXXXXX\n    ],\n    \"text\": \"Message\",\n    \"stopList\": false, // Enable/disable checking numbers in the stop list\n    \"sendTime\": \"2026-02-01 23:01\" // sendTime (optional)\n}"
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Send SMS Example
Response · JSON
{
    "statusID": 0,
    "smsID": 111,
    "message": "SMS Sended"
}
SMS API / Send SMS - Multiple Text

Send SMS - Multiple Text

API key · Header
POST https://api.ubill.dev /v1/sms/send

Headers

Key Value
key Your secret API key
Content-Type application/json

Required Parameters (JSON Body)

Parameter Description
brandID Unique brand identifier within the system.
numbers Array of mobile phone numbers. Numbers must be in international format without 00 or +. Example: ["9955XXXXXXXX","9955XXXXXXXX"]
text SMS message content. Any Unicode characters are supported.

Optional Parameters (JSON Body)

Parameter Description
stopList false - disables stop list validation. The message will be sent even if the recipient number exists in the stop list.
otp true - marks the message as an OTP (one-time password / verification code).
OTP messages are processed with the highest priority.
⚠️ Must be used only for authentication codes.
sendTime Scheduled SMS delivery time. Format: Y-m-d H:i (example: "2026-02-01 23:30"). Must be in the future. If omitted, the message is sent immediately.
callbackUrl Individual callback URL for this SMS request. Works only if a default callback URL is configured globally in the API application settings.

Notes

  • OTP messages are intended strictly for authentication flows (login, verification, password reset).

  • Misuse of the otp parameter may result in delivery restrictions or account limitations.


Response Status

statusID Description
0 SMS Sent
10 brandID not found
20 Numbers not found
30 Empty message text
40 Not enough SMS
50 Valid numbers not found
60 Invalid sendTime format. Use Y-m-d H:i
90 JSON Error
99 General error

⚠️ Limits & Notes

  • Max request body size: 100 MB → Requests exceeding this size will be rejected.

  • Cloudflare proxied timeout: 100 seconds → Requests taking longer will return 524 Timeout.

  • For large SMS batches, split requests into smaller chunks to avoid timeouts or memory issues.

  • Use stopList to avoid sending messages to blocked numbers.

Practical Observation from Testing:

SMS per recipient Maximum numbers per request
1 400,000
2 200,000
3 150,000
4 120,000
5 100,000
6 50,000

Actual limits may vary depending on text length, encoding, and server load.

Recommendation:

For safe and reliable operation, it is recommended to limit requests to the numbers listed above per batch, according to the number of concatenated SMS messages being sent.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Request body JSON

Request body
{
    "brandID": 1,
    "numbers": [
        {
            "number": 9955XXXXXXXX,
            "text": "Hello, Nicholas"
        },
        {
            "number": 9955XXXXXXXX,
            "text": "Hello, George"
        }
    ],
    "stopList": false, // Enable/disable checking numbers in the stop list
    "sendTime": "2026-02-01 23:01" // sendTime (optional)
}

Code examples

cURL · PHP · JavaScript
cURL
curl --request POST \
  --url 'https://api.ubill.dev/v1/sms/send' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "brandID": 1,
    "numbers": [
        {
            "number": 9955XXXXXXXX,
            "text": "Hello, Nicholas"
        },
        {
            "number": 9955XXXXXXXX,
            "text": "Hello, George"
        }
    ],
    "stopList": false, // Enable/disable checking numbers in the stop list
    "sendTime": "2026-02-01 23:01" // sendTime (optional)
}'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/sms/send',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'BODY'
{
    "brandID": 1,
    "numbers": [
        {
            "number": 9955XXXXXXXX,
            "text": "Hello, Nicholas"
        },
        {
            "number": 9955XXXXXXXX,
            "text": "Hello, George"
        }
    ],
    "stopList": false, // Enable/disable checking numbers in the stop list
    "sendTime": "2026-02-01 23:01" // sendTime (optional)
}
BODY,
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/sms/send',
  {
  method: 'POST',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: "{\n    \"brandID\": 1,\n    \"numbers\": [\n        {\n            \"number\": 9955XXXXXXXX,\n            \"text\": \"Hello, Nicholas\"\n        },\n        {\n            \"number\": 9955XXXXXXXX,\n            \"text\": \"Hello, George\"\n        }\n    ],\n    \"stopList\": false, // Enable/disable checking numbers in the stop list\n    \"sendTime\": \"2026-02-01 23:01\" // sendTime (optional)\n}"
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Send SMS - Multiple Text Example
Response · JSON
{
    "statusID": 0,
    "smsID": 111,
    "message": "SMS Sended"
}
SMS API / Send SMS XML

Send SMS XML

API key · Query
POST https://api.ubill.dev /v1/sms/sendXml?key=YOUR_API_KEY

Response status

statusIDDescription
0SMS Sended
10brandID not found
20Numbers not found
30Empty message text
40Not enough SMS
50Valid numbers not found
90Json Error
99General error

⚠️ Limits & Notes

  • Max request body size: 100 MB → Requests exceeding this size will be rejected.

  • Cloudflare proxied timeout: 100 seconds → Requests taking longer will return 524 Timeout.

  • For large SMS batches, split requests to smaller chunks to avoid timeouts or memory issues.

  • Use stopList to avoid sending messages to blocked numbers.

URL parameters 1

keyqueryYOUR_API_KEY

Request body XML

Request body
<?xml version="1.0" encoding="UTF-8"?>
<request>
    <brandID>1</brandID>
    <numbers>9955XXXXXXXX</numbers>
    <text>test</text>
    <stopList>false</stopList> <!-- Enable/disable checking numbers in the stop list -->
</request>

Code examples

cURL · PHP · JavaScript
cURL
curl --request POST \
  --url 'https://api.ubill.dev/v1/sms/sendXml?key=YOUR_API_KEY' \
  --data '<?xml version="1.0" encoding="UTF-8"?>
<request>
    <brandID>1</brandID>
    <numbers>9955XXXXXXXX</numbers>
    <text>test</text>
    <stopList>false</stopList> <!-- Enable/disable checking numbers in the stop list -->
</request>'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/sms/sendXml?key=YOUR_API_KEY',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'BODY'
<?xml version="1.0" encoding="UTF-8"?>
<request>
    <brandID>1</brandID>
    <numbers>9955XXXXXXXX</numbers>
    <text>test</text>
    <stopList>false</stopList> <!-- Enable/disable checking numbers in the stop list -->
</request>
BODY
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/sms/sendXml?key=YOUR_API_KEY',
  {
  method: 'POST',
  body: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<request>\n    <brandID>1</brandID>\n    <numbers>9955XXXXXXXX</numbers>\n    <text>test</text>\n    <stopList>false</stopList> <!-- Enable/disable checking numbers in the stop list -->\n</request>"
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Send SMS XML Example
Response · XML
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <statusID>0</statusID>
    <smsID>11574</smsID>
    <message>SMS Sent</message>
</response>
SMS API / Delivery Report

Delivery Report

API key · Header
GET https://api.ubill.dev /v1/sms/report/{smsID}

Statuses

statusID Description
0 Sent
1 Received
2 Not delivered
3 Awaiting status
4 Error

URL parameters 1

smsIDpath{smsID}

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/sms/report/{smsID}' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/sms/report/{smsID}',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/sms/report/{smsID}',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Delivery Report Example
Response · JSON
{
    "statusID": 0,
    "result": [
        {
            "number": "9955XXXXXXXX",
            "statusID": "0"
        },
        {
            "number": "9955XXXXXXXX",
            "statusID": "0"
        }
    ]
}
SMS API / Get SMS Balance

Get SMS Balance

API key · Query
GET https://api.ubill.dev /v1/sms/balance?key=YOUR_API_KEY
This endpoint does not include a separate description in the Postman collection.

URL parameters 1

keyqueryYOUR_API_KEY

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/sms/balance?key=YOUR_API_KEY'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/sms/balance?key=YOUR_API_KEY',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET'
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/sms/balance?key=YOUR_API_KEY',
  {
  method: 'GET'
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Get SMS Balance Example
Response · JSON
{
    "statusID": 0,
    "sms": 5000
}
SMS API / Callback Report

Callback Report

API key · Query
GET https://example.com/callback?key=YourCallbackKey&smsID=12345678&number=9955XXXXXXXX&statusID=1&date=2026-02-01 12:02:02

Automatic Message Status (Callback)

The SMS API allows you to automatically receive the status of sent messages on your server via the Callback mechanism.

When a message status changes (Sent, Received, Not Delivered, etc.), the system will send a GET request to your specified HTTPS URL.

Callback URL requirements:

  • Must start with https://

  • Method: GET

  • Set in company API settings

Parameters

Parameter Description
key Callback validation key for your server
smsID Unique identifier of the message
number Recipient's mobile number (international format)
statusID Current status code of the message
date Status update timestamp (Y-m-d H:i:s)

Status Codes

statusID Description
0 Sent
1 Received
2 Not Delivered
3 Awaiting Status
4 Error

Example Callback Handling (PHP)

$key    = $_GET['key'] ?? null;
$smsID    = $_GET['smsID'] ?? null;
$number   = $_GET['number'] ?? null;
$statusID = $_GET['statusID'] ?? null;
$date     = $_GET['date'] ?? null;

// Validation: ensure the key matches your callback key
if ($key !== 'YourCallbackKey') {
    http_response_code(403);
    echo 'Forbidden';
    exit;
}

// Process the received status in your system
http_response_code(200);
echo 'OK';
?>

URL parameters 5

keyqueryYourCallbackKey
smsIDquery12345678
numberquery9955XXXXXXXX
statusIDquery1
datequery2026-02-01 12:02:02

Code examples

cURL · PHP · JavaScript

Response examples

0 example
No response example is available for this endpoint.
API GROUP

Billing API

11 endpoint

RESOURCE

Customers

4 endpoint

Billing API / Customers / Get All Customers

Get All Customers

API key · Header
GET https://api.ubill.dev /v1/customers
This endpoint does not include a separate description in the Postman collection.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/customers' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/customers',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/customers',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

0 example
No response example is available for this endpoint.
Billing API / Customers / Get Customer

Get Customer

API key · Header
GET https://api.ubill.dev /v1/customers/100001
This endpoint does not include a separate description in the Postman collection.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/customers/100001' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/customers/100001',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/customers/100001',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

0 example
No response example is available for this endpoint.
Billing API / Customers / Customer Search

Customer Search

API key · Header
GET https://api.ubill.dev /v1/customers/search?type=mobile&value=9955XXXXXXXX
This endpoint does not include a separate description in the Postman collection.

URL parameters 2

typequerymobile
valuequery9955XXXXXXXX

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/customers/search?type=mobile&value=9955XXXXXXXX' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/customers/search?type=mobile&value=9955XXXXXXXX',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/customers/search?type=mobile&value=9955XXXXXXXX',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

0 example
No response example is available for this endpoint.
Billing API / Customers / Customer Accounts

Customer Accounts

API key · Header
GET https://api.ubill.dev /v1/customers/accounts/100001
This endpoint does not include a separate description in the Postman collection.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/customers/accounts/100001' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/customers/accounts/100001',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/customers/accounts/100001',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Customer Accounts Example
Response · JSON
{
    "statusID": 0,
    "message": "Success",
    "draw": 0,
    "recordsTotal": 3,
    "recordsFiltered": 3,
    "data": [
        {
            "id": "170115",
            "name": "Example Customer",
            "mobile": "5XXXXXXXX",
            "personalNo": "XXXXXXXXXXX",
            "birthDate": "1991-12-08",
            "areaID": "1",
            "area": "ბათუმი - ბათუმი",
            "address": "",
            "column1": "",
            "column2": "",
            "tariffID": null,
            "tariffName": null,
            "tariffPrice": null,
            "balance": "0.00",
            "statusID": "1",
            "statusName": "აქტიური",
            "shutdownDate": null,
            "creditDate": null,
            "mac": null,
            "ip": null,
            "createdAt": "2023-12-02 11:41:37"
        },
        {
            "id": "170114",
            "name": "Example Customer",
            "mobile": "5XXXXXXXX",
            "personalNo": "XXXXXXXXXXX",
            "birthDate": "1991-12-08",
            "areaID": "1",
            "area": "ბათუმი - ბათუმი",
            "address": "",
            "column1": "",
            "column2": "",
            "tariffID": "1",
            "tariffName": "test2",
            "tariffPrice": "30.00",
            "balance": "-2.00",
            "statusID": "2",
            "statusName": "პასიური",
            "shutdownDate": null,
            "creditDate": null,
            "mac": null,
            "ip": null,
            "createdAt": "2023-11-20 23:56:52"
        },
        {
            "id": "100001",
            "name": "Example Customer",
            "mobile": "5XXXXXXXX",
            "personalNo": "XXXXXXXXXXX",
            "birthDate": "1991-12-08",
            "areaID": "2",
            "area": "თბილისი - თბილისი",
            "address": "Example Address",
            "column1": "",
            "column2": "",
            "tariffID": "1",
            "tariffName": "test2",
            "tariffPrice": "30.00",
            "balance": "-9.71",
            "statusID": "2",
            "statusName": "პასიური",
            "shutdownDate": "2022-07-13",
            "creditDate": null,
            "mac": "Cc:2d:21:0e:c9:41",
            "ip": "192.168.5.2",
            "createdAt": "2020-07-01 21:32:31"
        }
    ]
}
RESOURCE

Accounts

4 endpoint

Billing API / Accounts / Get All Accounts

Get All Accounts

API key · Header
GET https://api.ubill.dev /v1/accounts
This endpoint does not include a separate description in the Postman collection.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/accounts' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/accounts',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/accounts',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Get All Accounts Example
Response · JSON
{
    "statusID": 0,
    "message": "Success",
    "draw": 0,
    "recordsTotal": 70114,
    "recordsFiltered": 70114,
    "data": [
        {
            "id": "170115",
            "name": "Example Customer",
            "mobile": "5XXXXXXXX",
            "personalNo": "XXXXXXXXXXX",
            "birthDate": "1991-12-08",
            "areaID": "1",
            "area": "თბილისი - თბილისი",
            "address": "",
            "column1": "",
            "column2": "",
            "tariffID": null,
            "tariffName": null,
            "tariffPrice": null,
            "balance": "0.00",
            "statusID": "1",
            "statusName": "აქტიური",
            "shutdownDate": null,
            "creditDate": null,
            "mac": null,
            "ip": null,
            "createdAt": "2023-12-02 11:41:37"
        },
        {
            "id": "170114",
            "name": "Example Customer",
            "mobile": "5XXXXXXXX",
            "personalNo": "XXXXXXXXXXX",
            "birthDate": "1991-12-08",
            "areaID": "1",
            "area": "ბათუმი - ბათუმი",
            "address": "",
            "column1": "",
            "column2": "",
            "tariffID": "1",
            "tariffName": "test2",
            "tariffPrice": "30.00",
            "balance": "-2.00",
            "statusID": "2",
            "statusName": "პასიური",
            "shutdownDate": null,
            "creditDate": null,
            "mac": null,
            "ip": null,
            "createdAt": "2023-11-20 23:56:52"
        }
    ]
}
Billing API / Accounts / Get Account

Get Account

API key · Header
GET https://api.ubill.dev /v1/accounts/100001
This endpoint does not include a separate description in the Postman collection.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/accounts/100001' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/accounts/100001',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/accounts/100001',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Get Account Example
Response · JSON
{
    "statusID": 0,
    "message": "Success",
    "data": [
        {
            "id": "100001",
            "name": "Example Customer",
            "mobile": "5XXXXXXXX",
            "personalNo": "XXXXXXXXXXX",
            "birthDate": "1991-12-08",
            "areaID": "2",
            "area": "თბილისი",
            "address": "Example Address",
            "column1": "",
            "column2": "",
            "tariffID": "1",
            "tariffName": "test2",
            "tariffPrice": "30.00",
            "balance": "-9.00",
            "statusID": "2",
            "statusName": "პასიური",
            "shutdownDate": null,
            "creditDate": null,
            "mac": "Cc:2d:21:0e:c9:41",
            "ip": "192.168.5.2",
            "createdAt": "2020-07-01 21:32:31"
        }
    ]
}
Billing API / Accounts / Accounts Search

Accounts Search

API key · Header
GET https://api.ubill.dev /v1/accounts/search?type=mobile&value=9955XXXXXXXX
This endpoint does not include a separate description in the Postman collection.

URL parameters 2

typequerymobile
valuequery9955XXXXXXXX

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/accounts/search?type=mobile&value=9955XXXXXXXX' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/accounts/search?type=mobile&value=9955XXXXXXXX',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/accounts/search?type=mobile&value=9955XXXXXXXX',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

0 example
No response example is available for this endpoint.
Billing API / Accounts / Set Credit

Set Credit

API key · Header
POST https://api.ubill.dev /v1/accounts/setCredit
This endpoint does not include a separate description in the Postman collection.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Request body JSON

Request body
{
    "accountID": 170114,
    "date": "2023-12-10"
}

Code examples

cURL · PHP · JavaScript
cURL
curl --request POST \
  --url 'https://api.ubill.dev/v1/accounts/setCredit' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "accountID": 170114,
    "date": "2023-12-10"
}'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/accounts/setCredit',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'BODY'
{
    "accountID": 170114,
    "date": "2023-12-10"
}
BODY,
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/accounts/setCredit',
  {
  method: 'POST',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: "{\n    \"accountID\": 170114,\n    \"date\": \"2023-12-10\"\n}"
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Set Credit Example
Response · JSON
{
    "statusID": 0,
    "message": "Success"
}
RESOURCE

Payments

3 endpoint

Billing API / Payments / Get Payments

Get Payments

API key · Header
GET https://api.ubill.dev /v1/payments
This endpoint does not include a separate description in the Postman collection.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/payments' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/payments',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/payments',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Get Payments Example
Response · JSON
{
    "status": true,
    "draw": 0,
    "recordsTotal": 9,
    "recordsFiltered": 9,
    "data": [
        {
            "id": "9",
            "accountID": "100001",
            "balance": "0.29",
            "sum": "-10.00",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "2",
            "typeName": "კორექტირება",
            "admin": "Example Customer",
            "date": "2022-06-11 10:07:13"
        },
        {
            "id": "8",
            "accountID": "100001",
            "balance": "-0.71",
            "sum": "1.00",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "1",
            "typeName": "დამატება",
            "admin": "Example Customer",
            "date": "2022-06-10 22:24:14"
        },
        {
            "id": "7",
            "accountID": "170099",
            "balance": "-1.00",
            "sum": "20.00",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "2",
            "typeName": "კორექტირება",
            "admin": "Example Customer",
            "date": "2022-01-29 16:39:50"
        },
        {
            "id": "6",
            "accountID": "170099",
            "balance": "0.00",
            "sum": "-1.00",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "2",
            "typeName": "კორექტირება",
            "admin": "Example Customer",
            "date": "2022-01-29 16:39:39"
        },
        {
            "id": "5",
            "accountID": "100001",
            "balance": "39.06",
            "sum": "10.00",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "1",
            "typeName": "დამატება",
            "admin": "Example Customer",
            "date": "2021-12-22 17:16:43"
        },
        {
            "id": "4",
            "accountID": "100001",
            "balance": "-0.94",
            "sum": "20.00",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "1",
            "typeName": "დამატება",
            "admin": "Example Customer",
            "date": "2021-12-22 17:14:57"
        },
        {
            "id": "3",
            "accountID": "100001",
            "balance": "0.06",
            "sum": "1.00",
            "comment": null,
            "transactionID": "t1",
            "paySystem": "TBCPAY",
            "apiStatus": "0",
            "typeID": "5",
            "typeName": "ჩარიცხვა",
            "admin": null,
            "date": "2021-11-13 15:26:53"
        },
        {
            "id": "2",
            "accountID": "100001",
            "balance": "-0.94",
            "sum": "1.00",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "1",
            "typeName": "დამატება",
            "admin": "Example Customer",
            "date": "2021-01-18 10:31:32"
        },
        {
            "id": "1",
            "accountID": "100001",
            "balance": "-1.94",
            "sum": "1.00",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "1",
            "typeName": "დამატება",
            "admin": "Example Customer",
            "date": "2021-01-18 10:31:14"
        }
    ]
}
Billing API / Payments / Get Payments by account

Get Payments by account

API key · Header
GET https://api.ubill.dev /v1/payments/account/100001
This endpoint does not include a separate description in the Postman collection.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Code examples

cURL · PHP · JavaScript
cURL
curl --request GET \
  --url 'https://api.ubill.dev/v1/payments/account/100001' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/payments/account/100001',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/payments/account/100001',
  {
  method: 'GET',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Get Payments by account Example
Response · JSON
{
    "statusID": 0,
    "message": "Success",
    "data": [
        {
            "id": "89",
            "accountID": null,
            "balance": "-1.94",
            "sum": "1",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "1",
            "typeName": "დამატება",
            "admin": "Example Customer",
            "date": "2021-01-18 10:31:14"
        },
        {
            "id": "90",
            "accountID": null,
            "balance": "-0.94",
            "sum": "1",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "1",
            "typeName": "დამატება",
            "admin": "Example Customer",
            "date": "2021-01-18 10:31:32"
        },
        {
            "id": "537",
            "accountID": null,
            "balance": "0.06",
            "sum": "1",
            "comment": null,
            "transactionID": "t1",
            "paySystem": "TBCPAY",
            "apiStatus": "0",
            "typeID": "5",
            "typeName": "ჩარიცხვა",
            "admin": null,
            "date": "2021-11-13 15:26:53"
        },
        {
            "id": "641",
            "accountID": null,
            "balance": "-0.94",
            "sum": "20",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "1",
            "typeName": "დამატება",
            "admin": "Example Customer",
            "date": "2021-12-22 17:14:57"
        },
        {
            "id": "642",
            "accountID": null,
            "balance": "39.06",
            "sum": "10",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "1",
            "typeName": "დამატება",
            "admin": "Example Customer",
            "date": "2021-12-22 17:16:43"
        },
        {
            "id": "1720",
            "accountID": null,
            "balance": "-0.7057142857142757",
            "sum": "1",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "1",
            "typeName": "დამატება",
            "admin": "Example Customer",
            "date": "2022-06-10 22:24:14"
        },
        {
            "id": "1729",
            "accountID": null,
            "balance": "0.29428571428572",
            "sum": "-10",
            "comment": "",
            "transactionID": null,
            "paySystem": null,
            "apiStatus": "0",
            "typeID": "2",
            "typeName": "კორექტირება",
            "admin": "Example Customer",
            "date": "2022-06-11 10:07:13"
        }
    ]
}
Billing API / Payments / Add Payment

Add Payment

API key · Header
POST https://api.ubill.dev /v1/payments/add
This endpoint does not include a separate description in the Postman collection.

Request headers 2

KeyValueSource
keyYOUR_API_KEYAuthentication
Content-Typeapplication/jsonHeader

Request body JSON

Request body
{
    "accountID" : 170114,
    "sum" : 1,
    "comment": "text",
    "paySystem": "WEB"
}

Code examples

cURL · PHP · JavaScript
cURL
curl --request POST \
  --url 'https://api.ubill.dev/v1/payments/add' \
  --header 'key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "accountID" : 170114,
    "sum" : 1,
    "comment": "text",
    "paySystem": "WEB"
}'
PHP
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.ubill.dev/v1/payments/add',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'BODY'
{
    "accountID" : 170114,
    "sum" : 1,
    "comment": "text",
    "paySystem": "WEB"
}
BODY,
    CURLOPT_HTTPHEADER => [
        'key: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
JavaScript
const response = await fetch(
  'https://api.ubill.dev/v1/payments/add',
  {
  method: 'POST',
  headers: {
    'key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: "{\n    \"accountID\" : 170114,\n    \"sum\" : 1,\n    \"comment\": \"text\",\n    \"paySystem\": \"WEB\"\n}"
  }
);

const data = await response.json();
console.log(data);

Response examples

1 example
Add Payments Example
Response · JSON
{
    "statusID": 0,
    "message": "Success",
    "data": {
        "id": "11521"
    }
}
NEED HELP?

Integration support

The uBill team can help with any API integration questions.

Contact us
Infrastructure & Technologies

We use leading and reliable technologies

uBill is built on modern tools that ensure stability, security, and seamless scalability

Back to top