Use staging credentials and URLs during development. Staging calls do not move real funds.
Authentication
Both the Fundflow API and Finance API use the same OAuth2 token endpoint:
Environment URL Staging https://login-staging.venly.io/auth/realms/VenlyFinance/protocol/openid-connect/tokenProduction https://login.venly.io/auth/realms/VenlyFinance/protocol/openid-connect/token
Request (application/x-www-form-urlencoded):
Parameter Value grant_typeclient_credentialsclient_idYour client ID client_secretYour client secret
Tokens are valid for 5 minutes (300 seconds). See the Authentication guide for refresh patterns.
Fundflow API
Environment Base URL Staging https://api-fundflow-staging.venly.io/v1Production https://api-fundflow.venly.io/v1
Key endpoints
Endpoint Method Description /companyGET Verify KYB status /ramp-requestsGET / POST List or create ramp requests /ramp-requests/{id}GET Get ramp request by ID /ramp-requests/{id}/approvePOST Approve a ramp request /ramp-requests/{id}/rejectPOST Reject a ramp request /ramp-requests/{id}/cancelPOST Cancel a ramp request /ramp-requests/on-ramp/pairsGET Available on-ramp currency pairs /ramp-requests/off-ramp/pairsGET Available off-ramp currency pairs /fees/calculatePOST Calculate fee for a ramp request /company-bank-accountsGET / POST Manage company bank accounts /company-walletsGET / POST Manage company wallets
Finance API
Environment Base URL Staging https://api-staging.venlyfinance.com/v1Production https://api.venlyfinance.com/v1
Key endpoints
Endpoint Method Description /partiesGET / POST List or create parties /parties/{id}GET / PATCH / DELETE Get, update, or delete a party /accountsGET / POST List or create accounts /accounts/{id}GET Get account details /accounts/{id}/party-rolesGET / POST List or add party roles on an account /accounts/{id}/walletsGET List wallets for an account /accounts/{id}/virtual-bank-accountsGET / POST List or create IBANs /accounts/{id}/transfersGET List transfers for an account /accounts/{senderId}/transfers/crypto · /fiatPOST Create a crypto or fiat transfer /accounts/{id}/payment-requests · /payment-requestsPOST Create a payment request
Relevant Finance API endpoints accept an idempotencyKey field in the request body to prevent duplicate operations on retry. Supply a unique UUID for every new request.
Quick Copy
Staging token
Production 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"