Payment Arrival Estimate (Beta)
settlement_etaBETA. Estimate when a SWIFT payment will arrive: a corpus-grounded arrival window with an honest tail, computed from real completed payments we have tracked, projected onto the currency's banking calendar.
This estimator is in BETA and still calibrating. Say so when you present a number: call it an estimate or a typical window, never a commitment, and never let a user plan an irreversible decision (a cutoff, a contractual settlement date) on it without that caveat. The payload carries beta=true while this holds.
Two modes:
Forward (default): "when will it land" — returns P50/P90/P95 arrival dates, sample size, confidence, competing non-arrival risk, delay-risk factors, and (where validated) the most likely correspondent route.
Reverse: pass arrive_by_date (YYYY-MM-DD) — returns the latest send date such that arrival by that day is likely ("send by Thursday to land by month-end").
INPUT DISCIPLINE (important):
Mid-flight payment: pass ONLY the uetr (from TrackingContext or track_payment). The server resolves the current status, currency and elapsed time deterministically from the tracking record. NEVER compute elapsed_business_days yourself.
Pre-trade question ("how long will a USD wire from X to Y take?"): pass currency + sender_bic/receiver_bic (8 or 11 chars, or bank names). current_status / elapsed_business_days are for this path only.
Reading the answer honestly (relay these to the user):
basis.n is the sample size and confidence reflects it; when confidence is "low", present the window as a rough range, never a promise.
route.confirmed=false means the route is INFERRED from settlement instructions on file, not confirmed by GPI — say so.
basis.route_adjusted=true means we hold no completed payments for this exact pair and the window was lifted to a route-composed estimate: the SSI-implied correspondent chain (route.intermediaries hops) with typical processing time per hop. Present it as a route-based estimate, not as observed statistics, and never quote the faster currency-pool average alongside it as if corridor-specific.
mode="outlier" means the payment is already slower than ~90% of similar payments: stop quoting a window, explain the usual manual causes (compliance review, repair/RFI, missing cover) and pivot to the stuck-payment diagnostic flow.
non_arrival.p_reject is the share of similar payments that were returned or rejected rather than delivered.
"Delivered" (ACCC) means delivered to the beneficiary bank per GPI; funds can become usable in the account slightly later.
Available on every surface to any caller with an active subscription.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| uetr | No | UETR of a tracked payment, UUID v4 (e.g. "eb6305c8-0710-4e41-84ad-f58db3083e82"). Preferred for a payment already in flight; see INPUT DISCIPLINE in the description. | |
| amount | No | Payment amount; it improves the delay-risk assessment. A plain number is fine: 50000 and "50,000.00" are both accepted. | |
| api_key | No | Your Ohmyfin API key (prod-...). Optional here: it can be sent instead as a KEY header or an Authorization: Bearer header. What the tool requires of the key is in its description. | |
| currency | No | 3-letter ISO 4217 currency, for the pre-trade path. Ignored when the uetr resolves. | |
| sender_bic | No | Sending bank's BIC (8 or 11 characters) or bank name, for the pre-trade path. | |
| receiver_bic | No | Receiving bank's BIC (8 or 11 characters) or bank name, for the pre-trade path. | |
| arrive_by_date | No | YYYY-MM-DD; switches to reverse send-by mode. You do not know today's date: a deadline stated as "the 20th" or "by month-end" must be resolved against the `today` block returned by bank_holidays / value_date / is_business_day_check, not against your own sense of the current date. A date in the past is rejected. | |
| current_status | No | Status code such as ACSP, for the path without a uetr only. | |
| sender_country | No | Optional ISO 3166-1 alpha-2 country code of the sending bank. | |
| intermediary_bic | No | Optional BIC of a known intermediary bank. | |
| receiver_country | No | Optional ISO 3166-1 alpha-2 country code of the receiving bank. | |
| elapsed_business_days | No | Business days already in flight, for the path without a uetr only. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||