Open BankingB2B SuiteERP Integration
GuidesAPI ReferenceChangelog
Menu

Categories

Open BankingB2B SuiteERP Integration

  • GENERAL INFORMATION

    • Documentation guide
    • SingleView B2B Core APIs
    • Platform architecture
  • GETTING STARTED

    • Integration guide
    • Become a user
    • Prerequisites for Sandbox
    • Establishing secure connection
    • Authenticating your request
    • Making your first test api call
    • Prerequisites for production
    • Moving to production
  • AUTHENTICATION

    • Header parameters
    • Obtain access token
    • Generate signature
  • Data APIs

    • Account statement
    • Balance enquiry
    • IBAN verification
    • POS transactions
    • Raw statement
  • Payment APIs

  • SADAD

  • RESOURCES

    • POR Details
    • Error codes
  • API Archives


Process payroll payments

Make payroll payments using SingleView API services

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

Important informatio
  • 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.
  • Beneficiary information should not contain special characters such as #, &, *, %, =, ^, _, \, {, |, }, ~, ", ;, @, [, ], `
  • Submitted payroll status will be reflected after 30 minutes
  • To know the status of payroll, a payroll enquiry request has to be sent
🌐

Domain details

Environment

Domain

Rate/Limit

Sandbox

sandboxapi.onesingleview.com

3 Calls per Minute

Production/LIVE

To be provided upon onboarding

Based 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

Sample request

Process Payroll Payouts 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",
              "EmployeeID": "123456",
              "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",
              "EmployeeID": "654321",
              "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 parameters

JSON Tag

Requirement

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, NCB, 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
Mandatory for NCB

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

String

MolCorporateID

Conditional
Mandatory for NCB, SAB, and ANB

Unique MoI assigned corporate identification details Max size of input: 15 Characters

String

FileSeqNo

Conditional
Mandatory for NCB

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, NCB, 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

EmployeeID

Conditional
Mandatory for GIB

Unique employee identification details

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

Payroll Payments Processing 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 parameters

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, NCB, 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 represented as:

  • OK
  • Failed
  • ONHOLD

String

StatusDetail

Details about the status of the request

String

Updated July 1, 2026

PreviousPayrollNextPerform payroll enquiry
Was this helpful?