Financial workflows
Quotes & acceptance
Request explicit FX economics, review conditions and retain accepted terms.
Choose what to fix
POST /v1/quotes accepts base_currency and quote_currency with one supported amount mode. FIXED_SOURCE uses base_amount_minor as the all-in source debit. FIXED_DESTINATION uses destination_amount_minor as target proceeds. Do not send competing amount intentions.
curl -X POST "$OSAI_API_BASE_URL/v1/quotes" \
-H "Authorization: ApiKey $OSAI_PUBLIC_ID:$OSAI_API_SECRET" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: quote-order-1042" \
-d '{"quote_mode":"FIXED_SOURCE","base_amount_minor":100000,"base_currency":"NGN","quote_currency":"USD","customer_reference":"order-1042"}'Review the quote
- Check the quote ID, currencies, source principal and destination proceeds.
- Read fee, total debit, fee schedule and funding constraints.
- Respect expires_at and request new terms after expiry.
- An indicative price is not acceptance authority for a quote.
Accept and retain the trade reference
POST /v1/quotes/{quote_id}/accept takes quote_id and a beneficiary where the route requires it. Use a distinct stable Idempotency-Key for acceptance and retain trade_id with the exact accepted terms.
curl -X POST "$OSAI_API_BASE_URL/v1/quotes/$QUOTE_ID/accept" \
-H "Authorization: ApiKey $OSAI_PUBLIC_ID:$OSAI_API_SECRET" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: accept-order-1042" \
-d "{\"quote_id\":\"$QUOTE_ID\",\"beneficiary_id\":\"$BENEFICIARY_ID\"}"