Integrate telecom payments, inquiries, games, gift cards, balance tracking, and webhooks through
one structured reference built for implementation and production support.
No matching documentation foundTry a service name, endpoint, field, or response status.
01
Start here
Getting started
This chapter introduces the complete integration journey—from obtaining access credentials and authenticating requests to submitting transactions, tracking their outcomes, and handling asynchronous notifications safely.
Integration journey
Understand the integration journey before sending your first transaction.
Begin by preparing your credentials and authentication flow. Then explore the available capabilities, follow the documented request contract for the required operation, submit each transaction with a unique reference, and track it until a final outcome is confirmed.
Production base URLhttps://free-sadad.com/rest-api
1AuthenticateObtain secure API access.
2ExploreReview the available inquiries, catalogs, and payment operations.
3SubmitSend one unique transaction reference with the request.
4TrackConfirm the final result through status queries or webhooks.
API configuration
Request and response conventions
Request methodPOST
Content-Typeapplication/json
Response formatJSON
Character encodingUTF-8
Important security notice
Protect the integration boundary
Keep API credentials secure and never expose them in client-side code.
Use HTTPS for all API requests to ensure data encryption.
Implement proper error handling without exposing sensitive information.
Rotate API tokens regularly for enhanced security.
When a payment outcome is uncertain, query its original TransactionID instead of submitting it again.
02
Access
Authentication
Create the login signature locally, exchange it for an access token, and attach that token to every protected request.
Retrieve the product identifiers, prices, limits, required fields, bundle codes, and recharge categories needed before submitting a payment.
Catalog requests
Load product data before payment
Catalog requests use NetworkNumber = 0. Use the returned LinkCode, OfferCode, identifiers, limits, and required fields in the corresponding payment request.
Catalog availability and prices may vary by account. The response examples below are generated from the current catalog; always use the latest API response when submitting a payment.
Games and gift cardsServiceNumber = 4
Bundle offersServiceNumber = 5
Recharge categoriesServiceNumber = 7
POST
Catalog
Get Games and Gift Cards Categories
Access token required
Endpointhttps://free-sadad.com/rest-api
Retrieve available products with pricing, quantity limits, LinkCode, and required fulfillment fields.
The message contains the reason the query could not be completed.
Error response
{
"status": false,
"message": "Error Message"
}
06
Execution
Payment operations
Submit recharge, payment, bundle, game, and digital-product operations through one authenticated endpoint, then read the operation outcome from the standard response envelope.
POST
Payment
Submit a payment
Access token required
Endpointhttps://free-sadad.com/rest-api
Select the destination using NetworkNumber and ServiceNumber, include the service-specific fields, and assign one unique TransactionID to the payment.
Request headers
Required on protected requests
Header
Value
Purpose
api-token
Login access_token
Authenticates the API session.
Content-Type
application/json
Declares a JSON request body.
Accept
application/json
Requests a JSON response.
Accepted payment outcomesRead operationStatus
When status is true, the payment request was accepted. Use operationStatus to determine its business outcome.
1CompletedThe payment finished successfully.
-1PendingKeep the operation pending and query it later.
0FailedThe accepted operation reached a failed result.
Whether the payment request was accepted. When true, read operationStatus for the payment outcome.
operationStatus
The operation state: 1 successful, 0 failed, or -1 pending.
agentBalance
The agent account balance after the transaction.
price
The price charged for the transaction.
commission
The deferred commission value returned for the operation when available.
commissionCurrency
The currency identifier of the returned commission, or null when no commission currency applies.
message
Notes or remarks describing the operation result.
transactionID
The unique transaction identifier supplied by your system.
referenceID
The transaction reference generated by the platform.
statusCode
The HTTP status code represented in the response payload.
Request rejectionstatus = false
A response with status = false means the request could not be accepted. It is not the same as an accepted operation whose operationStatus is 0.
Rejected request response
{
"status": false,
"message": "The request could not be accepted. Review the submitted fields and try again.",
"statusCode": 400
}
Payment request examplesGenerated from the documented service directory
Use the network and service identifiers shown for each operation. Catalog-driven values such as OfferCode, LinkCode, required fields, and quantity limits must come from the corresponding catalog response available to your account.
103
Yemen Mobile · Network 1
Yemen Mobile Recharge
Recharges the subscriber balance and can activate a selected bundle in the same request.
NetworkNumber1
ServiceNumber103
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
1
Required
The network identifier that owns the selected payment service.
ServiceNumber
103
Required
The payment service identifier within the selected network.
TransactionID
PAY-1-103-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The monetary value to recharge or pay to the Yemen Mobile subscriber number.
OfferCode
OFFER_CODE
Optional
Send a valid Yemen Mobile OfferCode to activate a bundle together with the balance recharge.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Recharge balanceRequest and response example
Recharge the subscriber balance without activating a bundle.
Recharges a YOU subscriber using a predefined charge category.
NetworkNumber2
ServiceNumber201
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
2
Required
The network identifier that owns the selected payment service.
ServiceNumber
201
Required
The payment service identifier within the selected network.
TransactionID
PAY-2-201-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The number of recharge units. The platform multiplies this value by the configured unit price to calculate the final transaction price. For example, 10 units at a unit price of 1.21 produce a transaction price of 12.1.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Recharge using a charge categoryRequest and response example
Send the category value returned by the recharge-categories catalog.
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
2
Required
The network identifier that owns the selected payment service.
ServiceNumber
204
Required
The payment service identifier within the selected network.
TransactionID
PAY-2-204-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The number of recharge units. The platform multiplies this value by the configured unit price to calculate the final transaction price. For example, 10 units at a unit price of 1.21 produce a transaction price of 12.1.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Recharge a dealer balanceRequest and response example
Recharge the selected YOU dealer account with the requested amount.
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
2
Required
The network identifier that owns the selected payment service.
ServiceNumber
205
Required
The payment service identifier within the selected network.
TransactionID
PAY-2-205-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The number of recharge units. The platform multiplies this value by the configured unit price to calculate the final transaction price. For example, 10 units at a unit price of 1.21 produce a transaction price of 12.1.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Recharge an open valueRequest and response example
Recharge the subscriber with the requested number of units.
Recharges a Sabafon subscriber using a predefined category.
NetworkNumber3
ServiceNumber301
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
3
Required
The network identifier that owns the selected payment service.
ServiceNumber
301
Required
The payment service identifier within the selected network.
TransactionID
PAY-3-301-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The number of recharge units. The platform multiplies this value by the configured unit price to calculate the final transaction price. For example, 10 units at a unit price of 1.21 produce a transaction price of 12.1.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Recharge using a charge categoryRequest and response example
Send the category value returned by the recharge-categories catalog.
Recharges a Sabafon subscriber with an open value.
NetworkNumber3
ServiceNumber302
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
3
Required
The network identifier that owns the selected payment service.
ServiceNumber
302
Required
The payment service identifier within the selected network.
TransactionID
PAY-3-302-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The number of recharge units. The platform multiplies this value by the configured unit price to calculate the final transaction price. For example, 10 units at a unit price of 1.21 produce a transaction price of 12.1.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Recharge an open valueRequest and response example
Recharge the subscriber with the requested number of units.
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
3
Required
The network identifier that owns the selected payment service.
ServiceNumber
304
Required
The payment service identifier within the selected network.
TransactionID
PAY-3-304-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The number of recharge units. The platform multiplies this value by the configured unit price to calculate the final transaction price. For example, 10 units at a unit price of 1.21 produce a transaction price of 12.1.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Recharge a dealer balanceRequest and response example
Recharge the selected dealer account with the requested number of units.
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
3
Required
The network identifier that owns the selected payment service.
ServiceNumber
305
Required
The payment service identifier within the selected network.
TransactionID
PAY-3-305-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The number of recharge units. The platform multiplies this value by the configured unit price to calculate the final transaction price. For example, 10 units at a unit price of 1.21 produce a transaction price of 12.1.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Pay a postpaid accountRequest and response example
Pay the selected postpaid account using the requested payment units.
Recharges a Y Telecom subscriber using a predefined category.
NetworkNumber4
ServiceNumber401
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
4
Required
The network identifier that owns the selected payment service.
ServiceNumber
401
Required
The payment service identifier within the selected network.
TransactionID
PAY-4-401-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The number of recharge units. The platform multiplies this value by the configured unit price to calculate the final transaction price. For example, 10 units at a unit price of 1.21 produce a transaction price of 12.1.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Recharge using a charge categoryRequest and response example
Send the category value returned by the recharge-categories catalog.
Recharges a Y Telecom subscriber with an open value.
NetworkNumber4
ServiceNumber403
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
4
Required
The network identifier that owns the selected payment service.
ServiceNumber
403
Required
The payment service identifier within the selected network.
TransactionID
PAY-4-403-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The number of recharge units. The platform multiplies this value by the configured unit price to calculate the final transaction price. For example, 10 units at a unit price of 1.21 produce a transaction price of 12.1.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Recharge an open valueRequest and response example
Recharge the subscriber with the requested number of units.
Recharges a Sabafon South subscriber using a predefined category.
NetworkNumber12
ServiceNumber1201
The table below contains the complete request contract for this service.
Service-specific fieldsComplete request contract
Field
Example
Required
Description
NetworkNumber
12
Required
The network identifier that owns the selected payment service.
ServiceNumber
1201
Required
The payment service identifier within the selected network.
TransactionID
PAY-12-1201-1
Required
A unique transaction identifier that must not be reused for another payment.
MobileNumber
7XXXXXXXX
Required
The subscriber mobile number or the account identifier accepted by the selected service.
Amount
1000
Required
The number of recharge units. The platform multiplies this value by the configured unit price to calculate the final transaction price. For example, 10 units at a unit price of 1.21 produce a transaction price of 12.1.
Notes
Optional payment note
Optional
An optional note attached to the submitted operation.
WebHookURL
https://your-domain.com/webhook
Optional
The URL notified when the operation status changes.
WebHookCode
xxxxxxxxx
Optional
Your verification value returned unchanged in the webhook.
Recharge using a charge categoryRequest and response example
Send the category value returned by the recharge-categories catalog.
Receive asynchronous operation-status updates through the callback URL supplied with a payment request.
Payment request fields
Provide callback details when creating the operation
Field
Required
Description
WebHookURL
Optional
The HTTPS endpoint that receives operation-status updates.
WebHookCode
Optional
Your verification value, returned unchanged with the callback.
Asynchronous updates
Webhook request
If WebHookURL is https://your-domain.com/webhook, the platform sends a GET request when the operation is updated.
Endpointhttps://your-domain.com/webhook
MethodGET
Parameters shown as JSON for clarity
{
"OperationStatus": 1,
"WebHookCode": "xxxxxxxxx",
"TransactionID": "TransactionID From Your System",
"ReferenceID": 220065,
"price": 507.87,
"message": "Order Success"
}
Parameter descriptionsGET query string
Parameter
Description
OperationStatus
Operation status: 0 failed or 1 completed.
WebHookCode
The verification value supplied when the operation was created.
TransactionID
The unique transaction identifier from your system.
ReferenceID
The operation reference generated by the platform.
price
The operation price charged to your account.
message
Notes describing the current operation result.
Actual GET request example
curl -G "https://your-domain.com/webhook" \
--data-urlencode "OperationStatus=1" \
--data-urlencode "WebHookCode=xxxxxxxxx" \
--data-urlencode "TransactionID=TXN789" \
--data-urlencode "ReferenceID=220065" \
--data-urlencode "price=507.87" \
--data-urlencode "message=Order received and under process"
09
Outcomes
Responses and errors
The complete transport-status reference used by the API, including the situations in which each response can occur.
Standard HTTP response codes communicate whether the API could process a request. A 200 OK response indicates successful transport processing, while 4xx and 5xx responses describe client or server-side problems.
TransportHTTP statusCould the API accept and process the request?
Business resultstatusDid the requested business action succeed?
Payment resultoperationStatusIs the payment ready, failed, or pending?
1SuccessfulThe payment is ready.
-1PendingQuery the same TransactionID later.
0FailedRead the response message.
HTTP
Status and description
When it occurs
200
OKThe request was processed successfully.
A successful HTTP response still requires checking the JSON status boolean field to determine the business result.
400
Bad RequestMissing mandatory data or malformed request.
Required data is incomplete, such as OfferCode, NetworkNumber, or TransactionID.
A target identifier such as MobileNumber or PlayerID is missing.
The body is empty or contains invalid JSON.
401
UnauthorizedAuthentication failure.
The API Token is missing or incorrect.
The login signature is invalid.
The API session or access token has expired.
402
Balance Not EnoughInsufficient funds to perform the requested operation.
Your API account balance is lower than the transaction price.
Your API account does not have enough available balance for the requested query.
403
ForbiddenAccess denied due to account restrictions or permissions.
The targeted mobile number or identifier is restricted.
The requested service is not available to your API account.
The request is blocked by account or service access rules.
404
Not FoundThe requested resource or identifier does not exist.
The supplied OfferCode or ServiceNumber does not exist.
The requested TransactionID does not match an available operation.
406
Not AcceptableIncompatibility or incorrect data formatting.
The phone number prefix or length is invalid.
The PlayerID or target identifier is incompatible with the service.
The offer is not compatible with the subscriber line type.
416
Range Not SatisfiableThe requested value is outside the allowed range.
The transaction amount is below the allowed minimum.
The quantity or amount exceeds the maximum service limit.
423
LockedThe requested service or account is temporarily unavailable.
The selected service, category, or package is temporarily unavailable.
The package or offer is no longer available.
Access to the API account is temporarily suspended.
429
Too Many RequestsRate limits or overlapping requests.
The identifier exceeded its allowed query count within 24 hours.
Another operation for the same target is already in progress.
The account reached its daily order or concurrent-operation limit.
503
Service UnavailableThe requested service is temporarily unavailable.
The service is undergoing scheduled or emergency maintenance.
The service could not accept the request at this time.
Retry later or contact support if the response continues.