API Reference
The Finsyncio REST API uses standard HTTP methods and JSON request/response bodies. All monetary amounts are in cents (integer, USD only in v1). All timestamps are ISO 8601 UTC. Idempotency keys are supported on all mutation endpoints.
Base URL
# Production
https://api.finsyncio.com
# Sandbox
https://sandbox.api.finsyncio.com
Authentication
Pass your API key in the Authorization header as a bearer token.
Never expose API keys client-side. All requests must originate from your backend. Use separate sandbox (
sk_test_) and production (sk_live_) keys.
Error Codes
200 OK — Request succeeded
201 Created — Resource created
400 Bad Request — Invalid parameters
401 Unauthorized — Missing or invalid API key
402 Payment Required — Platform not active
422 Unprocessable — KYC failed or business rule violation
429 Rate Limited — Slow down
500 Server Error — Contact support if persistent
POST /v1/users
Create a user and run KYC verification. Returns user_id and kyc_status.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
first_name | string | Yes | User's legal first name |
last_name | string | Yes | User's legal last name |
email | string | Yes | Email address |
date_of_birth | string | Yes | ISO 8601 date: YYYY-MM-DD |
ssn_last4 | string | Yes | Last 4 digits of SSN |
address | object | Yes | line1, city, state, zip |
Response
{
"user_id": "usr_7Pk3nM2wQx",
"kyc_status": "approved",
"created_at": "2026-04-10T09:12:31Z"
}
POST /v1/payments/initiate
Initiate an ACH or RTP payment between two KYC-approved users.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
amount_cents | integer | Yes | Amount in cents. Minimum 100. |
currency | string | Yes | Always "usd" |
recipient_id | string | Yes | User ID of recipient |
type | string | Yes | ach_same_day | ach_next_day | rtp |
memo | string | No | Optional payment description (max 80 chars) |
Response
{
"payment_id": "pay_Xm7rNp4qW2",
"status": "processing",
"type": "ach_same_day",
"amount_cents": 12500,
"eta_hours": 4
}
POST /v1/loans/originate
Submit a loan origination request. Finsyncio runs automated underwriting and returns a decision in under 15 minutes for most requests.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
borrower_id | string | Yes | KYC-approved user ID |
amount_cents | integer | Yes | Requested loan principal in cents |
term_months | integer | Yes | Loan term: 3–36 months |
product_type | string | Yes | term_loan | bnpl | line_of_credit |
POST /v1/cards/issue
Issue a virtual or physical card to a KYC-approved user. Virtual cards are ready for use immediately upon creation.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
user_id | string | Yes | KYC-approved user ID |
card_type | string | Yes | virtual | physical |
spending_limit_cents | integer | Yes | Per-cycle spending limit in cents |
currency | string | Yes | Always "usd" |