Home
Home
  1. Payroll Provider API Prototypes
  • Salary Deduction
    • Welcome
    • Getting started
      • Availability and Onboarding
        • Light Availability Check
        • Full Availability Check
        • Onboarding
      • Salary Deduction
        • Deduction Instruction
        • Re-running Payroll
        • Deduction Payments and Reconciliation
        • Changes to Employee Status
    • API Reference
      • Authentication
      • Idempotency
      • Webhooks
        • Webhooks
      • Salary Deduction
        • Salary Deduction Data Request
        • Salary Deduction Confirmation Submission
    • Schemas
      • Availability Check
        • Light Availability Check Response
        • Light Availability Check Request
        • Full Availability Check Response
        • Full Availability Check Request
      • Core
        • ProblemDetails
      • Deduction Instructions
        • Salary Deduction
        • Confirmation Deduction Response
        • Salary Deduction Enablement Response
        • Employee Deduction Push Response
        • Employee Deduction Push Request
        • Latest Employee Deduction Push Response
      • Payment Account
        • Payment Account
        • Payment Information
      • Payroll
        • Salary Deduction Confirmation Data Submission
        • Salary Deduction Data Response
        • Payroll
        • Employee Payroll
        • Employment
        • Pay Date
        • Salary Deduction Enablement Request
      • Webhooks
        • Employee Update Payload
        • WebHook
  • Payroll Provider API Prototypes
    • Light Availability Check
      POST
    • Full Availability Check
      POST
    • Salary Deduction Enablement
      POST
    • Payroll Information
      GET
    • Salary Deduction Employee Data Push
      POST
    • Latest Salary Deduction Employee Data Push
      GET
  1. Payroll Provider API Prototypes

Salary Deduction Employee Data Push

POST
/deductions/payroll/{payroll_id}
OperationId:push_employee_deduction
Ontime calls this endpoint to instruct the deduction for one employee on a payroll for a pay period, and to have it paid to Ontime. Each push carries the employee's total deduction for the pay period and replaces any earlier version; a deduction_amount of 0 means nothing is to be deducted.
Respond 200 with is_accepted true when you accept the deduction, or 200 with is_accepted false and a rejection_reason when you do not, including for an unknown payroll or employee. Use other status codes only for authentication, permission and server errors: Ontime treats them as an unknown outcome and asks what you hold with the latest push deduction endpoint.

Request

Authorization
Bearer Token
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
API Key
Add parameter in header
x-api-key
Example:
x-api-key: ********************
or
Path Params

Header Params

Body Params application/jsonRequired

Example
{
    "pay_period_id": "February-26",
    "batch_id": "260210090000123456",
    "version": 2,
    "salary_deduction": {
        "employee_id": "EMP-001",
        "deduction_amount": 4509,
        "currency": "GBP"
    },
    "requested_payments": [
        {
            "payment_information": {
                "payment_reference": "260210090000123456",
                "payment_amount": 4509,
                "payment_account": {
                    "account_number": "12345678",
                    "sort_code": "123456",
                    "account_holder_name": "Ontime Payments Ltd"
                }
            }
        }
    ]
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/deductions/payroll/PAYROLL-001' \
--header 'Idempotency-Key: {{$string.uuid}}' \
--header 'Authorization: Bearer <token>' \
--header 'x-api-key: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "pay_period_id": "February-26",
    "batch_id": "260210090000123456",
    "version": 2,
    "salary_deduction": {
        "employee_id": "EMP-001",
        "deduction_amount": 4509,
        "currency": "GBP"
    },
    "requested_payments": [
        {
            "payment_information": {
                "payment_reference": "260210090000123456",
                "payment_amount": 4509,
                "payment_account": {
                    "account_number": "12345678",
                    "sort_code": "123456",
                    "account_holder_name": "Ontime Payments Ltd"
                }
            }
        }
    ]
}'

Responses

🟢200Success
application/json
The deduction was accepted or rejected.
Bodyapplication/json

Examples
{
    "pay_period_id": "February-26",
    "batch_id": "260210090000123456",
    "payroll_id": "PAYROLL-001",
    "version": 2,
    "salary_deduction": {
        "employee_id": "EMP-001",
        "deduction_amount": 4509,
        "currency": "GBP"
    },
    "is_accepted": true
}
🟠401Unauthorised
🟠403Forbidden
Previous
Payroll Information
Next
Latest Salary Deduction Employee Data Push