Skip to content

Payroll bulk status

GET
/api/v2/payroll/bulk/{bulkId}/status
Code sample: Shell / cURL
curl --request GET \
--url https://api.ztlpay.io/api/v2/payroll/bulk/7c628b2e-9094-4bf8-af23-1d517c6fc4f5/status \
--header 'Authorization: Bearer <token>'

Should not be used without informing ZTL in advance. This is only for Danske Bank. Retrieves latest payroll status for bulk.

bulkId
required
string

Id received when creating the bulk payroll

Example
7c628b2e-9094-4bf8-af23-1d517c6fc4f5

Payroll status

Media typeapplication/json

The initial payroll status indicates if the payroll was accepted, and if it needs to be signed before it will be executed in the bank

object
bulkStatus
required

The status of the bulk

string
Allowed values: CREATED ACCEPTED REJECTED
payrolls
required
Array<object>
object
id
required

Bulk identifier

string
transactions
required
Array<object>
object
endToEndId
required

Same identifier as when creating a transaction

string
timestamp
required

The timestamp of the most recent internal update to the payroll status.

string
payrollStatus
required
  • Unsigned The user must approve the payroll.
  • InProgress The transaction is ongoing.
  • Completed The transaction/salary has been paid out.
  • Rejected The transaction has been rejected.
  • Cancelled The transaction has been cancelled.
  • CustomerActionRequired The payroll requires further action from the user.
string
Allowed values: Unsigned InProgress Completed Rejected Cancelled CustomerActionRequired
payrollStatusReason
  • PartlySigned Indicates that the payments needs additional signing. This requirement may be set up for the bank account.
  • SmsConfirmationRequired The user needs additional confirmation with responding SMS received. Only used by a few banks
  • InsufficientFunds The payment has been stopped by the bank due to lack of funds
string
Allowed values: PartlySigned SmsConfirmationRequired InsufficientFunds
Example
{
"bulkStatus": "CREATED",
"payrolls": [
{
"transactions": [
{
"timestamp": "2025-12-30 06:43:45.569610 +00:00",
"payrollStatus": "Unsigned",
"payrollStatusReason": "PartlySigned"
}
]
}
]
}

Bad Request

Media typeapplication/json
object
failure
  • INVALID_CONSENT Consent is invalid
  • AUTHENTICATION_TEMPORARY_UNAVAILABLE Authentication service is temporary unavailable, most likely due to user already has started another concurrent authentication process
  • UNSUPPORTED_PRODUCT_BY_BANK Product is not supported by bank
string
Allowed values: INVALID_CONSENT AUTHENTICATION_TEMPORARY_UNAVAILABLE UNSUPPORTED_PRODUCT_BY_BANK
ztlRequestId
required

Unique RequestId, please provide this Id in case of support requests

string format: uuid
message
required

The underlying reason for the error

string
Example
{
"failure": "INVALID_CONSENT",
"ztlRequestId": "3a797348-ef0c-4f52-b821-fdfcdb98c4d9",
"message": "Invalid Bban"
}

Forbidden

Media typeapplication/json
object
ztlRequestId
required

Unique RequestId, please provide this Id in case of support requests

string format: uuid
message
required

The underlying reason for the error

string
Example
{
"ztlRequestId": "3a797348-ef0c-4f52-b821-fdfcdb98c4d9",
"message": "Invalid account"
}
ztl-request-id
string format: uuid

Unique RequestId, please provide this Id in case of support requests

Example
3a797348-ef0c-4f52-b821-fdfcdb98c4d9

Not found

Media typeapplication/json
object
ztlRequestId
required

Unique RequestId, please provide this Id in case of support requests

string format: uuid
message
required

The underlying reason for the error

string
Example
{
"ztlRequestId": "3a797348-ef0c-4f52-b821-fdfcdb98c4d9",
"message": "Invalid account"
}
ztl-request-id
string format: uuid

Unique RequestId, please provide this Id in case of support requests

Example
3a797348-ef0c-4f52-b821-fdfcdb98c4d9

Internal server error

Media typeapplication/json
object
ztlRequestId
required

Unique RequestId, please provide this Id in case of support requests

string format: uuid
message
required

The underlying reason for the error

string
Example
{
"ztlRequestId": "3a797348-ef0c-4f52-b821-fdfcdb98c4d9",
"message": "Invalid account"
}
ztl-request-id
string format: uuid

Unique RequestId, please provide this Id in case of support requests

Example
3a797348-ef0c-4f52-b821-fdfcdb98c4d9

Service unavailable

Media typeapplication/json
object
ztlRequestId
required

Unique RequestId, please provide this Id in case of support requests

string format: uuid
message
required

The underlying reason for the error

string
Example
{
"ztlRequestId": "3a797348-ef0c-4f52-b821-fdfcdb98c4d9",
"message": "Invalid account"
}
ztl-request-id
string format: uuid

Unique RequestId, please provide this Id in case of support requests

Example
3a797348-ef0c-4f52-b821-fdfcdb98c4d9