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

FieldTypeRequiredDescription
first_namestringYesUser's legal first name
last_namestringYesUser's legal last name
emailstringYesEmail address
date_of_birthstringYesISO 8601 date: YYYY-MM-DD
ssn_last4stringYesLast 4 digits of SSN
addressobjectYesline1, 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

FieldTypeRequiredDescription
amount_centsintegerYesAmount in cents. Minimum 100.
currencystringYesAlways "usd"
recipient_idstringYesUser ID of recipient
typestringYesach_same_day | ach_next_day | rtp
memostringNoOptional 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

FieldTypeRequiredDescription
borrower_idstringYesKYC-approved user ID
amount_centsintegerYesRequested loan principal in cents
term_monthsintegerYesLoan term: 3–36 months
product_typestringYesterm_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

FieldTypeRequiredDescription
user_idstringYesKYC-approved user ID
card_typestringYesvirtual | physical
spending_limit_centsintegerYesPer-cycle spending limit in cents
currencystringYesAlways "usd"