Developer Portal
Payroll → IPFS → NFT on Sepolia

NFTPAYROLL Service API

A server-to-server API to push payroll data into the platform and mint each payroll as a verifiable NFT. Authenticate with a single API key, send your records, and track every mint to its on-chain transaction.

Quick start

Be live in three steps

From zero to your first minted payroll.

1

Get your API key

Your company admin issues a service API key from the dashboard. Each key is scoped to one company.

2

Send payrolls

POST your records to /payrolls/bulk with the X-API-Key header. Employees are matched or created automatically.

3

Track the mint

Poll /payrolls/batches/{ref} to watch each record move from pending to sent.

Authentication

One key, every request

Send your service API key in the X-API-Key header. The key determines the company (tenant) all records are created under.

# Every request carries your key curl https://api.nftpayroll.ai/api/service/v1/payrolls/bulk \ -H "X-API-Key: sk_live_xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "items": [ ... ] }'
Authorization: Bearer <key> is also accepted. Keys are hashed at rest and can be rotated or revoked at any time.
Integration paths

Two ways to ingest

Pick direct import for speed, or review → submit for a validation gate.

Fastest

Direct import

Records are validated, created and queued for minting in a single call.

  • One request, immediate minting
  • Per-record success / failure results
  • Best for trusted, pre-validated data
Safest

Review → Submit

Preview a validated batch first, then submit to persist and mint.

  • Inspect ready / duplicate / failed
  • Approval-gated and high-volume friendly
  • Nothing is created until you submit
Endpoints

Explore the API

Six endpoints cover the full lifecycle. Open any in the interactive reference to send a live request.

Rate limits

The default limit is 60 requests per minute per key. Exceeding it returns 429 Too Many Requests. Contact us to raise limits for high-volume integrations.

Error handling

401 invalid key · 404 not found · 409 already submitted · 422 validation · 429 rate limited. Errors return a JSON message.