Skip to main content
POST
/
v1
/
payrolls
/
{payrollId}
/
save
Save
curl --request POST \
  --url https://api.cadanapay.com/v1/payrolls/{payrollId}/save \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "payrollDate": "2026-03-01",
  "payPeriod": {
    "fromDate": "2026-02-01",
    "toDate": "2026-02-28"
  },
  "entries": [
    {
      "personId": "8ab2ba37-3c37-485d-9af9-122d11c96bf9",
      "salary": {
        "amount": 500000,
        "currency": "USD"
      }
    },
    {
      "personId": "ca49c55b-12c7-4085-8a0d-ebd006ed8002",
      "salary": {
        "amount": 375000,
        "currency": "USD"
      }
    }
  ]
}
'
{
  "code": "invalid_request_body",
  "message": "The request body provided is not valid",
  "params": {
    "field": "Value is invalid."
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

X-MultiTenantKey
string

Required when using a Platform API token. The tenant key identifying which business to operate on.

Path Parameters

payrollId
string<uuid>
required

The unique identifier for the payroll

Body

application/json
payrollDate
string<date>
required

payroll date

payPeriod
object
required
entries
object[]
required
fxRateExpiresAt
string<date-time>

Maximum time the quoted FX rates are valid (RFC 3339). If omitted, spot rates are used.

Example:

"2025-06-15T23:59:59Z"

customFees
object[]

Optional custom fee line items that supplement the standard per-seat subscription fees.

tags
object

Any custom data you want to store

Response

Successful operation