openapi: 3.0.3
info:
description: |
Service Enables Bill Payments for GSM Postpaid, Internet payment,
Fixed Line customers.
# Introduction
The API is used by service providers to collect bill amount from the customer (Cash or credit card) and update payment status in Omantel's billing system.
# API Functionality
This API allows to clients to post the payments for GSM Postpaid, Internet payment, Fixed Line services bill payments, as well as to retrieve information of the customer's status and total dues.
The API provides several endpoints/operations:
- An endpoint to post the bill payment for GSM POSTPAID, GSM FAX, GSM DATA, FIXEDLINE.
- A set of endpoints to retrieve information about a list of bill payments or a specific bill payment, identified by its specific `paymentId`.
# Further info and support
(FAQs will be added in a later version of the documentation)
version: 0.2.0
title: Postpaid Bill Payment Service
termsOfService: http://swagger.io/terms/
contact:
email: MiddlewareESB@omantel.om
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
externalDocs:
description: Product documentation at Omantel.om
url: https://api.omantel.om/docs/
servers:
- url: https://apigw.omantel.om
variables:
apiRoot:
default: https://apigw.omantel.om
description: API root
basePath:
default: /postpaid-billing
description: Base path for the bill payment API
tags:
- name: Bill Payment
description: Operations to manage Bill Payment procedure
- name: Bill Payments Inquiry
description: Operations to query bills payments
- name: Bill and Customer Inquiry
description: Operations to obtain information about bill payments
paths:
/postpaid-billing/v1/payments:
post:
security:
- oAuth2ClientCredentials: []
tags:
- Bill Payment
summary: Post a Bill Payment Request
operationId: postBillPayment
description: Post a bill payment for GSM POSTPAID, GSM FAX, GSM DATA, GSM PREPAID, FIXEDLINE account.
requestBody:
description: Post Bill Pyament transaction
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/CreateBillPayment"
examples:
PostpaidMobilePaymentCash:
summary: Postpaid Mobile Bill Payment by cash
value: |
{
"paymentTransaction": {
"clientCorrelatorId": "123e4567-e89b-12d3-a456-004",
"referenceCode": "PAYMENT-REF-004",
"customerInfo": {
"customerAccountNumber": "10295778",
"phoneNumber": "9250xxx"
},
"paymentInfo": {
"paymentInformation": {
"amount": 0.050,
"currency": "OMR",
"description": "Postpaid bill payment for July 2025"
},
"paymentMetaData": {
"merchantName": "Omantel",
"merchantIdentifier": "OMT-001",
"fee": 0.50,
"currency": "OMR",
"purchaseCategoryCode": "TELCO",
"channel": "WEB",
"serviceId": "POSTPAID_BILL",
"invoiceNumber": "1234567890",
"paymentMethod": "cash"
}
}
}
}
PostpaidMobilePaymentCC:
summary: Postpaid Mobile Bill Payment by credit card
value: |
{
"paymentTransaction": {
"clientCorrelatorId": "123e4567-e89b-12d3-a456-012",
"referenceCode": "PAYMENT-REF-012",
"customerInfo": {
"customerAccountNumber": "12547854",
"phoneNumber": "92506xxx"
},
"paymentInfo": {
"paymentInformation": {
"amount": 25.0,
"currency": "OMR",
"description": "Postpaid bill payment for July 2025",
"isTaxIncluded": false,
"isVatIncluded": true,
"taxAmount": 0.0,
"vatAmount": 0.0
},
"paymentMetaData": {
"channel": "WEB",
"currency": "OMR",
"fee": 0.0,
"invoiceNumber": "",
"merchantIdentifier": "OMT-001",
"merchantName": "Infoline",
"purchaseCategoryCode": "TELCO",
"serviceId": "POSTPAID_BILL",
"paymentMethod": "credit_card",
"creditCardDetails": {
"authorizationCode": "123455",
"cardHolderName": "Dummy Name",
"cardNumber": "12334456678889",
"cardType": "Visa",
"cvv": "123",
"expiryMonth": 10,
"expiryYear": 2026
}
}
}
}
}
callbacks:
eventNotifications:
"{$request.body#/webhook.notificationUrl}/eventNotifications":
$ref: "#/paths/~1eventNotifications"
responses:
201:
description: Created
content:
application/json:
schema:
$ref: "#/components/schemas/PaymentCreated"
400:
description: Invalid input
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
examples:
Generic400:
summary: Schema validation failed
value:
code: INVALID_ARGUMENT
status: 400
message: "Schema validation failed at ..."
WrongCurrency:
summary: Currency is unknown or not authorized
value:
code: INVALID_ARGUMENT
status: 400
message: "Currency is unknown or not authorized: currency"
DuplicateClientCorrelator:
summary: clientCorrelator still exist
value:
code: INVALID_ARGUMENT
status: 400
message: "clientCorrelator already exist on server"
401:
$ref: "#/components/responses/Generic401"
403:
description: Forbidden
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
examples:
Generic403:
summary: Forbidden
value:
status: 403
code: PERMISSION_DENIED
message: "Operation not allowed: ..."
PhoneNumberRequired:
summary: Phone Number not provided and cannot be obtained from Authorization context
value:
status: 403
code: CARRIER_BILLING.PHONE_NUMBER_REQUIRED
message: "Phone Number is required"
PhoneNumberMismatch:
summary: Phone Number provided not matching Authorization context
value:
status: 403
code: CARRIER_BILLING.INVALID_TOKEN_CONTEXT
message: "Phone Number does not match with Authorization context"
UnauthorizedAmount:
summary: Unauthorized amount requested
value:
status: 403
code: CARRIER_BILLING.UNAUTHORIZED_AMOUNT
message: "Unauthorized amount requested"
UserMobileAccumulatedThresholdAmountOverpassed:
summary: Accumulated threshold amount for the user's mobile account overpassed
value:
status: 403
code: CARRIER_BILLING.USER_AMOUNT_THRESHOLD_OVERPASSED
message: "Unathorized payment request. Accumulated user mobile payments overpass account amount threshold"
409:
$ref: "#/components/responses/Generic409"
500:
$ref: "#/components/responses/Generic500"
503:
$ref: "#/components/responses/Generic503"
504:
$ref: "#/components/responses/Generic504"
get:
security:
- oAuth2ClientCredentials: []
tags:
- Bill Payments Inquiry
summary: Get a list of bill payments posted to this service
operationId: retrievePayments
description: Retrieve a list of payments posted and their details based on some filtering criteria.
parameters:
- $ref: "#/components/parameters/clientCorrelatorId"
- $ref: "#/components/parameters/fromDate"
- $ref: "#/components/parameters/toDate"
- $ref: "#/components/parameters/Page"
- $ref: "#/components/parameters/PerPage"
- $ref: "#/components/parameters/Seek"
responses:
200:
description: OK
headers:
Content-Last-Key:
$ref: "#/components/headers/Content-Last-Key"
X-Total-Count:
$ref: "#/components/headers/X-Total-Count"
content:
application/json:
schema:
$ref: "#/components/schemas/PaymentArray"
400:
description: Invalid input
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
examples:
OutOfRange:
summary: Request out of range
value:
status: 400
code: OUT_OF_RANGE
message: "Client specified an invalid range"
401:
$ref: "#/components/responses/Generic401"
403:
$ref: "#/components/responses/Generic403"
500:
$ref: "#/components/responses/Generic500"
503:
$ref: "#/components/responses/Generic503"
504:
$ref: "#/components/responses/Generic504"
/postpaid-billing/v1/payments/{paymentId}:
get:
security:
- oAuth2ClientCredentials: []
tags:
- Bill Payments Inquiry
summary: Get bill payment details for a given payment
operationId: getCustomer
description: Retrieve bill payment details for a given payment.
parameters:
- name: paymentId
in: path
description: Payment identifier that was obtained from the post bill payment request
required: true
schema:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/Payment"
401:
$ref: "#/components/responses/Generic401"
403:
$ref: "#/components/responses/Generic403"
404:
$ref: "#/components/responses/Generic404"
500:
$ref: "#/components/responses/Generic500"
503:
$ref: "#/components/responses/Generic503"
504:
$ref: "#/components/responses/Generic504"
/postpaid-billing/v1/customers:
get:
security:
- oAuth2ClientCredentials: []
tags:
- Bill and Customer Inquiry
summary: Bill and Customer Inquiry Request
operationId: getCustomerInfo
description: Get customer information and due bill amount.
parameters:
- $ref: "#/components/parameters/phoneNumber"
- $ref: "#/components/parameters/fixedlineNumber"
- $ref: "#/components/parameters/internetAccount"
- $ref: "#/components/parameters/customerAccountNumber"
responses:
201:
description: Created
content:
application/json:
schema:
$ref: "#/components/schemas/Customer"
400:
description: Invalid input
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
examples:
Generic400:
summary: Schema validation failed
value:
code: INVALID_ARGUMENT
status: 400
message: "Schema validation failed at ..."
WrongCurrency:
summary: Currency is unknown or not authorized
value:
code: INVALID_ARGUMENT
status: 400
message: "Currency is unknown or not authorized: currency"
DuplicateClientCorrelator:
summary: clientCorrelator still exist
value:
code: INVALID_ARGUMENT
status: 400
message: "clientCorrelator already exist on server"
401:
$ref: "#/components/responses/Generic401"
403:
description: Forbidden
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
examples:
Generic403:
summary: Forbidden
value:
status: 403
code: PERMISSION_DENIED
message: "Operation not allowed: ..."
PhoneNumberRequired:
summary: Phone Number not provided and cannot be obtained from Authorization context
value:
status: 403
code: CARRIER_BILLING.PHONE_NUMBER_REQUIRED
message: "Phone Number is required"
PhoneNumberMismatch:
summary: Phone Number provided not matching Authorization context
value:
status: 403
code: CARRIER_BILLING.INVALID_TOKEN_CONTEXT
message: "Phone Number does not match with Authorization context"
UnauthorizedAmount:
summary: Unauthorized amount requested
value:
status: 403
code: CARRIER_BILLING.UNAUTHORIZED_AMOUNT
message: "Unauthorized amount requested"
UserMobileAccumulatedThresholdAmountOverpassed:
summary: Accumulated threshold amount for the user's mobile account overpassed
value:
status: 403
code: CARRIER_BILLING.USER_AMOUNT_THRESHOLD_OVERPASSED
message: "Unathorized payment request. Accumulated user mobile payments overpass account amount threshold"
409:
$ref: "#/components/responses/Generic409"
500:
$ref: "#/components/responses/Generic500"
503:
$ref: "#/components/responses/Generic503"
504:
$ref: "#/components/responses/Generic504"
/eventNotifications:
post:
tags:
- Bill Payment Notifications
summary: Bill payment notifications
operationId: paymentNotification
description: |
Important: this endpoint is to be exposed by the API client, accepting requests in the defined format.
The Omantel will call this endpoint whenever any billing related event occurs.
requestBody:
description: Creates a new carrier billing payment notification
content:
application/json:
schema:
$ref: "#/components/schemas/EventNotification"
required: true
responses:
"204":
description: Successful notification
"400":
$ref: "#/components/responses/Generic400"
"401":
$ref: "#/components/responses/Generic401"
"403":
$ref: "#/components/responses/Generic403"
"500":
$ref: "#/components/responses/Generic500"
"503":
$ref: "#/components/responses/Generic503"
"504":
$ref: "#/components/responses/Generic504"
components:
schemas:
CreateBillPayment:
type: object
required:
- paymentTransaction
properties:
paymentTransaction:
$ref: "#/components/schemas/PaymentTransaction"
webhook:
$ref: "#/components/schemas/Webhook"
PaymentCreated:
type: object
required:
- paymentTransaction
- paymentId
properties:
paymentId:
type: string
description: |
Unique Identifier of the payment created in Omantel Billing System. It
can be used to query status of the transaction
transactionOperationStatus:
type: string
description:
Specifies the payment status (`processing`, `denied`, `reserved`,
`succeeded`, `cancelled`).
paymentTransaction:
$ref: "#/components/schemas/PaymentTransaction"
paymentCreationDate:
type: string
format: date-time
description: Date time, in ISO-8601 extended local date format, when the payment is created in server database. This is a technical information. Time-offset from UTC may be used to match local OB time.
paymentDate:
type: string
format: date-time
description: Date time, in ISO-8601 extended local date format, when the payment is effectively performed. This is a business information. Time-offset from UTC may be used to match local OB time.
webhook:
$ref: "#/components/schemas/Webhook"
Payment:
type: object
required:
- paymentTransaction
- paymentId
properties:
paymentId:
type: string
description: Unique Identifier of the payment
transactionOperationStatus:
type: string
description:
Specifies the payment status (`processing`, `denied`, `reserved`,
`succeeded`, `cancelled`).
paymentTransaction:
$ref: "#/components/schemas/PaymentTransaction"
paymentCreationDate:
type: string
format: date-time
description: Date time, in ISO-8601 extended local date format, when the payment is created in server database. This is a technical information. Time-offset from UTC may be used to match local OB time.
paymentDate:
type: string
format: date-time
description: Date time, in ISO-8601 extended local date format, when the payment is effectively performed. This is a business information. Time-offset from UTC may be used to match local OB time.
webhook:
$ref: "#/components/schemas/Webhook"
Webhook:
type: object
required:
- notificationUrl
properties:
notificationUrl:
type: string
description: Callback URL to allow asynchronous delivery of payment related events
notificationAuthToken:
type: string
example: "c8974e592c2fa383d4a3960714"
description: Authentification token for callback endpoint
PaymentTransaction:
type: object
required:
- customerInfo
- paymentInfo
- referenceCode
properties:
clientCorrelatorId:
type: string
description: |
Uniquely identifies this post payment request. If there is
a communication failure during the payment request,
using the same `clientCorrelatorId` when retrying the request
allows Omantel to avoid applying the posting twice.
This field SHOULD be present to avoid duplicate payment posting.
referenceCode:
type: string
minLength: 1
maxLength: 20
description:
Merchant generated payment reference to uniquely identify the
request, for instance, in the case of disputes.
customerInfo:
$ref: "#/components/schemas/CustomerInfo"
paymentInfo:
$ref: "#/components/schemas/PaymentInfo"
CustomerInfo:
type: object
description: |
This must contain `customerAccountNumber`(get by calling
`GET /customers Bill and Customer Inquiry Request` API operation)
and one of the `phoneNumber`, `fixedlineNumber` or `internetAccount`.
Bill Payment is always posted against `customerAccountNumber`. Therefore, `customerAccountNumber` is mandatory
and `phoneNumber`, `fixedlineNumber` or `internetAccount` are optional and can be used knowing
that customer was entered what information.
properties:
customerAccountNumber:
type: string
description: Customer Account Number
phoneNumber:
type: string
description: Phone number must be specified only if bill is paid for POSTPAID phone number
example: "92xxxxxx"
fixedlineNumber:
type: string
description: Fixed line number must be specified if bill is paid for Fixed line number
example: "24xxxxxx"
internetAccount:
type: string
description: Internet Account must be specified if bill is paid for Internet Account
example: "IA123456"
required:
- customerAccountNumber
PaymentInfo:
type: object
required:
- paymentInformation
properties:
paymentInformation:
$ref: "#/components/schemas/PaymentInformation"
paymentMetaData:
$ref: "#/components/schemas/PaymentMetaData"
amountDetails:
$ref: "#/components/schemas/AmountDetails"
PhoneNumber:
type: object
properties:
phoneNumber:
type: string
description: Identifies the mobile account to be charged. Phone number in E.164 format (starting with country code). Optionally prefixed with '+'.
AmountDetails:
type: array
description: Detailed description of the concepts/items considered within a specific payment procedure.
minItems: 1
items:
$ref: "#/components/schemas/PaymentItem"
PaymentItem:
type: object
required:
- amount
- currency
- description
properties:
amount:
type: number
format: float
description: Specific amount to be charged or reserved referred to a specific item.
currency:
type: string
description: Currency code in which amount is expressed as defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html).
description:
type: string
description: Description text to be used for information and billing text referred to a specific item.
isVatIncluded:
type: boolean
default: false
description: If true, the `amount` is VAT included, if false the `amount` is provided without VAT. In both cases, `vatAmount` could be indicated to provide VAT amount.
vatAmount:
type: number
format: float
description: |
The tax amount charged by the merchant. Indicated when the merchant is the one applying taxes. This field also provides an indicator to the downstream billing system.
isTaxIncluded:
type: boolean
default: false
description: If true, the `amount` is tax included, if false the `amount` is provided without tax. In both cases, `taxAmount` could be indicated to provide tax amount.
taxAmount:
type: number
format: float
description: |
The tax amount charged by the merchant. Indicated when the merchant is the one applying taxes. This field also provides an indicator to the downstream billing system.
PaymentInformation:
type: object
required:
- amount
- currency
- description
properties:
amount:
type: number
format: float
description: Amount to be charged or reserved.
currency:
type: string
description: Currency code in which amount is expressed as defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html).
description:
type: string
description: Description text to be used for information and billing text
isVatIncluded:
type: boolean
default: false
description: If true, the `amount` is VAT included, if false the `amount` is provided without VAT. In both cases, `vatAmount` could be indicated to provide VAT amount.
vatAmount:
type: number
format: float
description: |
The tax amount charged by the merchant. Indicated when the merchant is the one applying taxes. This field also provides an indicator to the downstream billing system.
isTaxIncluded:
type: boolean
default: false
description: If true, the `amount` is tax included, if false the `amount` is provided without tax. In both cases, `taxAmount` could be indicated to provide tax amount.
taxAmount:
type: number
format: float
description: |
The tax amount charged by the merchant. Indicated when the merchant is the one applying taxes. This field also provides an indicator to the downstream billing system.
PaymentMetaData:
type: object
properties:
merchantName:
type: string
description: Indicates the merchant name. Allows aggregators/partners to specify the actual merchant name
merchantIdentifier:
type: string
description: Indicates the merchant identifier. Allows aggregators/partners to specify the actual merchant identifier
fee:
type: number
format: float
description: Percentage of the amount to be received by the requester
currency:
type: string
description: Currency code in which fee is expressed as defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html).
purchaseCategoryCode:
type: string
description: A category defining the type of service, product or media being purchased
channel:
type: string
description: The channel over which the requester is interacting with the merchant (e.g. WAP, Web, SMS...)
serviceId:
type: string
description: The identifier of the partner/merchant service being purchased
productId:
type: string
description: The product identifier to be combined with the `serviceId` to uniquely identify the product being purchased. For example if the `serviceId` relates to a VOD service, the `productId` can specify the movie rented
invoiceNumber:
type: string
description: Invoice Number
paymentMethod:
$ref: '#/components/schemas/PaymentMethod'
creditCardDetails:
$ref: '#/components/schemas/CreditCardDetails'
PaymentMethod:
type: string
description: The method used by the customer to pay the bill.
enum:
- cash
- credit_card
- debit_card
example: credit_card
CreditCardDetails:
type: object
properties:
cardNumber:
type: string
description: |
The credit/debit card number. If agreed with Omantel to
share dummy card details as
card number.
example: '1234567890123456'
cardHolderName:
type: string
description: The name of the cardholder. It could be dummy if agreed with Omantel's finance and business teams.
example: 'John Doe'
cardType:
type: string
description: The type of the credit/debit card.
enum:
- Visa
- MasterCard
- AmericanExpress
- Discover
example: Visa
expiryMonth:
type: integer
format: int32
description: The expiry month of the card. It could be dummy if agreed with Omantel's finance and business teams.
example: 12
expiryYear:
type: integer
format: int32
description: The expiry year of the card.
example: 2023
cvv:
type: string
description: The CVV of the card. It could be dummy if agreed with Omantel's finance and business teams.
example: '123'
authorizationCode:
type: string
description: The authorization code for the transaction. If customer has paid by Card, please specify authorization code .
example: '1234'
required:
- cardNumber
- cardHolderName
- expiryMonth
- expiryYear
- authorizationCode
ErrorInfo:
type: object
required:
- code
- message
- status
properties:
code:
type: string
description: Code given to this error
status:
type: string
description: HTTP response status code
message:
type: string
description: Detailed error description
EventNotification:
type: object
description: Generic data type for event notification structure
required:
- event
properties:
eventSubscriptionid:
type: string
description: subscription identifier
event:
$ref: "#/components/schemas/Event"
Event:
type: object
description: Generic data type for event structure
required:
- eventType
- eventTime
- eventDetail
properties:
eventid:
type: string
format: uuid
description: Identifier of the event from the server where the event was reported
eventType:
type: string
description: |
Type of event. Different types considered so far:
- `PAYMENT_COMPLETED`: Notification indication about payment completion.
- `PAYMENT_FAILED`: Notification about payment failure.
eventTime:
type: string
format: date-time
description: Date time, in ISO-8601 extended local date format, when the event occurred. Time-offset from UTC may be used to match local OB time.
eventDetail:
$ref: "#/components/schemas/EventDetail"
EventDetail:
type: object
description: Data type to provide event detail information
properties:
paymentId:
type: string
description: Unique Identifier of the payment
clientCorrelatorId:
type: string
description: Client generated Unique Identifier of the payment
status:
type: string
enum:
- succeeded
- failed
description: |
Status of the procedure, according to `eventType` param. Possible status are:
* `succeeded`: procedure was accomplished
* `failed`: procedure failed.
description:
type: string
description: Description of the notification, both used when process was `succeeded` or `failed` indicating in the latter case human understable reason about why process failed.
paymentDate:
type: string
description: Date when the payment is effectively performed, both in 1-step and 2-step scenarios. This is a business information.
format: date-time
required:
- paymentId
- status
- description
PaymentArray:
description: A list of payment(s)
type: array
minItems: 0
items:
$ref: "#/components/schemas/Payment"
Customer:
type: object
description: Customer details of the specified input
properties:
customerName:
type: string
description: Customer Name
customerStatus:
type: string
description: |
Current status of the contract.
It could be any one of the following:ACTIVE, PENDING, NEW.
example: ACTIVE
customerType:
type: number
description: Customer type. Possible values are 9 - GSM POSTPAID, 11 - GSM FAX, 12 - GSM DATA, 14 - GSM PREPAID, 200/203 – PSTN
customerAccountNumber:
type: string
description: Customer Account Number can be used to pay bils
acctCategory:
type: string
description: Account category of the contract. Example - Business – Large, Business – Medium, Business – Small, Government, Residential, Service, Special Services, Roaming Test Cards, Residential Staff, Test Numbers, Network Support
collectionIndicator:
type: string
description: Indicate whether the contract is in collections or not. ACCOUNT IN COLLECTIONS, ACCOUNT NOT IN COLLECTIONS
custAddr1:
type: string
description: Customer address 1
custAddr2:
type: string
description: Customer address 2
custAddr3:
type: string
description: Customer address 3
totalDues:
type: number
description: Total due amount (in Omani Riyals) associated with the account
example: 25.0
responses:
Generic400:
description: Invalid input
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
example:
code: INVALID_ARGUMENT
status: 400
message: "Schema validation failed at ..."
Generic401:
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
example:
code: UNAUTHORIZED
status: 401
message: "Authorization failed: ..."
Generic403:
description: Forbidden
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
example:
code: FORBIDDEN
status: 403
message: "Operation not allowed: ..."
Generic404:
description: Resource Not Found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
example:
code: NOT_FOUND
status: 404
message: "The specified resource is not found"
Generic409:
description: Conflict
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
example:
status: 409
code: ALREADY_EXISTS
message: "A specified resource duplicate entry found"
Generic500:
description: Server error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
example:
code: SERVER_ERROR
status: 500
message: "Server Error"
Generic503:
description: Service unavailable
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
example:
code: SERVICE_UNAVAILABLE
status: 503
message: "Service unavailable"
Generic504:
description: Request timeout exceeded
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorInfo"
example:
code: REQUEST_TIMEOUT_EXCEEDED
status: 504
message: "Request timeout exceeded"
parameters:
phoneNumber:
name: phoneNumber
in: query
description: Phone number of the customer
example: "92xxxxxx"
schema:
type: string
fixedlineNumber:
name: fixedlineNumber
in: query
description: Fixed line number of the customer
example: "IA123456"
schema:
type: string
internetAccount:
name: internetAccount
in: query
description: Internet Account of the customer
example: "24xxxxxx"
schema:
type: string
customerAccountNumber:
name: customerAccountNumber
in: query
description: Account number of the customer
example: "12345678"
schema:
type: string
clientCorrelatorId:
name: clientCorrelatorId
in: query
schema:
type: string
description: |
Client call can specify it to find individual transaction by its own unque ID.
Service will return matching record only. If `clientCorrelatorId`
is specified in the request, then service will consider only
`clientCorrelatorId` and return matching transaction only, and will
ignore all other parameters.
fromDate:
name: fromDate
in: query
description: Results should be taken from this transaction date
example: "2023-01-15"
schema:
type: string
format: date
toDate:
name: toDate
in: query
description: Results should be taken up-to this transaction date
example: "2023-01-31"
schema:
type: string
format: date
Page:
name: page
in: query
description: Requested index to indicate the start of the resources to be provided in the response
schema:
type: integer
PerPage:
name: perPage
in: query
description: Requested number of resources to be provided in response
schema:
type: integer
Seek:
name: seek
in: query
description: Index of last result read to create the next/previous number of results. This query parameter is used for pagination in systems with more than 1000 records. `seek` parameter offers finer control than `page` and could be used one or another as an alternative. If both are used in combination (not recommended) `seek` would mark the index starting from the page number specified by `page` and `perPage` [index = (page * perPage) + seek].
schema:
type: integer
headers:
Content-Last-Key:
description: Indicates the index of the last result provided in the response
schema:
type: integer
X-Total-Count:
description: Total number of items matching criteria
schema:
type: integer
securitySchemes:
oAuth2ClientCredentials:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://apigw.omantel.om/oauth2/accesstoken
scopes: {}