Sandbox Quick Start
cURL examples for partner integration
Replace <YOUR_SANDBOX_API_KEY> and placeholder IDs with your sandbox values. Use a new idempotency-key for each write request.
Every JSON response includes meta.requestId and the same value is returned in theX-Request-Id header. Include this request ID, endpoint, timestamp and idempotency key when reporting an integration issue.
1. Check API key accessView endpoint
export GX_API_BASE="https://api.globalx.roecny.com"
export GX_API_KEY="<YOUR_SANDBOX_API_KEY>"
curl -sS "$GX_API_BASE/v1/business/access" \
-H "x-api-key: $GX_API_KEY"2. Register a business userView endpoint
curl -sS -X POST "$GX_API_BASE/v1/business/users/register" \
-H "x-api-key: $GX_API_KEY" \
-H "idempotency-key: $(uuidgen)" \
-H "content-type: application/json" \
--data-raw '{
"email": "applicant@example.sg",
"firstName": "Mei",
"lastName": "Tan",
"companyName": "Example Trading Pte. Ltd.",
"registeredCountry": "SG",
"phoneCountryCode": "65",
"phoneNumber": "88889999"
}'3. Get onboarding requirementsView endpoint
curl -sS "$GX_API_BASE/v1/business/onboarding/requirements?registeredCountry=SG" \
-H "x-api-key: $GX_API_KEY"4. Create an onboarding applicationView endpoint
curl -sS -X POST "$GX_API_BASE/v1/business/onboarding/applications" \
-H "x-api-key: $GX_API_KEY" \
-H "idempotency-key: $(uuidgen)" \
-H "content-type: application/json" \
--data-raw '{
"userEmail": "applicant@example.sg",
"businessName": "Example Trading Pte. Ltd.",
"registeredCountry": "SG",
"website": "https://www.example.sg",
"v5Payload": {
"type": "corporate",
"kycType": "full",
"region": "SG",
"registeredCountry": "SG",
"businessType": "private_company",
"businessName": "Example Trading Pte. Ltd.",
"tradeName": "Example Trading",
"businessRegistrationNumber": "202605020001K",
"registeredDate": "2020-07-20",
"website": "https://www.example.sg"
}
}'5. Upload an onboarding documentView endpoint
export APPLICATION_ID="<APPLICATION_ID>"
curl -sS -X POST "$GX_API_BASE/v1/business/onboarding/applications/$APPLICATION_ID/documents" \
-H "x-api-key: $GX_API_KEY" \
-F "type=business_registration_doc" \
-F "file=@/path/to/business-registration.pdf;type=application/pdf"6. Submit onboarding for reviewView endpoint
curl -sS -X POST "$GX_API_BASE/v1/business/onboarding/applications/$APPLICATION_ID/submit" \
-H "x-api-key: $GX_API_KEY" \
-H "idempotency-key: $(uuidgen)"7. List wallets and receiving accountsView endpoint
curl -sS "$GX_API_BASE/v1/business/wallets" \
-H "x-api-key: $GX_API_KEY"
curl -sS "$GX_API_BASE/v1/business/accounts" \
-H "x-api-key: $GX_API_KEY"8. Open a receiving accountView endpoint
curl -sS -X POST "$GX_API_BASE/v1/business/accounts/payment-ids" \
-H "x-api-key: $GX_API_KEY" \
-H "idempotency-key: $(uuidgen)" \
-H "content-type: application/json" \
--data-raw '{
"walletHashId": "<WALLET_HASH_ID>",
"payload": {
"accountCategory": "SELF_FUNDING_ACCOUNT",
"bankName": "JPM_SG",
"currencyCode": "USD"
}
}'9. Create an FX quoteView endpoint
curl -sS -X POST "$GX_API_BASE/v1/business/fx/quotes" \
-H "x-api-key: $GX_API_KEY" \
-H "idempotency-key: $(uuidgen)" \
-H "content-type: application/json" \
--data-raw '{
"walletHashId": "<WALLET_HASH_ID>",
"payload": {
"sourceCurrencyCode": "USD",
"destinationCurrencyCode": "SGD",
"sourceAmount": 100,
"lockPeriod": "5_minutes",
"conversionSchedule": "immediate"
}
}'10. Create a recipientView endpoint
curl -sS -X POST "$GX_API_BASE/v1/business/beneficiaries" \
-H "x-api-key: $GX_API_KEY" \
-H "idempotency-key: $(uuidgen)" \
-H "content-type: application/json" \
--data-raw '{
"payload": {
"beneficiaryName": "EXAMPLE GLOBAL LTD",
"beneficiaryAccountType": "Corporate",
"beneficiaryCountryCode": "HK",
"destinationCountry": "HK",
"destinationCurrency": "USD",
"payoutMethod": "SWIFT",
"beneficiaryAccountNumber": "123456789",
"beneficiaryBankAccountType": "Current",
"beneficiaryBankName": "DBS Bank Hong Kong",
"routingCodeType1": "SWIFT",
"routingCodeValue1": "DHBKHKHH",
"beneficiaryAddress": "1 Queen Road Central",
"beneficiaryCity": "Hong Kong",
"beneficiaryPostcode": "0000",
"beneficiaryEmail": "treasury@example.hk",
"remitterBeneficiaryRelationship": "SUPPLIER"
}
}'11. Validate and create a payoutView endpoint
export BENEFICIARY_ID="<BENEFICIARY_HASH_ID>"
curl -sS -X POST "$GX_API_BASE/v1/business/payouts/validate" \
-H "x-api-key: $GX_API_KEY" \
-H "idempotency-key: $(uuidgen)" \
-H "content-type: application/json" \
--data-raw '{
"walletHashId": "<WALLET_HASH_ID>",
"payload": {
"beneficiary": { "id": "'"$BENEFICIARY_ID"'" },
"payout": { "sourceCurrency": "USD", "sourceAmount": 100.25 },
"purposeCode": "IR01801",
"sourceOfFunds": "Corporate Account"
}
}'
curl -sS -X POST "$GX_API_BASE/v1/business/payouts" \
-H "x-api-key: $GX_API_KEY" \
-H "idempotency-key: $(uuidgen)" \
-H "content-type: application/json" \
--data-raw '{
"walletHashId": "<WALLET_HASH_ID>",
"payload": {
"beneficiary": { "id": "'"$BENEFICIARY_ID"'" },
"payout": { "sourceCurrency": "USD", "sourceAmount": 100.25 },
"purposeCode": "IR01801",
"sourceOfFunds": "Corporate Account"
}
}'12. Wallet-to-wallet transfer by business emailView endpoint
curl -sS -X POST "$GX_API_BASE/v1/business/transfers/recipient-lookup" \
-H "x-api-key: $GX_API_KEY" \
-H "content-type: application/json" \
--data-raw '{
"recipientEmail": "recipient@example.hk",
"currency": "USD",
"walletHashId": "<SOURCE_WALLET_HASH_ID>"
}'
curl -sS -X POST "$GX_API_BASE/v1/business/transfers" \
-H "x-api-key: $GX_API_KEY" \
-H "idempotency-key: $(uuidgen)" \
-H "content-type: application/json" \
--data-raw '{
"walletHashId": "<SOURCE_WALLET_HASH_ID>",
"payload": {
"recipientEmail": "recipient@example.hk",
"currency": "USD",
"destinationAmount": 100,
"customerComments": "Invoice 1001",
"purposeCode": "IR01802"
}
}'