API Reference
PayStream provides a RESTful API for managing payouts. All endpoints require authentication via API key.
Base URL
https://api.paystream.fiQuick Links
| Resource | Description |
|---|---|
| Authentication | API key authentication and scopes |
| Payments | Create, list, and manage payouts |
| Recipients | Manage payout recipients with inline identity |
| Batches | Batch payment processing |
| Payment Methods | Manage recipient bank accounts and cards |
| Webhooks | Real-time event notifications |
| Balance & Funding | Tenant balance, auto-funding, and funding sources |
| Recipient Balances | Recipient-held balances and withdrawals |
| Onboarding | Self-service tenant onboarding |
| Team Management | RBAC team members and invitations |
| Compliance | OFAC screening and tax reporting |
| Operations Copilot | Natural language operations queries |
Response Format
All responses are JSON with a consistent structure:
json
{
"data": { ... },
"meta": {
"requestId": "req_abc123",
"timestamp": "2026-02-25T00:00:00Z"
}
}Error Format
json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Amount must be positive",
"errorId": "PAYMENT_INVALID_AMOUNT"
}
}Rate Limits
| Endpoint Type | Limit |
|---|---|
| Standard API | 1,000 requests/hour per API key |
| Funding operations | 5 requests/minute |
| Portal login | 6 attempts per 10 minutes per email |
| Public endpoints | 30 requests/hour per IP |
Idempotency
All POST endpoints support idempotency via the Idempotency-Key header:
bash
curl -X POST https://api.paystream.fi/api/v1/payments \
-H "Authorization: Bearer psk_test_xxx" \
-H "Idempotency-Key: unique-request-id-123" \
-H "Content-Type: application/json" \
-d '{ ... }'Duplicate requests with the same key return the original response without re-processing.
Support
- Email: support@paystream.io
- GitHub: github.com/finhub-vc/paystream
- Status: status.paystream.io