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
  • Ensure that the SequenceNum is unique for each transaction. Payments with same sequence number appear as duplicate transactions and affects their processing and enquiry operations.
🌐

Domain details

EnvironmentDomainRate/Limit
Sandboxsandboxapi.onesingleview.com10 Calls per Minute
Production/LIVETo be provided upon onboardingBased on contract

Process Payroll Payouts

Endpoint details

Endpoint URL

Method

Authentication requirements

/api/v1/payroll/transfer

POST

  1. CompanyId
  2. SVReferenceID
  3. DateTimeStamp
  4. Device
  5. Authorization: Bearer (Token)

Sample request

curl --location 'https://sandboxapi.onesingleview.com/api/v1/payroll/transfer' \
--header 'CompanyId: MYCOMPANY'
--header 'SVReferenceID: SV150619940615'
--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": [
      {
        "BankCode": "ALRAJHI",
        "PayrollReferenceNumber": "98198322",
        "CorporateCommercialRegistrationNumber": "CCRN1237",
        "MolCorporateID": "MOLID51922",
        "FileSeqNo": "0501",
        "CompanyCode": "125001291",
        "OrderingCustomerNameAddress": {
          "OrderingCustomerName": "National Company",
          "OrderingCustomerAdd1": "Suite 3, Business Bay Building",
          "OrderingCustomerAdd2": "Umm Thumamah Road, Riyadh",
          "OrderingCustomerAdd3": "P.O. Box 28, Riyadh 11411"
        },
        "OrderingInstitution": "RJHISARI",
        "OrderingCustomerAccountNumber": "",
        "OrderingCustomerIBAN": "SA8080000204608015129123",
        "TransactionData": [
          {
            "SequenceNum": "981983200113",
            "DateCurrencyAmount": {
              "Date": "240103",
              "Currency": "SAR",
              "Amount": "5000"
            },
            "BeneficiaryBankCode": "ALRAJHI",
            "BeneficiaryAccountWithInstitutionBIC": "RJHISARI",
            "BeneficiaryAccountNumberNameAddress": {
              "BeneficiaryAccount": "SA0580000204608015129115",
              "BeneficiaryName": "Ali",
              "BeneficiaryADD1": "Flat 16, KSA Heights, Al Rabie Road",
              "BeneficiaryADD2": "Riyadh",
              "BeneficiaryADD3": "Head Off P.O Box 66674, Riyadh"
            },
            "PaymentDetails": "WPS Payroll",
            "SalaryDetails": {
              "Id": "2843806023",
              "BasicSalary": "4000",
              "HousingAllowance": "1000",
              "OtherEarnings": "1000",
              "Deductions": "1000"
            }
          },
          {
            "SequenceNum": "981983200113",
            "DateCurrencyAmount": {
              "Date": "240103",
              "Currency": "SAR",
              "Amount": "5000"
            },
            "BeneficiaryBankCode": "ALRAJHI",
            "BeneficiaryAccountWithInstitutionBIC": "RJHISARI",
            "BeneficiaryAccountNumberNameAddress": {
              "BeneficiaryAccount": "SA0580000204608015129115",
              "BeneficiaryName": "Ali",
              "BeneficiaryADD1": "Flat 16, KSA Heights, Al Rabie Road",
              "BeneficiaryADD2": "Riyadh",
              "BeneficiaryADD3": "Head Off P.O Box 66674, Riyadh"
            },
            "PaymentDetails": "WPS Payroll",
            "SalaryDetails": {
              "Id": "2843806023",
              "BasicSalary": "4000",
              "HousingAllowance": "1000",
              "OtherEarnings": "1000",
              "Deductions": "1000"
            }
          }
        ],
        "TransactionComment": "WPS Payroll",
        "TotalTransactionCount": "02",
        "TotalTransactionAmount": "10000.00"
      }
    ]
  }
},
"Signature": "UMEH9M8tXknuRnnkrzRjDHaxFRLyZJ+wDNAl408+nTWyfTKaVcBkLLPhX5DKjTX18HK/oEJ8rmSeoswQuKzk9F2WIcXwZI9C+h7GA5d6r0FEu9hAYG+tDjFSyPDPHunMbILe1rgIlenbHra24Xt2IxAqj5115FEhJyabV0saIveNfK4sPOWtB+HeEAhwP6pwHETZoO4Z9kiMgdIbBbyD43IpRyxVQzogtlNKrkRaW/k16eIGzeS8Nh5g0txEoa3aocQTiVqzEtkwBXMKKUnoMZMCIOsPh7XNDN9nmsad0CNHr5wwJZoc9gC2e/d7fWuUu8xqe8AaSWXm3xTIfostIg=="
}'

Request Description

JSON Tag

Description

Data type

OSVPayrollPaymentMessageRequest Mandatory

Root node containing all the payroll payment transaction messages

Object

TransactionType Mandatory

Type of transaction to be mentioned as PAYROLL

String

OSVPayrollTransactionRequest Mandatory

This tag contains multiple banks requests

Object

BankCode Mandatory

