---
title: "Buy guard extension from quote"
method: POST
path: "/api-regulated/v1/guard-quotes/{quoteId}/buy-guard-extension"
tags: ["GuardQuote"]
---

# Buy guard extension from quote

`POST /api-regulated/v1/guard-quotes/{quoteId}/buy-guard-extension`

## Request

- Base URL: `https://api.currencyguard.com`
- URL: `https://api.currencyguard.com/api-regulated/v1/guard-quotes/{quoteId}/buy-guard-extension`
- Auth: OAuth 2 (implicit, authorization URL `https://auth.currencyguard.com/oauth2/authorize`, scopes: `regulated.risk-management.canExtendGuard`)

Purchases a guard extension from a previously generated extension quote.

**Required entitlement:** `regulated.risk-management.canExtendGuard`  
_Entitles the regulated user to extend guard position expiration dates for their customers_

## Path parameters

- `quoteId` string, uuid, required

## Response `200`

Guard extension purchased and applied

- GuardDTO: Schema for representing a Guard
  - `id` string: Reference for this guard. The original is bare; extensions carry an -E{nn} suffix.
  - `originalGuardId` string: Id of the original Guard at the start of the lifecycle. Constant through extensions.
  - `previousGuardId` string: Id of the Guard generation this one extended. NULL on an original.
  - `introducingBrokerId` string, uuid: ID of the introducing broker for this guard (denormalized from company)
  - `regulatedUserId` string, uuid: ID of the regulated user who booked this guard
  - `salesUserId` string, uuid: ID of the sales user who sold this guard
  - `companyId` string, uuid: ID of the company associated with this guard
  - `customerId` string, uuid: ID of the customer who owns this guard
  - `guardStatus` 'ERROR' | 'CANCELLED' | 'PENDING' | 'AWAITING_FEE' | 'ACTIVE' | 'COMPLETE' | 'LAPSED' | 'VOID' | 'EXTENDED': Status of this guard
  - `externalRef` string: External reference for the guard. Could be the beneficiary identifier or a foreign key in the PSP platform. Avoid using Personally Identifiable Information in this field.
  - `invoiceExternalRef` string: External reference of the customer invoice this guard protects. Copied from the guard quote at purchase. Avoid using Personally Identifiable Information in this field.
  - `guardPeriodFrom` string: Start period date of this guard, also the purchase date
  - `tradeDate` string: Trade date for this guard. The actual transaction datetime when the guard was created or extended.
  - `settlementWindowFrom` string: Start settlement window of this guard, typically two weeks due date of the final payment
  - `settlementWindowTo` string: End settlement window of this guard, typically the due date of the final payment
  - `guardCurrency` string: The Guard currency is the currency in which the cost or receivable is being protected typically the corporate base currency
  - `foreignCurrency` string: Foreign currency of this guard, matching the invoice or bill currency
  - `currencyPair` string: The traded currency pair this guard is booked on, in CurrencyPair convention. The guard currency may be either leg of this pair.
  - `payReceive` 'PAY' | 'RECEIVE': Indicates whether the guard will pay or receive foreign currency
  - `foreignAmount` number: Amount of the guard in the foreign currency
  - `totalForeignAmountSettled` number: Total foreign amount settled so far in the foreign currency
  - `guardRate` number: Guard rate of exchange
  - `paymentMarginAtInception` number: Client payment margin inside the guard rate, frozen at inception, as a decimal (0.015 = 1.5%)
  - `midAtInception` number: CGL market mid the guard rate was derived from, copied from the guard quote
  - `spotFxBid` number: Spot FX bid rate at the time the guard was created, copied from the guard quote
  - `spotFxAsk` number: Spot FX ask rate at the time the guard was created, copied from the guard quote
  - `guardAmount` number: Guard amount in the guard currency, derived from the foreign amount and guard rate
  - `totalGuardAmountSettled` number: Total guard amount settled so far in the guard currency
  - `guardFee` number: Fee paid for the guard in the guard currency
  - `guardFeeDate` string: Guard fee payment date, calculated as trade_date + 2 business days. Corresponds to the premium payment date on the back-to-back hedge.
  - `salesMarginRate` number: Sales margin rate as a decimal (e.g. 0.007 = 0.7%). If only salesMarginRate is provided, salesMargin amount is calculated. If only salesMargin is provided, salesMarginRate is calculated. If both are provided, they must match within a tolerance of 0.01 or the request is rejected with 400 Bad Request.
  - `salesMargin` number: Sales margin amount incorporated into the guard fee and expressed in guard currency. If only salesMargin is provided, salesMarginRate is calculated. If only salesMarginRate is provided, salesMargin amount is calculated. If both are provided, they must match within a tolerance of 0.01 or the request is rejected with 400 Bad Request.
  - `effectiveRate` number: Effective rate to the client after all costs including the Guard fee and margins
  - `guardQuoteId` string, uuid: ID of the guard quote that was used to create this guard
  - `versionNumber` integer: Strictly monotonically increasing version number for this record
  - `updatedBy` string: Username of the person or entity that updated this record
  - `updatedAt` string: Timestamp when of the last update in UTC
  - `createdAt` string: Timestamp of creation in UTC
  - `expectedPaymentMargin` number: Expected payment margin still to be earned on the unsettled portion of this guard, in guard currency
  - `realizedPaymentMargin` number: Realized payment margin from SETTLEMENT_EXECUTED settlements to date, net of true-ups, in guard currency

## Other responses

- `400`: Invalid quote ID — [`http/malformed-request`](/problems/http/malformed-request/)
- `401`: Not authenticated — [`security/authentication-failed`](/problems/security/authentication-failed/)
- `403`: Not authorized — [`security/insufficient-permissions`](/problems/security/insufficient-permissions/)
- `404`: Quote not found — [`http/resource-not-found`](/problems/http/resource-not-found/)
- `409`: Quote expired or already traded **Problem types returned by this endpoint** | Type | Meaning | |---|---| | [`guard-quote/quote-expired`](/problems/guard-quote/quote-expired/) | The quote has passed its time to live and can no longer be traded; request a new quote | | [`guard-quote/quote-already-traded`](/problems/guard-quote/quote-already-traded/) | The quote has already been used to create a Guard and cannot be traded again |
- `422`: Quote built on failed market data **Problem types returned by this endpoint** | Type | Meaning | |---|---| | [`guard-quote/pricing-failed`](/problems/guard-quote/pricing-failed/) | Pricing operation failed due to market data or calculation issues |
- `500`: Server error — [`server/internal-error`](/problems/server/internal-error/)

---

[API](https://skmtc.dev/currencyguard/apis/currencyguard-trading-system-api-external.md) · [All operations](https://skmtc.dev/currencyguard/apis/currencyguard-trading-system-api-external/llms.txt) · [OpenAPI document](https://skmtc.dev/currencyguard/apis/currencyguard-trading-system-api-external/revisions/a1f3f854190d?raw)
