Process a Payroll

Make payroll payments using SingleView API services

Overview

Payroll payments can be processed through SingleView APIs and require the following details to be enclosed in the payment processing request:

📘

Mandatory information

  • The user must provide the valid credentials in the header
  • Valid Signature, Access code as "Authorization: Bearer"
  • The request should be in the specified format
  • The request should include all the mandatory details with appropriate request tags

🌐Domain details

Process Payroll Payouts

Endpoint details

Endpoint URLMethodAuthentication requirements
/api/v1/payroll/transferPOST1/. clientid (Optional)
2. clientsecret (Optional)
3. Authorization: Bearer (Token)
4. SVReferenceID
5. CompanyId
6. Device (Ex: Mobile or Web)
7. DateTimeStamp

Sample request

curl --location 'http://sandboxapi.onesingleview.com/api/v1/payroll/transfer' \
--header 'CompanyId: MYCOMPANY'
--header 'SVReferenceID: Enter-SV-Reference-Id'
--header 'DateTimeStamp	:2025-01-02T10:20:39'
--header 'Device: Web'
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoiTDNyMmpxV29JS2I4MTNodDBNMlZ4WGpFZmR6WFNWaTFad3B5QnlkOVpHelZXR2ZwUmFQNUV1TXl6S1Aybi94Y0lwR2V5STNNMkdPL1pqakd4ZG0yclJKUkdhRXlaWGNpWnZnOHArMWIyOGtOQTVkZ0VKajVVSEdiTmtNPSIsImlhdCI6MTczNTgwMTQ3NywiZXhwIjoxNzM1ODA1MDc3fQ.Bh7LFkvxNFrLe9dmH5rURWjGpES-u4z2EGeyrNM7z6E'
--header 'Content-Type: application/json' \
--data '{
"Message": {
  "OSVPayrollMessageRequest": {
    "TransactionType": "PAYROLL",
    "OSVPayrollTransactionRequest": [
      {
        "TotalTransactionCount": "1",
        "MolCorporateID": "MOLID51922",
        "CorporateCommercialRegistrationNumber": "CCRN1237",
        "TransactionComment": "WPS Payroll",
        "FileSeqNo": "0501",
        "BankCode": "ALRAJHI",
        "PayrollReferenceNumber": "98198322",
        "TransactionData": [
          {
            "BeneficiaryAccountNumberNameAddress": {
              "BeneficiaryADD1": "Head Off P.O Box 66674, Riyadh",
              "BeneficiaryName": "Ali",
              "BeneficiaryAccount": "SA0580000204608015129115"
            },
            "OrderingCustomerNameAddress": {
              "OrderingCustomerAdd1": "P.O. Box 28, Riyadh 11411",
              "OrderingCustomerName": "Al Rajhi Ac Two"
            },
            "BeneficiaryBankCode": "ALRAJHI",
            "BeneficiaryAccountWithInstitutionBIC": "RJHISARI",
            "DateCurrencyAmount": {
              "Currency": "SAR",
              "Amount": "5000",
              "Date": "240103"
            },
            "OrderingCustomerAccountNumber": "SA8080000204608015129123",
            "PaymentDetails": "WPS Payroll",
            "SalaryDetails": {
              "OtherEarnings": "1000",
              "Deductions": "1000",
              "Id": "2843806023",
              "HousingAllowance": "1000",
              "BasicSalary": "4000"
            },
            "OrderingInstitution": "RJHISARI",
            "CompanyCode": "125001291",
            "SequenceNum": "981983200113"
          },
          {
            "BeneficiaryAccountNumberNameAddress": {
              "BeneficiaryADD1": "Head Off P.O Box 66674, Riyadh",
              "BeneficiaryName": "Ali",
              "BeneficiaryAccount": "SA1380000204608015691668"
            },
            "OrderingCustomerNameAddress": {
              "OrderingCustomerAdd1": "P.O. Box 28, Riyadh 11411",
              "OrderingCustomerName": "Al Rajhi Ac Two"
            },
            "BeneficiaryBankCode": "ALRAJHI",
            "BeneficiaryAccountWithInstitutionBIC": "RJHISARI",
            "DateCurrencyAmount": {
              "Currency": "SAR",
              "Amount": "5000",
              "Date": "240103"
            },
            "OrderingCustomerAccountNumber": "SA8080000204608015129123",
            "PaymentDetails": "WPS Payroll",
            "SalaryDetails": {
              "OtherEarnings": "1000",
              "Deductions": "1000",
              "Id": "2843806023",
              "HousingAllowance": "1000",
              "BasicSalary": "4000"
            },
            "OrderingInstitution": "RJHISARI",
            "CompanyCode": "125001291",
            "SequenceNum": "981983200123"
          }
        ],
        "TotalTransactionAmount": "10000"
      }
    ]
  }
}
},
"Signature": "UMEH9M8tXknuRnnkrzRjDHaxFRLyZJ+wDNAl408+nTWyfTKaVcBkLLPhX5DKjTX18HK/oEJ8rmSeoswQuKzk9F2WIcXwZI9C+h7GA5d6r0FEu9hAYG+tDjFSyPDPHunMbILe1rgIlenbHra24Xt2IxAqj5115FEhJyabV0saIveNfK4sPOWtB+HeEAhwP6pwHETZoO4Z9kiMgdIbBbyD43IpRyxVQzogtlNKrkRaW/k16eIGzeS8Nh5g0txEoa3aocQTiVqzEtkwBXMKKUnoMZMCIOsPh7XNDN9nmsad0CNHr5wwJZoc9gC2e/d7fWuUu8xqe8AaSWXm3xTIfostIg=="
}'

Request Description

JSON TagDescriptionData type
OSVPayrollPaymentMessageRequest
Mandatory
Root node containing all the payroll payment transaction messagesObject
TransactionType
Mandatory
Type of transaction to be mentioned as PAYROLLString
OSVPayrollTransactionRequest
Mandatory
This tag contains multiple banks requestsObject
TotalTransactionCount
Mandatory
Representation of number of transactions in the payrollNumeric
MolCorporateID
Conditional for SNB
Unique MoI assigned corporate identification details
Max size of input: 18 Characters
String
CorporateCommercialRegistrationNumber
Conditional for SNB
Unique Corporate commercial registration identification details
Max size of input: 15 Characters
Numeric
TransactionComment
Mandatory
Transaction description through comment
Max size of input: 50 Characters
String
FileSeqNo
Conditional for SNB
Unique file sequence number of the WPS payroll request
4 Digit Number in the format of MMSS
MM - Current month
SS - Sequence of payroll for the month
Numeric
BankCode
Mandatory
Unique bank identification code (SingleView Identifier)
Ex: ALRAJHI, SABB, BSF, ANB, SNB, ALINMA, GIB, RIYADH, ALBI, BJAZ, ICICI, HDFC
Alphabetical
PayrollReferenceNumber
Mandatory
It is a unique reference number generated by the customer for each payroll processing
Max size of input: 16 Characters
Numeric
TransactionData
Mandatory
Tag carrying information on payroll transactionObject
BeneficiaryAccountNumberNameAddress
Mandatory
Element root containing details of Beneficiary Object
BeneficiaryADD1
Mandatory
Beneficiary Address Line 1
Input size:
Min - 3 Characters
Max - 35 Characters
String
BeneficiaryName
Mandatory
Beneficiary Name
Input size:
Min - 3 Characters
Max - 35 Characters
String
BeneficiaryAccount
Mandatory
Beneficiary account number
Input size:
Min - 11 Characters
Max - 24 Characters
Alphanumeric
OrderingCustomerNameAddress
Mandatory
Element root containing details of Ordering customerObject
OrderingCustomerName
Mandatory
Ordering Customer’s Name
Input size:
Min - 3 Characters
Max - 35 Characters
String
OrderingCustomerAdd1
Mandatory
Ordering Customer’s Address Line 1
Input size:
Min - 3 Characters
Max - 35 Characters
String
BeneficiaryBankCode
Mandatory
Beneficiary bank identification code
Maximum length: 8 or 11 characters
Alphanumeric
BeneficiaryAccountWithInstitutionBIC
Mandatory
Beneficiary BIC Code
Ex: SABBSARI, RJHISARI
Maximum length: 8 or 11 characters
String
DateCurrencyAmount
Mandatory
Tag carrying information on transaction currency, date and amount Object
Currency
Mandatory
Unique code representing the currency of the transaction
Max size of input: 3 Characters
Alphabetical
Amount
Mandatory
Amount of the transactionNumeric
Date
Mandatory
Date of the transaction in YYMMDD formatDate
OrderingCustomerAccountNumber
Mandatory
Ordering Customer’s account number (Any one is mandate Account Number or IBAN Number)
Input size:
Min - 11 Characters
Max - 24 Characters
Alphanumeric
PaymentDetails
Mandatory
Payroll transaction description
Max size of input: 35 Characters
String
SalaryDetails
Mandatory
Tag carrying salary informationObject
OtherEarnings
Mandatory
Additional amount to be credited apart from basic and housing allowanceNumeric
Deductions
Mandatory
Total amount that indicates the deductions for the concerned beneficiaryNumeric
Id
Mandatory
Iqama or National ID number of the beneficiaryString
HousingAllowance
Mandatory
Salary breakdown indicating the amount allocated to the beneficiary under housing allowancesNumeric
BasicSalary
Mandatory
Basic salary amountNumeric
OrderingInstitution
Mandatory
Ordering Institution
Ex: SABBSARI, RJHISARI
Maximum length: 8 or 11 characters
Alphanumeric
CompanyCode
Mandatory
Unique identification code of the companyAlphanumeric
SequenceNum
Mandatory
Unique reference number for each transaction
Length of input: 16 characters
Numeric
TotalTransactionAmount
Mandatory
Total amount of transactions included under a specific debit accountNumeric
Signature
Mandatory
Encrypted string generated using a Private Key/CA-Signed Certificate with SHA-256 and RSA (JCE Signature)String