Unique bank identification code (SingleView Identifier) Ex:ALRAJHI, SABB, BSF, ANB, SNB, ALINMA, GIB, RIYADH, ALBI, BJAZ

Alphabetical

PayrollReferenceNumber Mandatory

It is a unique reference number generated by the customer for each payroll processing Max size of input: 16 Characters

Numeric

CorporateCommercialRegistrationNumber Conditional for SNB

Unique corporate commercial registration identification details Max size of input: 15 Characters

String

MolCorporateID Conditional for SNB, SAB & ANB

Unique MoI assigned corporate identification details Max size of input: 15 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

CompanyCode Mandatory

Unique company identification code

String

OrderingCustomerNameAddress Mandatory

Tag carrying information on the ordering customer name and address

Object

OrderingCustomerName Mandatory

Name of the ordering customer as per bank records

String

OrderingCustomerAdd1 Mandatory

Ordering Customer’s Address Line 1 Input size: Min - 3 Characters Max - 35 Characters

String

OrderingCustomerAdd2 Mandatory

Ordering Customer’s Address Line 2 (city to be mentioned) Input size: Min - 3 Characters Max - 35 Characters

String

OrderingCustomerAdd3 Mandatory

Ordering Customer’s Address Line 3 Input size: Min - 3 Characters Max - 35 Characters

String

OrderingInstitution Mandatory

Ordering Institution Ex: SABBSARI, RJHISARI Maximum length: 8 or 11 characters

Alphanumeric

OrderingCustomerAccountNumber Conditional

Account number of the ordering customer Mandatory if OrderingCustomerIBAN is not provided

Alphanumeric

OrderingCustomerIBAN Conditional

International Bank Account Number of the ordering customer

Alphanumeric

TransactionData Mandatory

Tag carrying information on payroll transactions

Object

SequenceNum Mandatory

Unique sequence number for each transaction in the payroll generated by the client

Numeric

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 transaction

Numeric

Date Mandatory

Date of the transaction in YYMMDD format

Date

BeneficiaryBankCode Mandatory

Unique bank identification code for beneficiary account (SingleView Identifier) Ex:ALRAJHI, SABB, BSF, ANB, SNB, ALINMA, GIB, RIYADH, ALBI, BJAZ

Alphanumeric

BeneficiaryAccountWithInstitutionBIC Mandatory

Beneficiary BIC Code Ex: SABBSARI, RJHISARI Maximum length: 8 or 11 characters

Alphanumeric

BeneficiaryAccountNumberNameAddress Mandatory

Element root containing details of Beneficiary

Object

BeneficiaryAccount Mandatory

Beneficiary bank account number Input size: Min - 11 Characters Max - 24 Characters

Alphanumeric

BeneficiaryName Mandatory

Name of the beneficiary

String

BeneficiaryAdd1 Mandatory

Beneficiary Address Line 1 Input size: Min - 3 Characters Max - 35 Characters

String

BeneficiaryAdd2 Mandatory

Beneficiary Line 2 (city to be mentioned) Input size: Min - 3 Characters Max - 35 Characters

String

BeneficiaryAdd3 Mandatory

Beneficiary Address Line 3 Input size: Min - 3 Characters Max - 35 Characters

String

PaymentDetails Mandatory

Payroll transaction description Max size of input: 35 Characters

String

SalaryDetails Mandatory

Tag carrying salary information

Object

Id Mandatory

Iqama or National ID number of the beneficiary

Alphanumeric

BasicSalary Mandatory

Amount for basic salary

Numeric

HousingAllowance Mandatory

Salary breakdown indicating the amount allocated to the beneficiary under housing allowances

Numeric

OtherEarnings Mandatory

Additional amount to be credited apart from basic and housing allowance

Numeric

Deductions Mandatory

Total amount that indicates the deductions for the concerned beneficiary

Numeric

TransactionComment Mandatory

Comment regarding the payroll transaction

String

TotalTransactionCount Mandatory

Total count of transactions included in the payroll

Numeric

TotalTransactionAmount Mandatory

Total amount of transactions included under a specific debit account

Numeric

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 Tag

Description

Data type

OSVPayrollMessageResponse

Root node

Object

OSVPayrollTransactionResponse

Element root containing response of every bank transactions

Object/Array

BankCode

Unique bank identification code Ex:ALRAJHI, SABB, BSF, ANB, SNB, ALINMA, GIB, RIYADH, ALBI, BJAZ

Alphanumeric

PayrollReferenceNumber

Payroll Reference Number

Numeric

TransactionData

This tag contains the status of the payments

Object/Array

CompanyCode

Sender company Code/Identifier

String

MessageType

Type of message

String

MessageDescription

Details about the response

String

TransactionDate

Date of the transaction

String

FileSeqNo

Unique file sequence number of the payroll

Numeric

TransferType

Type of transfer MT-100 Payroll

String

BankReferenceNumber

Unique bank reference number of the payroll transaction

Alphanumeric

StatusCode

Code representing status of the request

String

StatusDetail

Details about the status of the request

String

❗️

Important Info

  • Submitted payroll status will be reflected after 30 minutes
  • To know the status of payroll, a payroll enquiry request has to be sent