Payroll
Payroll lets you batch-disburse funds to multiple recipients (employees or contractors) in a single run. Funds are sent from your business wallet.
Objects
PayrollRun
json
{
"id": "uuid",
"title": "March 2026 Payroll",
"status": "draft",
"currency": "USDC",
"total_amount": 0,
"items": [],
"created_at": "2026-03-16T10:00:00Z"
}Status values: draft | executed
PayrollItem
json
{
"id": "uuid",
"run_id": "uuid",
"wallet_address": "0xabc...",
"amount": 5000000000,
"currency": "USDC",
"note": "March salary"
}Workflow
1. Create a run (draft)
2. Add one or more items (recipients)
3. Execute the run — all transfers happen atomicallyCreate Payroll Run
http
POST /v1/payrollBody
| Field | Type | Required | Description |
|---|---|---|---|
title | string | ✓ | Label for this run, e.g. "March 2026" |
currency | string | Default: USDC |
Example
bash
curl -X POST https://api-test.dpt.xyz/v1/payroll \
-H "Authorization: Bearer dptb_..." \
-H "Content-Type: application/json" \
-d '{ "title": "March 2026 Payroll", "currency": "USDC" }'List Payroll Runs
http
GET /v1/payrollAdd Employee to Run
http
POST /v1/payroll/{run_id}/itemsCan be called multiple times before execution.
Body
| Field | Type | Required | Description |
|---|---|---|---|
wallet_address | string | ✓ | Recipient crypto address |
amount | integer | ✓ | Amount in smallest unit |
note | string | Memo / employee name |
Example
bash
curl -X POST https://api-test.dpt.xyz/v1/payroll/RUN_ID/items \
-H "Authorization: Bearer dptb_..." \
-H "Content-Type: application/json" \
-d '{
"wallet_address": "0xabc123...",
"amount": 5000000000,
"note": "Alice — March salary"
}'Execute Payroll Run
Sends all funds. This action is irreversible.
http
POST /v1/payroll/{run_id}/executeReturns 204 No Content. The run status changes to executed and all transfers are processed. Your business wallet must have sufficient balance across all items.
