Skip to main content

Funding & settlement

This page covers the money flow around subscriptions and redemptions: where to send wires, how amounts are interpreted, what TreasurySpring does (and does not) check at subscribe time, and how partial funding and redemption payouts work.

Amount units differ between the indication and the subscribe call

Indication.minimum and Indication.maximum are denominated in millions of the indication's currency. SubscriptionBody.amount (on /subscribe) is denominated in absolute units of the indication's currency.

So a minimum of 1 means £1,000,000. To subscribe at the minimum, please send amount: 1000000 rather than amount: 1.

Validate before subscribing

POST/validate is an optional pre-flight check for a prospective subscription. It takes the same body as /subscribe (entityCode, indicationUid, amount, and optionally maturityAction, subscriptionDate, source) but creates nothing.

It confirms that:

  • the indication still exists and is available to this entity,
  • it is not restricted for the entity and is enabled for subscription,
  • the chosen subscriptionDate is a valid subscription date for the product, and
  • the amount is within the indication's permitted limits (see Amount limits below).

On success it returns the matching indication, including its current pricing. A 4xx response indicates the same request would be rejected by /subscribe, so it's a useful step to surface a clear error in your UI before committing.

Validation reflects pricing and availability at the moment of the call — it is not a quote or a hold. Pricing can still move between /validate and /subscribe; treat the terms on the resulting subscription/holding as authoritative. No Idempotency-Key is required because the call has no side effects.

Wire instructions (settlement instructions / SSIs)

Cash settles into a TreasurySpring-managed omnibus account, one account per currency.

  • Payment reference: where possible, please include the entity's entityCode as the reference on the wire — it helps TreasurySpring attribute incoming funds to the right entity.
  • There is one omnibus account per currency (GBP, USD, EUR, etc.); the SSI for each currency is shared by the TreasurySpring account manager during the entity's onboarding.
  • A single payment reference is fine across multiple subscriptions for the same entity — the cell and amount are reconciled from the subscription record rather than from the wire itself.

No balance check at subscription time

Submitting POST/subscribe creates a subscription record. It does not:

  • Check that the entity has funds available.
  • Hold or block any funds.
  • Pull funds from anywhere automatically.

The entity needs to arrange the wire to land before the holding's cut-off. If funding does not arrive in time, the subscription lapses — currently TreasurySpring handles this manually rather than returning an automatic error.

If you'd like to detect lapses programmatically today, poll the subscription until either holdingUid is populated (success) or the subscription has been in a non-terminal state past the expected cut-off (likely lapsed; please contact support to confirm).

Late funding auto-rolls forward

If the wire arrives after the requested subscription date's cut-off but the FTF product still has future subscription dates available, TreasurySpring will automatically re-target the subscription to the next available date. The subscription does not error; it simply settles a day (or business day) later than requested.

Treat the subscriptionDate on the resulting holding as the authoritative value — it may not match what you originally sent.

Partial funding (cash-on-hold + wire)

If an entity is holding cash inside a TreasurySpring cell (e.g. from a previous holding that matured to HOLD), that cash can be used to fund a new subscription. Partial funding works in either direction:

  • Subscribing for more than the entity's available cell cash → a top-up wire is needed.
  • Subscribing for less than the entity's available cell cash → cell cash covers it, with no wire required.

The funding source is selected explicitly when submitting the subscription — there is no default behaviour, and TreasurySpring will not silently combine sources without instruction.

Amount limits

  • Below minimum: the subscription is rejected. This is a hard block.
  • Above maximum: not a hard block. enforceMaximum triggers a manual review — TreasurySpring is often able to accommodate oversize trades at current pricing. We'd suggest your client UI warns above the maximum rather than preventing submission.
  • The minimum applies per subscription, not per entity per day.

The enforceMinimum and enforceMaximum fields on the indication tell you which rules are active for that product.

Redemption payout

Redemption proceeds settle to a single designated payout account per currency per entity. This is configured during onboarding and is not selectable per subscription.

Schedule:

  • Redemption is initiated by the maturity process on CutOff → Redeemed transition.
  • The actual cash arrival in the entity's account follows normal correspondent-banking timelines for the currency (T+0 for GBP via CHAPS in most cases; longer for cross-border USD/EUR).
  • The REDEEMED event fires when TreasurySpring books the redemption — not when the cash hits the entity's bank.

Currency conversion

If a holding involves an FX leg (subscribed in one currency, redeemed in another), the FX event is emitted separately as CURRENCY_CONVERTED and as CASH_MOVED for the resulting cash flows. See the Events reference for the field shapes.

Reconciliation checklist

When matching a TreasurySpring holding to an internal cash record, the relevant fields are:

Field on holdingWhat it means
costPrincipal sent / drawn from cell cash at issuance
valueCurrent marked value (changes daily for extendables; flat for fixed)
maturityValueExpected cash to receive at maturity (after any MVA)
interestmaturityValue − cost
issueDateDate the wire was applied / cell cash drawn
maturityDateDate the holding pays out (subject to extension for extendables)
cutoffDatetimeLast point at which the maturity action can be changed

For multi-entity sweeps and per-currency aggregates, group by entityCode and currency first, then by obligorExposureCode if you're tracking credit exposure.