Sample response

✅ Successful response

{
  "OSVPayrollMessageResponse": {
    "OSVPayrollTransactionResponse": [
      {
        "BankCode": "ALRAJHI",
        "PayrollReferenceNumber": "98198322",
        "TransactionData": [
          {
            "CompanyCode": "125001291",
            "MessageType": "PRACK",
            "MessageDescription": "Payroll Message Acknowledgement",
            "TransactionDate": "2025-01-02T10:20:39",
            "FileSeqNo": "",
            "TransferType": "MT100-Payroll",
            "BankReferenceNumber": "",
            "StatusCode": "OK",
            "StatusDetail": "Payroll File received successfully kindly do the payroll enquiry after 30 min"
          }
        ]
      }
    ]
  }
}

Response description

JSON TagDescriptionData type
OSVPayrollMessageResponseRoot nodeObject
OSVPayrollTransactionResponseElement root containing response of every bank transactionsObject/Array
BankCodeUnique bank identification code
Ex: ALRAJHI, SABB, BSF, ANB, SNB, ALINMA, GIB, RIYADH, ALBI, BJAZ, ICICI, HDFC
Alphanumeric
PayrollReferenceNumberPayroll Reference NumberNumeric
TransactionDataThis tag contains the status of the paymentsObject/Array
CompanyCodeSender company Code/IdentifierString
MessageTypeType of messageString
MessageDescriptionDetails about the responseString
TransactionDateDate of the transactionString
FileSeqNoUnique file sequence number of the payrollNumeric
TransferTypeType of transfer MT-100 PayrollString
BankReferenceNumberUnique bank reference number of the payroll transactionAlphanumeric
StatusCodeCode representing status of the requestString
StatusDetailDetails about the status of the requestString

❗️

Important Info

  • Payroll submitted should have the value date as at least the next day
  • Submitted payroll status will be reflected after 30 minutes
  • To know the status of payroll, a payroll enquiry request has to be sent