Skip to content

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 atomically

Create Payroll Run

http
POST /v1/payroll

Body

FieldTypeRequiredDescription
titlestringLabel for this run, e.g. "March 2026"
currencystringDefault: 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/payroll

Add Employee to Run

http
POST /v1/payroll/{run_id}/items

Can be called multiple times before execution.

Body

FieldTypeRequiredDescription
wallet_addressstringRecipient crypto address
amountintegerAmount in smallest unit
notestringMemo / 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}/execute

Returns 204 No Content. The run status changes to executed and all transfers are processed. Your business wallet must have sufficient balance across all items.

DPT Merchant API