Documentation Index Fetch the complete documentation index at: https://docs.venlyfinance.com/llms.txt
Use this file to discover all available pages before exploring further.
Venly Finance offers two separate products — Fundflow API for multi-rail payment orchestration, and Finance API for embedded financial infrastructure. Both use OAuth2 client credentials for authentication.
Step 1 — Get your credentials
Your Client ID and Client Secret are provisioned by Venly and sent to you directly. If you haven’t received them, contact support@venly.io .
Use your staging credentials while testing. Staging calls do not move real funds.
Step 2 — Get an access token
Exchange your credentials for a short-lived Bearer token:
curl -X POST https://login-staging.venly.io/auth/realms/VenlyFinance/protocol/openid-connect/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"
Response:
{
"access_token" : "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...<redacted>" ,
"expires_in" : 300 ,
"refresh_expires_in" : 0 ,
"token_type" : "Bearer" ,
"not-before-policy" : 0 ,
"scope" : "email profile"
}
Tokens expire after 5 minutes (300 seconds). Implement token refresh logic in your client so requests don’t fail mid-session.
Copy the access_token — you’ll pass it as a Bearer token in every subsequent request.
Step 3 — First Fundflow API call
Call GET /v1/company to confirm your Fundflow credentials are working and check your KYB verification status:
curl -X GET https://api-fundflow-staging.venly.io/v1/company \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
A successful response:
{
"result" : {
"id" : "b7e2c1a3-4d5f-6e7a-8b9c-0d1e2f3a4b5c" ,
"name" : "Your Company" ,
"kybStatus" : "VERIFIED"
},
"success" : true
}
kybStatus: VERIFIED means your company is approved to create ramp requests. If it shows PENDING, KYB review is still in progress — contact support@venly.io .
Step 4 — First Finance API call
Call POST /v1/parties to create your first party — the foundational record that will hold accounts and wallets:
curl -X POST https://api-staging.venlyfinance.com/v1/parties \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"partyType": "INDIVIDUAL",
"firstName": "Jane",
"lastName": "Doe",
"idempotencyKey": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}'
A successful 201 response:
{
"success" : true ,
"result" : {
"id" : "f3a2b1c4-8d9e-4f5a-b6c7-d8e9f0a1b2c3" ,
"partyType" : "INDIVIDUAL" ,
"firstName" : "Jane" ,
"lastName" : "Doe" ,
"status" : "ACTIVE" ,
"kycStatus" : "PENDING"
}
}
Save the returned id — you’ll use it to create an account and assign wallets in the next steps.
Supply a unique idempotencyKey in the request body on relevant endpoints. If the request is retried due to a network failure, the Finance API will return the original response instead of creating a duplicate.
Next Steps
Full Integration Guide Set up bank accounts, wallets, and create your first ramp request
Authentication Token refresh, environment switching, and credential security
Fundflow API Reference Ramp requests, wallets, fees, currencies, and more
Finance API Reference Parties, accounts, wallets, transfers, and IBANs