Quickstart
Prerequisites, environments, and your first request.
Prerequisites
Before you start the integration, make sure you have completed the following:
- Create API keys: Sign in to the Dashboard, go to Integrations → Keys, and click Add Key to get
client_idandclient_secret. Yourtenant_idis shown in the Tenant ID column of the key list - Configure the IP allowlist: Use Edit IP Allowlist on the key to enter the egress IP addresses of your servers. IPv4, IPv6, and CIDR are supported; separate multiple entries with commas. Leaving it empty allows requests from any IP, so we recommend configuring it for production
- Configure Webhooks: Go to Integrations → Webhooks, click Add Endpoint, and enter a publicly accessible HTTPS callback URL
- Generate idempotency keys: Every
POSTrequest must include a uniqueIdempotency-Key
Environments
| Environment | Base URL | Description |
|---|---|---|
| Test | https://api.test.stabofx.com | For development and testing |
| Production | https://api.stabo.io | Live production environment |
The examples below use the test environment. When you go live, replace the Base URL with the production URL.
Business API examples use the same placeholders. In the Java, Python, and Node examples, BASE_URL is the Base URL from the table above. accessToken (access_token in Python) and {accessToken} in the curl examples are the Access Token that you get in Authentication.
Your first request
The following example walks through a complete call flow.
Get an Access Token
curl -X POST "https://api.test.stabofx.com/oauth2/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "X-Tenant-ID: your_tenant_id" \
-H "X-Tenant-Type: COMPANY" \
-d "grant_type=client_credentials&client_id=your_client_id&client_secret=your_client_secret&scope=company:TENANT:admin"For Java, Python, and Node examples, see Authentication.
Call a business API
This example creates a Checkout Payment Intent. Amounts are decimal strings in the standard currency unit. "20.00" means 20.00 USD.
curl -X POST "https://api.test.stabofx.com/openapi/v1/payment-intents" \
-H "Authorization: Bearer {accessToken}" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pi_20260511_0001" \
-d '{
"amount": "20.00",
"currency": "USD",
"referenceNo": "ORD-20260511-0001",
"description": "Order #20260511-0001",
"customer": "cus_123456",
"brand": "Acme Coffee",
"successUrl": "https://merchant.example.com/success",
"cancelUrl": "https://merchant.example.com/cancel",
"expiryMinutes": 30,
"metadata": {
"orderId": "ORD-20260511-0001",
"merchantUserId": "user_123456"
}
}'Next steps: