Payroll
Standard payroll supports NOK-to-NOK transactions within Norway. Use cross-border payments for recipients outside Norway.
NOK to NOK payroll scope
Section titled “NOK to NOK payroll scope”The standard product is a Norway-only NOK to NOK payroll flow.
All salaries are submitted in one payroll request. The user’s bank sends one funding payment to the ZTL client account, after which ZTL pays the individual recipients. Until funds leave the source account, transactions effectively share a state; afterward, each recipient can have a different outcome.
Standard payroll flow
Section titled “Standard payroll flow”- Confirm
PAYROLLsupport, then create withPOST /api/v2/payroll. - Store
payrollIdand each transaction’s end-to-end ID. - Start approval with
POST /api/v2/payroll/approveand present the returned SCA. - Poll
GET /api/v2/payroll/{payrollId}/status. - Evaluate every transaction rather than inferring all results from one.
- Offer cancellation only while the payroll remains eligible; complete any returned cancellation SCA and poll again.
The diagram is supplemental; the steps and tables describe the same flow.
If the due date is today, or tomorrow when creating after 16:00, warn the user when the available balance is lower than the payroll total. This helps prevent delayed or cancelled salaries.
Transaction statuses
Section titled “Transaction statuses”| Status | Final | Meaning |
|---|---|---|
Unsigned |
No | The bank still requires approval. |
InProgress |
No | The funding or payout process is ongoing. Continue polling. |
CustomerActionRequired |
No | The user must act; inspect the status reason. |
Completed |
Yes | The recipient’s salary was paid. |
Rejected |
Yes | That transaction was rejected. |
Cancelled |
Yes | That transaction was cancelled. |
InProgress deliberately spans several stages: bank approval, funds arriving
in the ZTL client account, and funds leaving that account but not yet reaching
the recipient. Do not display it as proof that the recipient has been paid.
Status reasons use the same handling concepts as payments:
PartlySigned: another authorized signer is required;SmsConfirmationRequired: the user must complete the bank’s SMS step; andInsufficientFunds: the bank stopped the payment because funds were insufficient.
Cancellation
Section titled “Cancellation”Only non-final payrolls can be candidates for cancellation, and an
InProgress payroll may already be too far advanced once money has left the
source account. Call POST /api/v2/payroll/cancel and rely on its response
rather than inferring eligibility. A bank can require SCA, especially after
approval. Poll all transaction statuses after the attempt.
Danske Bank bulk payroll
Section titled “Danske Bank bulk payroll”The bulk payroll operations are a restricted special flow for Danske Bank.
They must not be used without coordinating enablement with ZTL. When enabled,
store the bulk ID and poll GET /api/v2/payroll/bulk/{bulkId}/status.
Keep this separate from standard payroll; support in a country or the presence
of PAYROLL alone does not authorize the bulk operation.
See the Payroll API reference for exact request and response schemas.