Layer 1 — Request Entry & Quote Type Classification
Input Parameters
Every request entering the FX Engine must provide the following four parameters:
| Parameter | Type | Description | Example |
|---|---|---|---|
pair | String | The currency pair being requested | USD-IDR, USD-SGD, MYR-IDR |
side | Enum | Direction of the trade from the requester's perspective | BUY or SELL |
amount | Decimal | Notional size of the request in the source currency | 50000.00 |
quote_type | Enum | Whether this is a binding executable quote or an indicative reference price | INDICATIVE or FIRM |
Indicative vs Firm Quote Routing
The quote_type parameter determines which processing path is taken. Mixing the two paths leads to either over-engineering of display-only price checks or under-protection of real trades.
| Quote Type | Processing Path | Inventory Reserved? | Arb Check? | Expiry Enforced? |
|---|---|---|---|---|
| INDICATIVE | Short path: oracle mid + wide reference spread only. No downstream layers invoked. | No | No | No |
| FIRM | Full pipeline: all nine layers executed in sequence. | Yes | Yes | Yes |
Indicative quotes carry no execution commitment. They are intended for PSP dashboard display, pre-trade planning, and rate monitoring. Only FIRM quotes proceed through the full validation and pricing pipeline.
Minimum Transaction Size & Fee Tier Resolution
Every corridor has a minimum transaction size defined by the smallest fee tier's min_amount. Requests below this minimum are rejected with BELOW_MIN_TRANSACTION_SIZE before any downstream processing occurs.
| Corridor | Minimum | Currency |
|---|---|---|
| USD-IDR | $10 | USD |
| USD-SGD | $10 | USD |
| MYR-IDR | 50 MYR | MYR |
For firm quotes, the fee tier is resolved at this layer based on the request amount. The resolved tier (fixed fee, variable bips, base spread override) is attached to the request context and flows through all downstream layers.
See Volume-Tiered Fee Schedule for the complete fee resolution logic.