Overview
Our API allows you to use some of the most important functionalities of ANB platform to perform jobs in your app using ANB services & customers' data.
Prerequisites
To use the SADAD service, you need to do the following:
- Register/Login to the anb Developer Portal.
- Create an app.
- You should now have a client id and secret associated with your app.
- Get an access token from our auth service using your client id and secret.
To create a new application:
- Log in to your account. Then navigate to Apps > Add App.
- In the App name field, enter a name for your application.
- In the APIs field, select B2B Payment Sandbox, and click ADD APP.
- Get an access token from our auth service using your client id and secret.
Attribute | Value |
---|---|
client_id | The client_id for your application on the Developer Portal |
client_secret | The client_secret for your application on the Developer Portal |
How to integrate with ANB?
-
Make sure to read and to understand API documentation.
-
Send an email to API@anb.com.sa with the following details
-
You will get an email from API@anb.com.sa with client id and secret
Error codes
Status Code | Message | Description |
---|---|---|
200 | OK | Transaction is successful |
500 | Internal Server Error | Something went wrong internally |
400 | Bad Request | Request is not valid |
Status Code | Description |
---|---|
I000000 | Successful Operation |
E020051 | Language code should be ENGLISH or ARABIC |
E020358 | Associate ID is mandatory for the service 058 |
E620001 | The signon information provided in the query in invalid |
E620002 | The date range supplied in invalid |
E620003 | The specified Biller does not exist in system |
E620004 | Bank is not active |
E620005 | Neither Biller ID nor customer ID specified in query |
E620006 | Customer?s logon ID not active : |
E620007 | Customer ID is not specified in query |
E620008 | Customer does not exist in system |
E620009 | The following property is null or undefined |
E620010 | Access channel is mandatory |
E620011 | Biller ID is mandatory if billing account / bill number is provided |
E620012 | Display label not found for statement |
E620013 | Invalid customer, like ?invalid customer?, or ?could not obtain customer information' |
E620014 | Error while fetching Service Account Presentment Agreement for the entities provided' |
E620015 | System specified message for error while fetching Statement(s) |
E620016 | Error populating bill record aggregate in the response |
E620017 | Error while fetching global (SADAD) message for the response |
E620018 | Error while applying one of the rules |
E620019 | Error while fetching fake Statement(s) |
E620020 | Specified entity does not exist in the system |
E620021 | Merchant key for Service Account Presentment Agreement not found in the system |
E620022 | The query passed in null |
E620023 | Null / invalid date format : |
E620024 | Audit failure! The process could not be audited |
E620025 | Customer ID is mandatory for customer |
E620026 | Proxy customer ID is mandatory for proxy customer |
E620027 | Biller is not active : |
E620028 | Account is not active : |
E620029 | Query successful, but fetch limit reached. Some records may not have been fetched |
E620030 | No bills found matching the search criteria |
E620031 | Query response failed schema validation |
E620032 | Internal error |
E620033 | Invalid XML. Schema validation failed |
E620034 | Failed to get Sender ID, Receiver ID or Message Code from XML message |
E620035 | Failed to get message parameters from config file |
E620036 | Failed to read MessageDetails.cnf file |
E620037 | Failed to validate the message |
E620038 | Failed to query bill |
E620039 | Failed to sign or persist response message |
E620040 | Utility Bill host Server is not running |
E620041 | Communication problem with utility Bill host server |
E620042 | Overpayment or underpayments is not allowed |
E620043 | Cannot make overpayment |
E620044 | Cannot make underpayment |
E620045 | Bill Not Found |
E620046 | Bill has expired. Payments cannot be made on expired bills |
E620047 | Payable amount should be greater than zero |
E620048 | Your account has been disabled. Please contact the Administrator |
E620049 | Account not found |
E620050 | Biller is not active |
E620051 | The specified Biller does not exist in the system |
E620052 | Internal Error! |
E620053 | Failure (see embedded error code(s)) |
E620054 | Issuer Bank not found |
E620055 | Acquirer Bank not found |
E620056 | There is no enough data provided to complete the transaction |
E620057 | Issuer Bank Not Active |
E620058 | Acquirer Bank Not Active |
E620059 | Cannot make multiple payments on the same Account/Bill in a single request |
E620060 | Access Channel not found |
E620061 | Payment validation request limit exceeded |
E620062 | Access Channel not Active |
E620063 | Branch Code is missing |
E620064 | District Code is missing |
E620065 | Payment method is missing |
E620066 | Access Channel is missing |
E620067 | You have been disabled. Please contact the Administrator |
E620068 | Verification failed for the certificate used for signing the data |
E620069 | Signature verification failed |
E620070 | Payment Confirmation failed |
E620071 | Customer not found |
E620072 | One or more accounts not found |
E620073 | One or more associations between the customer and its accounts not found |
E620074 | Failed to inquire Customer Profile |
E620075 | Failed to add Customer Profile |
E620076 | Failed to delete Customer Profile |
E620077 | Amount does not match |
E620078 | Sadad PmtId missing |
E620079 | Payment is a part of the group |
E620080 | Payment has been advanced to a state wherein advice cannot be performed |
E620081 | Bank PmtId missing |
E620082 | Value date is missing |
E620083 | Sadad Timeout |
E620084 | SADA General Failure |
E620085 | TimeOut |
E620086 | Channel Is Not Enabled |
E620087 | Fund Transfer Error |
E620088 | Fund Transfer Timeout |
E620089 | Message Response Error(As an Inner Error Only) |
E620090 | ChannelTimeOut |
E620091 | ATM Has Terminated The Payment |
E620092 | Account has Insufficent Funds |
E620093 | Account is Not Valid |
E620094 | Communication Error With SADAD |
E620095 | Payment Already Advised Error |
E620096 | Payment Already Terminated Error |
E620097 | Invalid Message Type Coming From The Channel |
E620098 | Tuxedo Unable To Connect To Host |
E620099 | Tuxedo Connected To Host But No Response |
E620100 | Your request has failed. Please try again later |
E620101 | The requested biller is not subscribed for Fee Query service |
E620102 | The supplied RQUID has already been used |
E620103 | Bank is not authorized to access this service |
E620104 | The selected access channel is not permitted to perform MOI payments |
E620105 | Fee amount is less than or equal to zero |
E620106 | The supplied service ID is not of a service provided by the biller |
E620107 | Branch code does not exist: |
E620108 | District code does not exist : |
E620109 | Branch code is missing |
E620110 | District code is missing |
E620111 | Payment already exists in the system for request (RQUID) |
E620112 | Payment Amount Validation failed for CIP |
E620113 | CIP Validation failed for payment type : |
E620114 | CIP validation failed for account : |
E620115 | Account does not exist in the system : |
E620116 | Payment Amount is not in range |
E620117 | The payment type does not exist |
E620118 | Payment Check digit is missing |
E620119 | Exact payment is required |
E620120 | Payment is less than the minimum allowed amount |
E620121 | Payment is greater than the maximum allowed amount |
E620122 | Invalid or missing payment method |
E620123 | Billing account must not be supplied for voucher payment type : |
E620124 | Bill number must not be supplied for voucher payment type : |
E620125 | No vouchers available for the requested amount |
E620126 | Billing account is not supplied |
E620127 | Acquirer BankId is missing |
E620128 | The count of payments validated and the payments count in Advice request dont match |
E620129 | No Payments found for the groupPmtId provided |
E620130 | Status aggregate defining advice code is missing |
E620131 | Payment already exists in the system with Bank PmtId: |
E620132 | Duplicate Bank PmtId found in the request |
E620133 | Advice can only be performed by the Bank that requested payment validation |
E620134 | Bank Id in the request does not match the Bank Id in the system |
E620135 | The Customer Id in the request does not match the Customer Id in the system |
E620136 | The Service Id in the request does not match the Service Id in the system |
E620137 | The Beneficiary Id in the request does not match the Beneficiary Id in the system |
E620138 | The Partner service aggregate is missing |
E620139 | Customer-Account association not found |
E620140 | Biller assigned customer association cannot be deleted |
E620141 | One or more associations between the customer and its accounts are biller assigned |
E620142 | Failed to get Signature value |
E620143 | Failed to get Certificate details from partner profile |
E620144 | Failed to get partner profile from config file |
E620145 | Failed to read PartnerDetails.cnf |
E620146 | Failed to read SADADProfile.cnf file |
E620147 | Failed to retrieve Biller Info |
E620148 | Failed to attach signature to the message |
E620149 | Failed to sign the data |
E620151 | Incorrect Beneficiary Id |
E620152 | Incorrect amount entry |
E620153 | Wrong amount |
E620154 | Citizen record not found |
E620155 | Incorrect sponsor Id entry |
E620156 | Refund Amount is Exceeding the available Amount |
E620157 | Not Enough Balance |
E620158 | Incorrect key field entry |
E620159 | Occupation not found |
E620160 | Beneficiary ID is not Supplied in the Request |
E620163 | Invalid customer Id |
E620164 | Citizen not found |
E620165 | Alien not found |
E620166 | Visitor not found |
E620167 | Invalid customer Id |
E620168 | Customer cannot perform the required service |
E620170 | Operation cannot be completed, try again later |
E620171 | Operation cannot be completed, check with bank |
E620172 | Operation cannot be completed, check with NIC |
E620173 | Duplicate Refund Id |
E620174 | No Payment Found |
E620175 | Unable To Get Customers Account |
E620176 | Unable to Get the Payment |
E620177 | Unable to Log Refund Query Request |
E620178 | Duplicate Incomplete Refund |
E620179 | Unable to Log Refund Query Response |
E620180 | Internal Error |
E620181 | Unknown Error, check with NIC |
E620182 | Invalid or missing HTTP Header sender-id or rquid or destination-id |
E620183 | Missing data stream or valid content-type application/octet-stream |
E620184 | Invalid message code. Expected RINQRQ |
E620185 | Invalid message type. Expected RefundInqRq |
E620186 | Failed to deliver refund query request to biller |
E620187 | Invalid Duration / Period |
E620188 | Fee does not exist for given duration |
E620189 | No Fee Required |
E620190 | Fee Amount is Zero |
E620191 | Invaild job category |
E620192 | Incorrect number of dependents |
E620193 | Invalid Visa number |
E620194 | Invalid passport type |
E620195 | Citizen is suspended |
E620196 | Citizen is either dead or nationality withdrawn |
E620197 | Incorrect citizen Id |
E620198 | Beneficiary ID Is not found |
E620199 | Citizen ID is Not Found |
E620200 | Invalid alien Id |
E620201 | Alien ID is Not Found |
E620202 | Alien has died |
E620203 | Alien is naturalized |
E620204 | Alien has exited and not returned |
E620205 | Alien is outside the kingdom |
E620206 | Visitor ID is Not Found |
E620207 | Travel record (border crossing) not found |
E620208 | Visitor has exited the kingdom |
E620209 | Visitor Visa not found |
E620210 | Alien Sponsor record not found |
E620211 | Extension can only be granted to an Alien head of household |
E620212 | The Id entered in not for a dependant alien |
E620213 | Alien Visa not found |
E620214 | Alien Passport Not Found |
E620215 | Pilgrim is not found |
E620216 | The HOH Of The Current Dependent Is Not Found |
E620217 | Dependant has a separate Iqama |
E620218 | Separation Is Not Allowed For The Current Dependent |
E620219 | Exceeding maximum number of years for Iqama |
E620220 | The citizen wife Id should be for a female |
E620221 | Sponsor name not found |
E620222 | Alien is suspended |
E620223 | No Visa requested |
E620224 | Incorrect number of Visass entry |
E620225 | Invalid Visa Type |
E620226 | Invalid vehicle sequence number |
E620227 | Vehicle Sequence Number is not Supplied in the Request |
E620228 | Incorrect current owner Id entry |
E620229 | Vehicle current registration type is not found |
E620230 | Vehicle record not found |
E620231 | new license plate record not found |
E620232 | The service is only valid for old vehicle registration type |
E620233 | Vehicle new owner can not be same as the current owner |
E620234 | Vehicle owner record not found |
E620235 | Vehicle Current Owner ID is not Supplied in the Request |
E620236 | Invalid vehicle new owner Id |
E620237 | Vehicle New Owner ID is not Supplied in the Request |
E620238 | Invalid numeric part of the new license plate |
E620239 | The Numeric Part of the New License Plate is not Supplied in the Request |
E620240 | Vehicle registration type is invalid |
E620241 | Vehicle Registration Type is not Supplied in the Request |
E620242 | The supplied license plate number can not be found |
E620243 | Vechicle body type is invalid |
E620244 | Vehicle Body Type is not Supplied in the Request |
E620245 | Vehicle custom card number is invalid |
E620246 | Vehicle Custom Card Number is not Supplied in the Request |
E620247 | This service is only validfor new vehicle registration type |
E620248 | The vehicle status is not valid for the requested service |
E620249 | Vehicle custom card number is not found |
E620250 | The vehicle custom card number is already in use with another vehicle |
E620251 | The Request Type is Invalid |
E620252 | Invalid license type |
E620253 | The Request Type is not Supplied in the Request |
E620254 | The License Type is not Supplied in the Request |
E620255 | The Beneficiary ID is not Supplied in the Request |
E620256 | The Request Type is Invalid |
E620257 | Driving license status not found |
E620258 | Driving license not found |
E620259 | Unpaid Traffic Violation(s) Found For The Beneficiary |
E620260 | Invalid event actual date |
E620261 | Citizen has a nationality withdrawn status |
E620262 | Death registration requested for a dead person |
E620263 | Can not issue a replacement ID Card for a dead citizen |
E620264 | Only male citizens can perform the birth registration service |
E620265 | Event actual date is greayer than current da |
E620266 | Unable to Log FeeInquiry Request Caused by Error in SQL Execution |
E620267 | Unable to Log FeeInquiry Response Caused by Error in SQL Execution |
E620268 | This Operation is Blocked from 11:30PM to 12:30PM oclock |
E620269 | Unknow Error, check with NIC |
E620270 | Unsuccessful |
E620271 | Violation Already Paid |
E620272 | Violation Cancelled |
E620273 | Violation Not Payable Online |
E620274 | Violation does not belong to Customer |
E620275 | No Violations found for Customer |
E620276 | Refund message is from a bank that is not subscribed to the refund process |
E620277 | The Refund ID provided does not match an existing Refund record in SADAD |
E620278 | Refund is not a Cash Refund |
E620279 | Refund record has an invalid status of Refund Status |
E620280 | Customer ID does not match the refund record |
E620281 | Customer ID Type does not match the refund record |
E620282 | Incorrect PIN number |
E620283 | Biller ID does not match the refund record |
E620284 | Bank ID does not match the refund record |
E620285 | Refund record is expired |
E620286 | Refund ID must start either with the biller?s ID or the Bank?s ID |
E620287 | Bank not found in Sadad |
E620288 | The bank is not activated |
E620291 | Cannot process Refund request now, please try later |
E620292 | Data did not receive from Host System. |
E620293 | Socket Timeout Exception Please Check with MB Supprot Team. |
E620294 | SocketException Please Check with MB Supprot Team. |
E620295 | IOException Please Check with MB Supprot Team. |
E620296 | UnknownError Please Check with MB Supprot Team. |
E620297 | NullPointerException Please Check with MB Supprot Team. |
E620298 | Exception has been occured during the process. |
E620299 | Unhandled Java: Exception thrown by MB |
E620300 | The Required Driving License validity Duration is Invalid |
E620301 | Invalid message code. Expected FINQRQ |
E620302 | Invalid message type. Expected FeeInqRq |
E620303 | Date must be Gregorian |
E620304 | Fee Duration Date value cannot be less than todays date |
E620305 | The Associate ID is Invalid |
E620306 | The maximum allowed period to inquiry associates fees is 10 years |
E620307 | Dependent Birth Date cant be a future value |
E620308 | The Dependent Birth Date is Invalid |
E620309 | Payment Validation failed |
E620310 | Advice Status Code is not valid |
E620311 | Partner is not subscribed to use the requested service. |
E620312 | Bank is not registered with SADAD |
E620313 | Bank is deactivated in SADAD |
E620314 | The SADAD Bills ID provided does not exist |
E620315 | The SADAD Bills ID is no longer available to pay |
E620316 | Invoice details could not be retrieved, please try again |
E620317 | The Payer ID provided does not exist |
E620318 | There are no available invoices for the Payer ID provided |
E620319 | The supplier does not exist or cannot be found based on the search you have entered |
E620320 | Invalid bill query request. |
E620321 | MOIFeeAdvice MissMatch |
E620322 | Inactive Biller |
E620323 | Invalid Amount |
E620324 | Missing SPTN |
E620325 | Beneficiary id needed for prepaid accounts |
E620326 | Beneficiary OfficialIdType is required |
E620327 | The Beneficiary OfficialIdType is not valid |
E620328 | The allowed amount to be paid as a partial payment against this bill |
E620329 | Beneficiary id does not match with account owner id |
E620330 | Postpaid payment type not allowed for prepaid account |
E620331 | Customer Id is required |
E620332 | Beneficiary phone number is needed for prepaid service |
E620333 | Partial payments are not permitted |
E620334 | Amount entered is less than the minimum (partial payment) payable |
E620335 | Amount entered is greater than the invoice outstanding amount |
E620336 | Payment failure, please try again (catch all) |
E620337 | Invalid payment validation request provided. |
E620338 | More unpaid violation(s) exists |
E620339 | The Violator Id is Invalid |
E620340 | The Violator Id has an Invalid Check Digit |
E620341 | No Fines available for payment |
E620342 | The Visa cannot extended the Iqama Validity |
E620338 | More unpaid violation(s) exists |
E620339 | The Violator Id is Invalid |
E620340 | The Violator Id has an Invalid Check Digit |
E620341 | No Fines available for payment |
E999970 | Cast Exception |
E999971 | Conversation Exception |
E999972 | Sql Exception |
E999973 | User Exception |
E999974 | Receoverable Exception |
E999975 | Database Connection Issue |
E999976 | DataBase Timeout |
E999977 | MQ communication error |
E999985 | TCPIP Communication Error With the Host Systems(Connection Refused) |
E999998 | Unrecoverable database error |
E999999 | Unrecoverable integration error |
Authentication
Authentication API is your way in to use the rest of services. All services require a Bearer token that you can get through below services.
Access Token
This is your starting point to use below APIs. You request a new token by supplying your client id and secret from the Developer Portal.
Customer Profile Management
These services will be used to Add, Delete and Inquire the customer profile from A4SADAD system.
Flow:
Profile
Customer profile Inquiry endpoint used to get the customer profiles details from SADAD.
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
LangPref | Preferred Language | R | 10 |
POINum | Customer Id | R | 50 |
POIType | Customer Id Type | R | 50 |
NumOfRecs | Number Of Records in the request | R | 1 |
BillingAcct | Billing Account | O | 19 |
BillerId | Biller Id | O | 3 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
LangPref | Echo From Request | Yes |
POINum | Customer Id | Yes |
POIType | Customer type | Yes |
NumOfRecs | Record count | Yes |
IsInProf | Is in profile boolean | Yes |
BillingAcct | Billing account | Yes |
BillerId | Biller id | Yes |
Create/Add Profile
Customer Profile Add endpoint used to add a new customer profile in SADAD system.
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
Sequence Number | Sequence Number | R | 50 |
LangPref | Preferred Language | R | 10 |
POI/POINum | Customer Id | R | 50 |
POI/POIType | Customer Id Type | R | 50 |
NumOfRecs | Number Of Records in the request | R | 1 |
CustProfInfo/BillingAcct | Billing Account | O | 19 |
CustProfInfo/BillerId | Biller Id | O | 3 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
LangPref | Echo From Request | Yes |
POINum | Customer Id | Yes |
POIType | Customer type | Yes |
NumOfRecs | Record count | Yes |
ProfStatus | Profile status | Yes |
BillingAcct | Billing account | Yes |
BillerId | Biller id | Yes |
ProfUpdStatusCode | Profile update status code | Yes |
Govt/MOI Fee Inquiry
This service will be used to inquire about MOI services. Once you received the response, then you will call the bill pay advice service to actually pay the fee.
Flow:
Fee Inq
This service brings the MOI fee details for a given POI and biller ID from SADAD system. This will be used to inquiry fee for Government services always.
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
Sequence Number | Sequence Number | R | 50 |
LangPref | Preferred Language | R | 10 |
POI/POINum | Customer Id | R | 50 |
POI/POIType | Customer Id Type | R | 50 |
ProxyPOI/POINum | Customer ID number This is mandatory only for branch channel, other than branch it is space. |
R/O | 50 |
ProxyPOI/POIType | Proof of identity type BTELLER-BTL | R/O | 50 |
ANBAcctNum | Debit Account Number or Credit Card Number | R | 20 |
ANBAcctType | 1- Normal Account. 2- Credit Card Account. |
R | 1 |
CardExpDt | Credit card expiration date: YYYY-MM-DD |
R/O | 10 |
BillerId | MOI Biller Codes: 090- Residents Services 091- Driving License 092- Saudi Passports 093- Traffic Violation 094- Motor Vehicle 095- Labor Importation 096- Civil Registration 126- National Platform of Violation 127- Entry Ports Payments |
R | 1 |
ServiceCode | MOI Service Codes: 001- Extend Visitor Visa 002- Issue New Iqama 003- Renew Iqama 004- Exit Re-entry Visa ( Single) 005- Exit Re-entry Visa (Multiple) 006- Visa Cancellation 007- Transfer of Sponsorship 008- Replace Iqama 009- Transfer Dependant to be Head of Household 010- Transfer Head of Household to be Dependant 011- Transfer Dependant to a New Head of Household 012- Change of Occupation , 013- Dependants Entry visa Fee Collection 014- Adding Dependent born inside Saudi Arabia after one Year from his Date Of Birth 015- Dependent Separation 016- Issue New Iqama for a Citizen’s wife 017- Birth Registration 018- Death Registration 019- Marriage Registration 020- Divorce Registration 021- Issue ID Card 022- Issue License 023- Issue License from Old License 025- Renew License 026- Renew Vehicle Registration 027- Transfer Owner 028- Re-issue Registration Card 029- Re-issue License Plate ( 1 plate only) 030- Export Vehicle 031- Exchange Plates by Owner 032- Exchange Plates Not by Owner 034- Sequence Number Inquiry 2 (New License Plates Only) 035- Issue New Passport 037- Renew Passport 038- Family Visa 039- Issue Visa 040- Traffic Violations by Violator ID 041- Query traffic violations by violation ID 042- Register Vehicle 043- Re-import vehicle 044- Transfer Plates (Give plates to registered vehicle without plates) 045- Changing Current Vehicle plate 046- Pay All Deportation Sentences Installments 047- Pay One Deportation Sentence Installment 049- Transform Vehicle Into Junk 050- Pay a Deportation Travel Ticket 052- Lost passport Fine 053- Issue Family Card 054- Other Fees and Fines 057- Extend Exit Reentry Visa Duration 058- Associate Fees for a Specific Associate Service ID 059- Associates Fees for All Registered Associates on the Head of Household Iqamah 060- List Violations by providing the Issuing entity and category ID 061- Replace Damaged License 063- Print Citizen Information 064- Replace Lost License 065- Entry Visa Fees 066- Exceeding The Visa Residency Duration 067- Retrieve The Beneficiary ID |
R | 3 |
BranchCode | BranchCode | R | 10 |
PaymentMethod | CASH CCARD = Credit Card EFT = Funds Transfer ACTDEB = Debit to account |
O | 32 |
BenId | the beneficiary is the actual customer for the biller 049- Transform Vehicle Into Junk |
R | 32 |
BenfIdtype | the beneficiary Type is the actual customer for the biller, If the Beneficiary Id is not National ID, Iqama ID, Business ID, or Passport Id, then this | O | 3 |
BenName | BeneficaryName | O | 128 |
SponsorId | The Id of the Sponsor of Visa to the customer Mandatory for the following services: 002- Issue New Iqama 009- Transfer Dependant to be Head of Household |
R/O | 10 |
JobCategory | 06- Farming Labor 20- Relatives (Family Visa) 21- Housing Labor 22- Shepherd Labor 23- Other Mandatory for the following services: 002- Issue New Iqama 009- Transfer Dependant to be Head of Household |
R/O | 2 |
IqamaDuration | This value contains the duration of Iqama (In months 3,6,9,12,……. In multiples of 3 till max 300) Mandatory for the following services: 002- Issue New Iqama 003- Renew Iqama 016- Issue New Iqama for a Citizen‟s wife This value contains the duration of Iqama (In years 1,2,3).Mandatory and Applicable for only 009- Transfer Dependant to be Head of Household |
R/O | 3 |
style="white-space: nowrap">DependentCount | The Value of Number of Dependents of the customer, Mandatory for the following services: 013- Dependents Entry Visa Fee Collection. 014- Adding Dependent born inside Saudi Arabia after one year from his date of birth |
R/O | 6 |
VisaCount | This is the Value of Number of visas based on the number of dependents or employees, Mandatory for the following services: 038- FamilyVisa 039- Labor Visa |
R/O | 6 |
VisaType | 01- Work Visa 02- Seasonal Work Visa 03- Temporary Work Visa Single Travel 04- Temporary Work Visa Multiple Travels Mandatory for the following service: 039- Labor Visa |
R/O | 2 |
VisaNum | The Saudi Visa Number Mandatory for the following services: 006- Visa Cancellation |
R/O | 36 |
CitizenId | This is the Id value of the Saudi citizens Mandatory for the following service: 016- Issue New Iqama for a Citizen‟s Wife |
R/O | 10 |
EventDt | Mandatory for the following services: 017- Birth Registration 018- Death Registration 019- Marriage Registration 020- Divorce Registration 021- Lost ID Cards Registration |
R/O | 19 |
LicenseType | 01 -Temporary private license 02 -Motorcycle 03 -Private 04 -Public Taxi 05 -Small Carriage Vehicle 06 -Medium Truck 07 -Heavy Truck 08 -Heavy Equipment Vehicle Mandatory for the following services: 022 -Issue License O 023 -Issue License from Old License 024-Replace license 025-Renew License |
R/O | 2 |
VehicleSeqNum | This is the unique number of the vehicle provided by the manufacturer Mandatory for the following services: 026 -Renew Vehicle Registration 027 -Transfer Owner 028 -Re-issue Registration Card 029 -Re-issue License Plate ( 1 plate only) 030 -Export Vehicle 031 -Exchange Plates by Owner 032 -Exchange Plates Not by Owner 044 - Transfer Plates (Give plates to registered vehicle without plates) 045 - Transfer Plates (changing current vehicle plates) 049 - Transfer vehicle to junk |
R/O | 36 |
NewOwnerId | This is the Id of the person to whom the vehicle registration will be transferred Mandatory for the following services: 027 -Transfer Owner 032 -Exchange Plates Not by Owner, 032-Exchange Plates Not by owner, 049 - Transform Vehicle Into Junk |
R/O | 10 |
ViolationId | This is the numeric value present in the violation ID Mandatory for the following services: 041 - Query traffic violations by violation ID |
C | 10 |
BodyType | Motorcycle 2 tires 2 - Motorcycle 3 tires 3 - Motorcycle 4 tires 4 - Small car 2 doors 5 - Small car 4 doors 6 - Big car 4 doors 7 - 2 doors convertible car 8 - 4 doors convertible car 12 - Truck less than 3500 KG 13 - Truck 14 - Tank Wagon 15 - Dump truck 16 - 12 seats bus or less 17 - Bus with more than 12 seats 19 - Heavy utility car 20 - Utility car for public works This represents the body type Mandatory for the following service: 042 - Register Vehicle 043 - Re-import vehicle 044 - Transfer Plates (Give plates to registered vehicle without plates) 045 - Transfer Plates (changing current vehicle plates) |
R/O | 3 |
NewRegType | 01 - Private 02 - Public transportation 03 - Private transportation 08 - Exported 09 - Diplomatic 10 - Motorcycle 11 - Temporary Mandatory for the following service: 042 - Register Vehicle 043 - Re-import vehicle 044 - Transfer Plates (Give plates to registered vehicle without plates) 045 - Transfer Plates |
R/O | 2 |
PassportType | 01 -Normal 02 -Diplomatic 03 -Private 04 -Travel Document Mandatory for the following service: 035 -Issue New Passport 036 -Re-issue Passport 037 -Renew Passport |
R/O | 2 |
VehCustCardNum | For future use and currently will not be handled by A4SADAD Mandatory for the following service for vehicle custom card number: 042 - Register Vehicle 043 - Re-import Vehicle |
R/O | 10 |
LicenseDuration | This value contains the duration of license in years Mandatory for the following services: 022 -Issue License 023 -Issue License For Old 025 -Renew License Possible Values: 01 02 05 10 |
R/O | |
MultiCurrency | 0-the payment is not using multi-currency transaction 1-the payment is using multi-currency transaction |
O | 1 |
Currency | The currency used in the multi-currency payment | O | 3 |
ExRate | Exchange rate value (leading sign followed by zeros ) with decimal point |
R/O | 19 |
ValidityDuration | Validity Duration:- 01 - One Year 02 - Two Years 03 - Three Years 04 - Four Years 05 - Five Years 10 - Ten Years |
R/O | 2 |
Visa Duration | Visa Duration:- 30 - 30 days 60 - 60 days 90 - 90 days 120 - 120 days 150 - 150 days 180 - 180 days 210 - 210 days 240 - 240 days 270 - 270 days 300 - 300 days 330 - 330 days 360 - 360 days 390 - 390 days 420 - 420 days 450 - 450 days 480 - 480 days 510 - 510 days 540 - 540 days 570 - 570 days 600 - 600 days 630 - 630 days 660 - 660 days 690 - 690 days 720 - 720 days 750 - 750 days 780 - 780 days 810 - 810 days 840 - 840 days 870 - 870 days 900 - 900 days 930 - 930 days 960 - 960 days 990 - 990 days 1020 - 1020 days 1050 - 1050 days 1080 - 1080 days |
R/O | 4 |
IssuanceReason | Issuance Reason:- 01 - First Time Issuance 02 - Renewal 03 - Lost 04 - Stolen 05 - Damaged 06 - Information Update |
R/O | 2 |
CardVerNum | Two digits on the card. Mandatory when IssuanceReason is: 03 - Lost 04 - Stolen 05 - Damaged Optional for IssuranceReason is: 01 - First Time Issuance 02 - Renewal 06 - Information Update |
R/O | 2 |
VerdictNum | Verdict Number | R/O | 10 |
AssociateID | Associate ID • 10 digits for the associated alien Iqama Id related to the service 058 • This field is mandatory for service 058 |
R/O | 10 |
FeeDurationEndDt | Fee Duration End Date (in HIJRI) • This field to applicable for the services 058 and 059 YYYY-MM-DD |
C | 10 |
DependentDOB | Dependent Date of birth (in HIJRI) • This field is applicable to service 014 YYYY-MM-DD |
C | 10 |
IssuingEntityID | Issuing Entity ID • This field is applicable to service 060 |
R/O | 8 |
ViolationCategoryID | Violation Category ID • This field is applicable to service 060 |
R/O | 4 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
LangPref | Echo From Request | Yes |
BenName | Beneficiary Name | Yes |
POINum | Customer Id | Yes |
POIType | Customer type | Yes |
GroupPayId | Group payment ID | Yes |
SADADTrnNum | For Branches only, this field will be used to return SPTN & BNKPTN. The first 16 digits for SPTN and the second 16 digits for BNKPTN. | Yes |
TotalFeeAmt | This value indicates the amount of fees paid for the service which beneficiary had subscribed. | Yes |
RecordCount | Number of times MOIFeeInqDtls repeats | Yes |
ProfUpdStatusCode | Profile update status code | Yes |
FeeType | Fee Type | Yes |
FeeDtlsAmt | Fee details amount Examples of valid values: |
Yes |
Bill Inquiry (Pvt Billers)
Bill Inq
This service will be used to get the due amount that needs to be paid and the status of bill. Normally this service will be used for non-government entities like STC etc.
If we doing some recharge then we don't need to call this service.
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
Sequence Number | Sequence Number | R | 50 |
LangPref | Preferred Language | R | 10 |
POI/POINum | Customer official Id is a unique identifier for a bill-paying entity, including people and companies. | O | 50 |
POI/POIType | Proof of identity type. Customer ID Type Copy of Iqama National ID Passport Number | O | 50 |
BillingAcct | Bill account number | R | 20 |
BillerId | Partner need to maintain the list of SADAD billers. 001- STC 002– SCECO 003 - NCCI 004 – Marafiq 005 – Mobily, etc |
R | 3 |
SubscriberNum | Bill Subscriber Number | R | 19 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
LangPref | Echo From Request | Yes |
RecordCount | No of times BillDtls repeats | Yes |
BillStatus | BillPaid -The bill is fully paid and the net due amount is set to zero BIllPartialPd -One or more payments have been applied to the bill, but an outstanding balance remains BillOverPd -The bill has a net due amount less than zero BillUnpaid -No payments have been applied to the bill. BillDeactive -Bill is no longer payable | Yes |
CurrAmt | Current bill Amount | Yes |
ExactPmtRqd | Exact payment required flag | Yes |
FeeType | Fee type | Yes |
BillCategory | CIP' - Customer Initiated Payments 'HTOL' - High Toll Bills | Yes |
SvcType | Service Type | Yes |
BillCycle | Bill Cycle | Yes |
DisplayLabel | Extra information for customer (e.g. customer name, contract number…) | Yes |
BillNum | Bill number | Yes |
BillingAcct | Billing account | Yes |
BillerID | F001- STC 002 – SCECO 003 – NCCI |
Yes |
AmtDue | Bill amount to be paid | Yes |
BillDueDate | Close Date of the Bill YYYY-MM-DDTHH:MM:SS | Yes |
NoOfPmtRangeInfo | No of times payment range info repeats | Yes |
Bill Pay Validation (Pvt Bill Payment)
Normal Bill Payment
This service will be used to pay bill for normal biller or other then MOI biller. For example STC or telco bill etc..
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
Sequence Number | Sequence Number | R | 50 |
LangPref | Preferred Language | R | 10 |
POI/POINum | Customer official Id is a unique identifier for a bill-paying entity, including people and companies. This field is mandatory for non-branch channel and optional for branch | R/O | 50 |
POI/POIType | Customer ID Type is mandatory for non-branch channel and optional for branch. Mapping with A4SADAD. Passport Number BTELLER Business ID Copy of Iqama National ID |
R/O | 50 |
proxyPOI/POINum | Customer ID number.This is mandatory only for branch channel, other than branch it is space | R/O | 50 |
ProxyPOI/POIType | Proxy iCustomer ID Type This is mandatory only for branch channel, other than branch it is space Ex. BED = Bank Emp, BTL = Bank Teller *required if customer type is blank - used for customers paying cash | R/O | 50 |
BillPayValInfo/RecordCount | Number of times BillDtls repeats | R | 3 |
BillPayValInfo/BillPayValDtls/CurrAmt | Current Amount | R | 19 |
BillPayValInfo/BillPayValDtls/TrnDt | Transaction Date | R | 19 |
BillPayValInfo/BillPayValDtls/ValDt | Most of the time trnDt and ValDt will be same but if you make a transaction on non-business day then trnDt will be the same day but valDt will be the immediate next working day. | R | 19 |
BillPayValInfo/BillPayValDtls/BillCycle | Bill Cycle Number | R/O | 16 |
BillPayValInfo/BillPayValDtls/BillNum | Bill Number.This field is optional if billing account is provided | R/O | 19 |
BillPayValInfo/BillPayValDtls/BillingAcct | Bill Subscriber Number. This field is optional if bill number is provided | R/O | 19 |
BillPayValInfo/BillPayValDtls/BillerID | Biller ID | R | 3 |
BillPayValInfo/BillPayValDtls/BranchCode | Default Branch number 0160 | R | 10 |
BillPayValInfo/BillPayValDtls/PaymentMethod | CASH CCARD = Credit Card EFT = Funds Transfer ACTDEB = Debit to account |
R | 6 |
BillPayValInfo/BillPayValDtls/PaymentType | POST = Post Paid(default) RCHG = Recharge RNEW = Renewal RDEP = Roaming deposit RADV = Advance payment for roaming |
R | 4 |
BillPayValInfo/BillPayValDtls/ServiceType | CIP -Customer Initiated Payment ELCT -Electricity PHON -Phone GSM -Mobile phone service – a subtype of PHON LLIN -Land Line phone service – a subtype of PHON INSR -Insurance BKSV -Bank Service GOVT -Government Service MED -Medical CCRD -Credit Card UTIL -Utility PCIN -Personal Computer Payment Installment EXAM -University Exam Fees |
R | 4 |
BillPayValInfo/BillPayValDtls/PaymentInfo | Payment Reference Information” value must match the BillRefInfo value attached to the bill. However, this value should be returned if it was included in the bill inquiry response | R/O | 80 |
BillPayValInfo/BillPayValDtls/ANBAcctNum | Debit Account Number or Credit Card Number | R | 20 |
BillPayValInfo/BillPayValDtls/ANBAcctType | ANB Account Type 1-Normal Account 2-Credit Card Account |
R | 1 |
BillPayValInfo/BillPayValDtls/CardExpDt | Credit card expiration date, with format (yyyyMMdd). This field is mandatory for credit card account only | C | 10 |
BillPayValInfo/BillPayValDtls/MultiCurrency | 0-the payment is not using multi currency transaction 1-the payment is using multi currency transaction |
R/O | 1 |
BillPayValInfo/BillPayValDtls/Currency | The currency used in the multi currency payment | R/O | 3 |
BillPayValInfo/BillPayValDtls/ExRate | Exchange rate value | R/O | 18 |
BillPayValInfo/BillPayValDtls/BenfId | For Mobile Prepaid Payments | R/O | 50 |
BillPayValInfo/BillPayValDtls/BenfIdType | Debit Account Number or Credit Card Number | R | 20 |
BillPayValInfo/BillPayValDtls/ANBAcctType | For Mobile Prepaid Payments: Passport Number BTELLER National ID Business ID Copy of Iqama Comm. Reg. |
R/O | 50 |
SMSInfo/MobileNum | Customer mobile number | R/O | 20 |
MSInfo/SMSPreferLang | Customer SMS preferred language | R/O | 10 |
SMSInfo/Nickname | Biller Nickname | R/O | 50 |
SMSInfo/BillerName | Biller Name in English | R/O | 50 |
SMSInfo/BillerNameAr | Biller Name in Arabic | R/O | 50 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
LangPref | Echo From Request | Yes |
GroupPayId | Group payment ID | Yes |
RecordCount | No of times BillDtls repeats | Yes |
PayRecordStatus | B00000 -Success 10001 -Date must be Gregorian 12000 -Merchant is deactivated from Sadad 12001 -The specified Biller does not exist in the system 13000 -Account not found. 13006 -Your account has been disabled. Please contact the Administrator 30000 -Overpayment or underpayment is not allowed (When no overpayment, underpayment rule is defined and it fails the exact amount validation). 30006 -Over payment is not allowed ,etc: |
Yes |
BankTrnNum | Bank Payment Transaction Number for future reference | Yes |
SADADTrnNum | SADAD payment transaction number for future reference | Yes |
CurrAmt | Current Amount | Yes |
ProcessDate | Transaction Date YYYY-MM-DDTHH:MI:SS | Yes |
BillingAcct | Billing account number | Yes |
BillerID | Biller ID | Yes |
ANBAcctNum | ANB Account Number Debit Account Number Or Credit Card Number | Yes |
ANBAcctType | ANB Account Type 1-Normal Account 2-Credit Card Account |
Yes |
Inquiry
Invoice Inq
This service mostly will be used by esal billers.
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
Sequence Number | Sequence Number | R | 50 |
LangPref | Preferred Language | R | 10 |
InvoiceCode | InvoiceCode you which you need to inquire. | R | 32 |
BillerId | Biller Identification number: Pass SIH if you dont know. | R | 3 |
StartDt | Start date for inquiring invoice. Format should be in YYYY-MMDDTHH: MM:SS | O | 19 |
EndDt | End date for inquiring invoice. Format should be in YYYY-MMDDTHH: MM:SS | O | 19 |
MinInqAmt | Minimum Amount for inquiring invoice | O | 20 |
MaxInqAmt | Maximum Amount for inquiring invoice | O | 20 |
SupplierName | Inquire invoice for specific Supplier | O | 150 |
RecCtrlIn/MaxRecs | Not applicable for this service. Always pass 1 | R | 2 |
RecCtrlIn/Offset | Not applicable for this service. Always pass 0 | O | 150 |
AdditionalInfo/Key | For future use | O | 50 |
AdditionalInfo/Value | For future use | O | 50 |
RecCtrlIn/Offset | For first request, value must be 1. For subsequent requests, need to carry the value in /Body/RecCtrlOut/Offset returned in the previous response. | R | 54 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
Offset | Page | Yes |
SentRecs | Number of returned records | Yes |
Completed | Completion flag | Yes |
BillCategory | The BillCategory element is populated with the Invoice Category. The values currently defined are EXACT and PARTIAL Yes InvoiceCode Invoice code | Yes |
InvoiceNum | Invoice number | Yes |
BillerID | Biller identification number | Yes |
BillerName | Biller Name | Yes |
BuyerName | Buyer Name | Yes |
AmtDue | Due Amount for the invoice provided | Yes |
DueDt | SADAD Invoice Due Date. Format is YYYY-MM-DDTHH:MM:SS | Yes |
BillType | Type of invoice | Yes |
Locale | Invoice Current bill status locale | Yes |
Value | Invoice Current bill status value | Yes |
MinPmtAmt | Minimum Payment amount for the invoice | Yes |
MaxPmtAmt | Maximum Payment amount for the invoice | Yes |
AdditionalInfo | Additional Info Aggregate | Yes |
Transaction Inq
This service can used to inquire about the transactions status of all requests (MOI/Non-MOI or SADAD Billers). You can utilize this service to make sure about the payment status of request in case of Timeout or any other incomplete request status. Thisservice can be used to inquire about esal billers.
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
TrnsType | 1 – All 2 – Payment 3 – Payment Reversal 4 – Refund |
R | 1 |
FromDt | YYYY-MM-DD | O | 10 |
ToDt | YYYY-MM-DD | O | 10 |
AcctNum | ANB account number | R | 20 |
AcctType | 1. Normal Account 2. Credit Account Account | O | 1 |
ANBTrnsNum | This number could the payment number or reversal number | O | 20 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
TimeStamp | YYYY-MM-DDTHH:MM:SS | Yes |
RecordCount | Number of times SadadTrnsDtls repeat | Yes |
SadadTrnNum | SADAD payment transaction number | Yes |
BankTrnNum | Bank Payment Transaction Number | Yes |
ProcessDate | YYYY-MM-DDTHH:MM:SS | Yes |
TrnsType | 1 – All 2 – Payment 3 – Payment Reversal 4 – Refund |
Yes |
BillerId | Biller Id | Yes |
SubscribeNum | Subscriber Billing account of the bill | Yes |
ValDt | YYYY-MM-DDTHH:MM:SS | Yes |
Amount | Amount | Yes |
PayStatusCode | Payment Status in SADAD | Yes |
ANBAcctNum | ANB Account Number | Yes |
BranchCode | ANB Branch code | Yes |
MOISvcCode | MOI service code | Yes |
Bill Pay Advice (Govt/MOI Bill Payment)
In this bill payment section we have two services. Bill pay advice and Invoice bill payment. Both these services have different functionality as explained in each service.
Bill Pay Advice
This service is used to initiate the actual payment of MOI services. You need to call MOI Fee Inquiry before you calling this service. Once you have call the MOI Fee Inquiry then you can call this service by getting some fields from the response.
You need to copy these fields from MOI Fee Inquiry response and pass in this Bill Pay Advice service:
- GroupPayId.
- SADADTrnNum.
Flow:
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
Sequence Number | Sequence Number | R | 50 |
LangPref | Preferred Language | R | 10 |
ProxyPOI/POINum | Customer ID number. This is mandatory only for branch channel, other than branch it is space | O | 10 |
ProxyPOI/POIType | Customer ID Type. This is mandatory only for branch channel, other than branch it is space | O | 10 |
GroupPayId | Mandatory for MOI payment | R | 36 |
BillPayAdviceInfo/RecordCount | Number of times BillPayAdviseDtls repeats | R | 3 |
BillPayAdviceInfo/BillPayAdviceDtls/ANBAcctNum | Debit Account Number or Credit Card Number | R | 20 |
BillPayAdviceInfo/BillPayAdviceDtls/ANBAcctType | ANB Account type 1-Normal Account 2-Credit Card Account |
R | 1 |
BillPayAdviceInfo/BillPayAdviceDtls/CardExpDt | Credit card expiration date, with format (yyyyMMdd). This field is mandatory for credit card account only | R | 10 |
BillPayAdviceInfo/BillPayAdviceDtls/SADADTrnNum | Returned by SADAD in PVALRS and sent in PADVRQ | R | 32 |
/Body/BillPayAdviceInfo/BillPayAdviceDtls/POI/POINum | Customer official Id is a unique identifier for a bill-paying entity, including people and companies. This field is mandatory for non-branch channel and optional for branch | R/O | 50 |
/Body/BillPayAdviceInfo/BillPayAdviceDtls/POI/POIType | Customer ID Type This field is mandatory for non-branch channel and optional for branch. Mapping with A4SADAD. Passport Number-PAS BTELLER-BTL Business ID-BIS Copy of Iqama-IQA National ID-NAT |
R/O | 50 |
BillPayAdviceInfo/BillPayAdviceDtls/PmtStatusCode | Payment Satatus Code PmtTransf – The payment was successfully completed Or, if a multi-payment advice failed, the corresponding payment record was not the cause of that failure. PmtNotTransf – The payment was not successfully completed. Or, if a multi-payment advice failed, the corresponding payment was at least one of the causes for that failure. Use-case: When you do a MOI fee inquiry, then its good to call the bill pay advice against that MOI inquiry. After doing the MOI inquiry, if you want to make payment then pass this field as PmtTransf otherwise if you don’t want to make payment then call the bill pay advice with this field as PmtNotTransf. In case you do a MOI inquiry and dont call the bill pay advice, this field will be marked as PmtNotTransf automatically after one day. Dont need to take input from customer. |
R | 12 |
BillPayAdviceInfo/BillPayAdviceDtls/TrnAmt | Transaction Amount | R | 19 |
BillPayAdviceInfo/BillPayAdviceDtls/BillProsDt | Bill Posting Date: Lets you call the service today but you want to make the actual payment on some future day, then you need to input that day datetime here. |
R | 19 |
BillPayAdviceInfo/BillPayAdviceDtls/BillNum | Bill Number. This field is optional if billing account is provided, and not used in case of advising Fee inquiry payment | O | 19 |
BillPayAdviceInfo/BillPayAdviceDtls/BillingAcct | Subscriber Number. This field is optional if bill number is provided, and not used in case of advising Fee inquiry payment | O | 19 |
/BillPayAdviceInfo/BillPayAdviceDtls/BillerID | Biller ID 25- STC 002 – SCECO 003 – NCCI 004 – Marafiq 005 – Mobily OR MOI biller code etc… |
R | 3 |
BillPayAdviceInfo/BillPayAdviceDtls/ServiceCode | This represents the service offered by ministry of interior to the customers: 001 -Extend Visitor Visa 002 -Issue New Iqama 003 -Renew Iqama 004 -Exit Re-entry Visa ( Single) 005 -Exit Re-entry Visa (Multiple) 006 -Visa Cancellation 007 -Transfer of Sponsorship 008 -Replace Iqama 009 -Transfer Dependant to be Head of Household 010 -Transfer Head of Household to be Dependant 011 -Transfer Dependant to a New Head of Household 012 -Change of Occupation , 013 -Dependants Entry visa Fee Collection 14 -Adding Dependent born inside Saudi Arabia after one Year from his Date Of Birth 015 -Dependent Separation 016 -Issue New Iqama for a Citizen’s wife 017 -Birth Registration 018 -Death Registration 019 -Marriage Registration 020 -Divorce Registration 021 -Lost ID Cards Registration 022 -Issue License 023 -Issue License from Old License 024 -Replace License 025 -Renew License 026 -Renew Vehicle Registration 027 -Transfer Owner 028 -Re-issue Registration Card 029 -Re-issue License Plate ( 1 plate only) 030 -Export Vehicle 031 -Exchange Plates by Owner 032 -Exchange Plates Not by Owner 033 -Sequence Number Inquiry 1 (New License Plates Only) 034 -Sequence Number Inquiry 2 (New License Plates Only) 035 -Issue New Passport 036 -Re-issue Passport 037 -Renew Passport 038 -Family Visa 039 -Labor Visa 040 -Traffic Violations 041 - Query traffic violations by violation ID 042 - Register Vehicle 043 - Re-import vehicle 044 - Transfer Plates (Give plates to registered vehicle without plates) 045 - Transfer Plates (changing current vehicle plates) 046 - Pay All Deportation Sentences Installments 047 - Pay One Deportation Sentence Installment 048 - Runaway Cancelation 049 - Transform Vehicle Into Junk 050 - Pay a Deportation Travel Ticket Fee 052 - Lost passport Fine 053 - Issue Family Card 054 - Other Fees and Fines 055 - Pay all Violations’ Fines 056 - Pay One Civil Defense Violations’ Fine 057 - Extend Exit Reentry Visa Duration 058 - Associate Fees for a Specific Associate Service ID 059 - Associate Fees for All Registered Associates on the Head of Household Iqama Service 060- Pay by Violator ID for a Specific Category |
R | 3 |
/BillPayAdviceInfo/BillPayAdviceDtls/BenId | the beneficiary is the actual customer for the biller for which you going to pay the fee. | R | 32 |
/BillPayAdviceInfo/BillPayAdviceDtls/BenfIdType | The beneficiary ID Type: i.e Iqama, national ID etc | R | 3 |
BillPayAdviceInfo/BillPayAdviceDtls/BenName | Beneficiary Name | R/O | 128 |
BillPayAdviceInfo/BillPayAdviceDtls/SponsorId | The Id of the Sponsor of Visa to the customer | R/O | 10 |
BillPayAdviceInfo/BillPayAdviceDtls/IqamaDuration | This value contains the duration of Iqama . In multiples of 3 till max 300. This value contains the duration of Iqama (In years 1,2,3 mandatory and Applicable for only 009 -Transfer Dependant to be Head of Household service | R/O | 5 |
BillPayAdviceInfo/BillPayAdviceDtls/JobCategory | This represents the type of job the customer is applying | R/O | 2 |
BillPayAdviceInfo/BillPayAdviceDtls/DependentCount | The value of Number of Dependents of the customer | R/O | 5 |
BillPayAdviceInfo/BillPayAdviceDtls/VisaCount | This is the value of number of visas based on the number of dependents or employees, | R/O | 2 |
BillPayAdviceInfo/BillPayAdviceDtls/VisaType | This represents the type of visa the customer is applying | R/O | 2 |
BillPayAdviceInfo/BillPayAdviceDtls/VisaNum | The Saudi visa number | R/O | 10 |
BillPayAdviceInfo/BillPayAdviceDtls/CitizenId | This is the Id value of the Saudi citizens | R/O | 10 |
BillPayAdviceInfo/BillPayAdviceDtls/EventDt | This value is the actual date of the incident that had happened which should be reported to the government: (YYYY-MM-DDTHH:MM:SS) | R/O | 19 |
BillPayAdviceInfo/BillPayAdviceDtls/LicenseType This represents | the type of license the customer wants to apply | R/O | 2 |
BillPayAdviceInfo/BillPayAdviceDtls/VehicleSeqNum | This is the unique number of the vehicle provided by the manufacturer | R/O | 10 |
BillPayAdviceInfo/BillPayAdviceDtls/NewOwnerId | This is the Id of the person to whom the vehicle registration will be transferred | R/O | 10 |
BillPayAdviceInfo/BillPayAdviceDtls/ViolationId | This is the numeric value present in the license plate: 1-Normal Account 2-Credit Card Account |
R/O | 10 |
BillPayAdviceInfo/BillPayAdviceDtls/BodyType | This represents the vehicle body type:Yyyy-MM-dd | R/O | 3 |
BillPayAdviceInfo/BillPayAdviceDtls/NewRegType | This represents the new type of vehicle registration | R/O | 2 |
BillPayAdviceInfo/BillPayAdviceDtls/PassportType | This represents the type of passport the customer wants to apply | R/O | 2 |
BillPayAdviceInfo/BillPayAdviceDtls/VehCustCardNum | Vehicle custom card number | R/O | 10 |
BillPayAdviceInfo/BillPayAdviceDtls/MultiCurrency | Multi Currency Flag Y-the payment is using multi currency transaction N-the payment is not using multi currency transaction: Y-the payment is using multi currency transaction N-the payment is not using multi currency transaction |
1 | |
BillPayAdviceInfo/BillPayAdviceDtls/Currency | The currency used in the multi currency payment | R/O | 3 |
BillPayAdviceInfo/BillPayAdviceDtls/ExRate | Exchange rate value | R/O | 18 |
BillPayAdviceInfo/BillPayAdviceDtls/LicenseDuration | This value contains the duration of license in years Mandatory for the following services: 022 –Issue License 023 –Issue License For Old 025 –Renew License Possible Values: 01 02 05 |
R/O | 5 |
BillPayAdviceInfo/BillPayAdviceDtls/IssuingEntityID | Issuing Entity ID(This field is applicable to service 060) | R/O | 8 |
BillPayAdviceInfo/BillPayAdviceDtls/ViolationCategoryID | Violation Category ID(This field is applicable to service 060) | R/O | 4 |
SMSInfo/MobileNum | Customer mobile number | R/O | 20 |
SMSInfo/SMSPreferLang | Customer SMS preferred language | R/O | 10 |
SMSInfo/Nickname | Biller Nickname | R/O | 50 |
SMSInfo/BillerName | Biller Name in English | R/O | 50 |
SMSInfo/BillerNameAr | Biller Name in Arabic | R/O | 50 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
GroupPayId | Mandatory for MOI payment. Sent only if /MsgRqHdr/Version < 2.0 | Yes |
RecordCount | Number of times BillPayAdviseData repeats | Yes |
PayRecordStatus | 00000 –Success 10001 –Date must be Gregorian 12000 –Merchant is deactivated from Sadad 12001 –The specified Biller does not exist in the system 13000 –Account not found. 13006 –Your account has been disabled. Please contact the Administrator 30000 –Overpayment or underpayment is not allowed (When no overpayment, underpayment rule is defined and it fails the exact amount validation). 30006 –Over payment is not allowed ,etc |
Yes |
BankTrnNum | ANB payment transaction number | Yes |
SADADTrnNum | SADAD payment transaction number | Yes |
PayAdviceStatus | PmtTransf – The payment was successfully completed Or, if a multi-payment advice failed, the corresponding payment record was not the cause of that failure. PmtNotTransf – The payment was not successfully completed. Or, if a multi-payment advice failed, the corresponding payment was at least one of the causes for that failure. | Yes |
Invoice Bill Payment
This service is used to pay bill using bill invoice number provided by relevant biller. Most of the time it will used for ESAL billers.
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
Sequence Number | Sequence Number | R | 50 |
LangPref | Preferred Language | R | 10 |
POI/POINum | Customer official Id is a unique identifier for a bill paying entity, including people and companies. | R | 32 |
POI/POIType | Customer Official ID type This field is mandatory for non-branch channel and optional for branch. Mapping with A4SADAD. Passport Number-PAS BTELLER-BTL Business ID-BIS Copy of Iqama-IQA National ID-NAT. Proof of identity type: National ID Copy of Iqama EXPAT ID CARD Business ID Account ID SADAD ID Bank Teller Number Bank Employee Number SADAD Employee Number Biller Employee Number Passport Number |
O | 50 |
BankAcctInfo/BankAcctNum | Customer Bank Account Number | R | 20 |
BankAcctInfo/BankAcctType | Account Type: 0:Normal Account 1:Credit Card Account |
R | 15 |
BankAcctInfo/CardExpDt | Card Expiry date YYYY-MM-DDTHH:MM:SS | O | 19 |
BankAcctInfo/MultiCurFlg | 1:Yes 2:No |
O | 1 |
BankAcctInfo/CurCode | The currency used in the multi-currency payment. Default SAR | O | 3 |
BankAcctInfo/ExRate | Exchange Rate. Default 1 | O | 1 |
PmtInfo/CurAmt | Payment Amount | R | 12 |
PmtInfo/PrcDt | Transaction date( YYYY-MMDDTHH:MM:SS) | R | 19 |
PmtInfo/DueDt | Bill due date( YYYY-MMDDTHH:MM:SS) | R | 19 |
PmtInfo/BillCycle | Bill cycle Number | O | 32 |
PmtInfo/BillNum | Bill Number | O | 32 |
PmtInfo/AcctIdInfo /BillingAcct | Billing Account | R | 32 |
PmtInfo/AcctIdInfo /BillerId | Biller Code | O | 32 |
PmtInfo/AcctIdInfo /BillerName | Biller Name | O | 128 |
PmtInfo/DistCode | Bank District Code, Current value: ARNBSARI | R | 10 |
PmtInfo/BranchCode | Bank Branch code Current value: 0170 |
R | 10 |
PmtInfo/PmtMethod | Payment method | R | 32 |
PmtInfo/PmtType | Payment method type: POST-Postpaid RCHG-Recharge RNEW-Renewal RDEP-Roaming Deposit RADV-Advance Payment for roaming |
R | 04 |
PmtInfo/ChkDigit | Check Digit | O | 2 |
PmtInfo/SvcType | Service Type: CIP -Customer Initiated Payment ELCT -Electricity PHON -Phone GSM -Mobile phone service – a subtype of PHON LLIN -Land Line phone service – a subtype of PHON INSR -Insurance BKSV -Bank Service GOVT Government Service MED -Medical CCRD -Credit Card UTIL -Utility PCIN -Personal Computer Payment Installment EXAM -University Exam Fees |
R | 50 |
PmtInfo/PmtRefInfo | Payment Reference information(The value coming from biller in the Bill Inquiry) /td> | O | 128 |
PmtInfo/IncInfo/IncPmtRange | Payment Range 1:True 2:False |
R | 1 |
PmtInfo/BenfIdInfo/BenfId | Beneficiary ID | R | 32 |
PmtInfo/BenfIdInf/BenfIdType | Proof of identity type: National ID Copy of Iqama EXPAT ID CARD Business ID Account ID SADAD ID Bank Teller Number Bank Employee Number SADAD Employee Number Biller Employee Number Passport Number |
R | 50 |
PmtInfo/AdditionalInfo/Key | Key_Type | O | 50 |
PmtInfo/AdditionalInfo/Value | Desc_type | O | 50 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
POINum | Customer Id | Yes |
Initiate Refund
To initiate refund here is the process.
-
You need to generate refund id using Refund I Generation service.
-
You will initiate the refund using refund inquiry service
-
You can check your refund request status using refund status service
Flow:
Refund Status
This service is used to get Refund Status from SADAD by providing Refund ID.
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
Sequence Number | Sequence Number | R | 50 |
RefundId | Refund ID | R | 18 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
RefundId | Refund ID | Yes |
TimeStamp | YYYY-MM-DDTHH:MM:SS | Yes |
RefundStatus | 0- Processed (Amount Refunded) 1- Approved (Refund request accepted and will be processed) 2- Rejected (Request rejected) 3- Pending (Represents that the refund is not rejected by the biller but will update the status as rejected or accepted during refund upload) 4- Not found (Request details not found) 5- Already_Reconciled (Already refunded) 6- UnReconciled (A reconciliation error has occurred for the associated refund) 7- Processing_Failed 8- Timeout (Represents that the bank has not adviced refund in the expected timeframe) 9- Duplicate (Duplicate Refund in Bank) |
Yes |
Refund Inquiry (Initiate Refund)
This service is used to get refund information from SADAD.
Fields | Description | R: Required O:Optional C:Conditional |
Length |
---|---|---|---|
Sequence Number | Sequence Number | R | 50 |
LangPref | Preferred Language | R | 10 |
RefundId | Refund ID | R | 35 |
BillerId | 001- STC 002 – SCECO 003 - NCCI 004 – Marafiq 005 – Mobily etc… |
R | 3 |
BenfId | the beneficiary is the actual customer for this service, for “MOI Motor Vehicle biller” send the “vehicle sequence number” or “Vehicle Custom Card Number” depend on the service | R | 32 |
BenfIdType | the beneficiary Type is the actual customer for this service, , If the Beneficiary Id is not National ID, Iqama ID, Business ID, or Passport Id, then this | R | 3 |
ANBAcctNum | BankAcct represents the beneficiary account (debit account) or Credit Card Number where the amount will be transferred | R | 20 |
ANBAcctType | 1-Normal Account 2-Credit Card Account |
R | 1 |
CardExpDt | YYYY-MM-DD | R/O | 10 |
POI/POINum | Proof of identity number | R | 50 |
POI/POIType | Proof of identity type Passport Number BTELLER Business ID Copy of Iqama National ID |
R | 50 |
ServiceCode | This represents the service offered by ministry of interior to the customers | R | 3 |
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
LangPref | ARABIC, ENGLISH | Yes |
RefundId | Refund Id is a unique Identification number assigned to individual refunds. | Yes |
BillerId | MOI Biller ID | Yes |
BankAcctNum | BankAcct is a savings or current bank account of the beneficiary (debit account) where the refund amount will be transferred | Yes |
ANBAcctType | 1-Normal Account 2-Credit Card Account |
Yes |
BenfId | the beneficiary is the actual customer for the biller | Yes |
BenfIdType | the beneficiary Type is the actual customer for the biller | Yes |
POINum | Customer official Id is a unique identifier for a bill-paying entity, including people and companies | Yes |
POIType | Proof of identity type For defined values refer to section Id Type in MB LOV doc Proof of identity type Passport Number BTELLER Business ID Copy of Iqama National ID |
Yes |
RefundExpDate | Refund Expiration Date YYYY-MM-DDTHH:MM:SS | Yes |
RefundStatusCode | Represent Refund status in SADAD Accepted - Represents the requested refund is accepted by the biller Already_Reconciled - Refund already reconciled Duplicate - Duplicate Refund in Bank Mismatch - Either the refund data in SRL or state of refund is different than the one in SADAD Not_In_Bank - Refund not known to Bank Not_In_Sadad - Refund does not exist in SADAD Pending - Represents that the refund is not rejected by the biller but will update the status as rejected or accepted during refund upload Processed - Represents that the refund has been processed and the customer has received the funds Processing_Failed - Indicates that funds transfer from the SRA to the beneficiaries‟ account has failed Reconciled - Refund has exactly matched between systems Timeout - Represents that the bank has not adviced refund in the expected timeframe. UnReconciled - A reconciliation error has occurred for the associated refund Rejected - Represents refund is rejected by the biller |
Yes |
ServiceCode | This represents the service offered by ministry of interior to the customers | Yes |
Billers List
Pvt Billers
Billers private endpoint used to get private biller details.
Field | Description | Always |
---|---|---|
BillerCode | Specific biller code | Yes |
Id | Unique Id | Yes |
BillerCategoryId | Biller category id | No |
ArabicDescription | Arabic description | Yes |
EnglishDescription | English description | Yes |
AllowPartialPayment | Partial payment | Yes |
MinimumPartialPayment | Minimum payment limit | Yes |
MOI/Govt Billers
Billers private endpoint used to get government biller details.
Field | Description | Always |
---|---|---|
StatusCode | Request status code | Yes |
StatusDesc | Request status | Yes |
HostName | Host name | No |
HostStatusCode | Host request status code | Yes |
HostStatusDesc | Host request status description | Yes |
RqUID | Unique Request ID | No |
ClientDt | Request time stamp | No |
TimeStamp | YYYY-MM-DDTHH:MM:SS | Yes |
RefundId | Refund Id (ANB swift code with 10 digits) | Yes |