---
title: "Purchase coverage"
method: POST
path: "/v1/purchase"
tags: ["Purchase"]
---

# Purchase coverage

`POST /v1/purchase`

Purchase a policy with Faye. Call this endpoint after a quote is generated. 
Please provide the expected price to validate the amount to be charged. 

Payment token must be provided in the request body.

## Headers

- `Authorization` string

## Request body

- CreatePurchaseDto
  - `advisorId` string — A unique identifier for the agent triggering this quote
  - `departureDate` string, date, required — First day of trip
  - `returnDate` string, date, required — Final day of trip
  - `destination` Destination[], required — Array of travel destinations. Each destination must provide either a country code (Alpha-2 format like US, AU) or googlePlaceId. State (areaLevel1) is optional for US destinations.
    - `country` string — Country code
    - `googlePlaceId` string — google place ID
    - `state` string — State code
  - `tripCost` number — Value of non-refundable trip costs in $USD. Minimum $1000. Maximum is $150,000 or $50,000 per traveler (the lower between them)
  - `coverageOptions` AddonsRequestDto
    - `petOption` StandardCoverageOptionRequestDto
      - `selected` boolean — If this option is desired
    - `trcOption` StandardCoverageOptionRequestDto
      - `selected` boolean — If this option is desired
    - `cfarOption` InitialDepositBaseCoverageOptionRequestDto
      - `selected` boolean — If this option is desired
      - `initialDepositDate` string — Initial deposit date
    - `cfwrOption` InitialDepositBaseCoverageOptionRequestDto
      - `selected` boolean — If this option is desired
      - `initialDepositDate` string — Initial deposit date
    - `adventureOption` StandardCoverageOptionRequestDto
      - `selected` boolean — If this option is desired
    - `vacationRentalOption` StandardCoverageOptionRequestDto
      - `selected` boolean — If this option is desired
    - `medicalUpgrade` StandardCoverageOptionRequestDto
      - `selected` boolean — If this option is desired
    - `carRentalOption` CarRentalCoverageRequestDto
      - `selected` boolean — If this option is desired
      - `carDatesDto` CarDateDto[], required
        - `startDate` string, date-time, required — Start date of car rental
        - `endDate` string, date-time, required — End date of car rental
        - `noOfCars` number — Number of cars
      - `noOfCars` number — Number of cars. Defaults to 1
  - `productId` 'PR-STANDARD-01' | 'PR-SPORTS-01' | 'PR-CFAR-01' | 'PR-STANDARD-DO' | 'PR-SPORTS-DO' | 'PR-CFAR-DO' | 'PR-STR' | 'PR-GENERAL-STR' | 'RETAIL' | 'PR-FirstCountrywide' | 'PR-ForwardCountrywide' | 'PR-FlagshipCountrywide' — Product ID - relevant only for specific partners. Single product for single quote.
  - `productIds` string[] — Array of product IDs or group names for multi-quote. If provided, will create quotes for all products. Can contain ProductIdEnum values or group names.
  - `productCode` string, required — The product code to quote for, this field is no longer used
  - `timezone` string — Timezone for the trip dates (IANA timezone identifier)
  - `address` AddressDto, required
    - `addressLine1` string, required — Address line 1
    - `addressLine2` string — Address line 2
    - `city` string, required — City
    - `state` string, required — State
    - `zip` string, required — Zip code
    - `country` string, required — Country (2 letter code)
  - `primaryEmail` string, required — An email from the main policyholder. This is used to issue the policy and to communicate with the traveler.
  - `travelerDetails` ProspectiveCustomerDto[], required — Details of the travelers, where the first traveler is the main policy holder.
    - `firstName` string, required — First name
    - `lastName` string, required — Last name
    - `email` string — Email address
    - `dob` string, date, required — Date of birth
  - `paymentToken` string — Token to charge payment method
  - `paymentIntent` string — Token intent to confirm
  - `paymentMethod` string — Payment method token
  - `paymentCustomerId` string — Customer id for payment service
  - `paymentService` 'stripe' | 'checkOut' — Payment service used to issue payment token
  - `expectedPrice` number, required — Expected price for the policy. Please call quote endpoint to generate the expected price. If the gap between the expected price and the actual price is off by more than 1 cent - the request will fail. This is to avoid false charges.
  - `externalId` string — The ID of the user on the partner system
  - `noTravellers` number — The number of travellers
  - `utms` UtmDto[] — UTM tracking parameters
    - `key` string, required — UTM parameter key
    - `value` string, required — UTM parameter value

## Response `201`

The purchase has been completed.

- PurchasePolicyDto
  - `purchaseId` string, required — Policy ID of all travelers
  - `plans` PolicyholderDto[] — An object of a policy ID for each traveler.
    - `name` string, required — Policyholder Name
    - `planId` string, required — Policy Number
  - `totalPrice` number, required — The price that was charged
  - `paymentIntent` string — Payment intent token of the purchase
  - `policyUrl` string — URL to download the policy
  - `receiptUrl` string — URL to download the receipt

## Other responses

- `400` — Purchase request cannot be processed
- `402` — Payment failed

---

[API](https://skmtc.net/withfaye/apis/faye-partner-sales-api.md) · [All operations](https://skmtc.net/withfaye/apis/faye-partner-sales-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/withfaye/faye-partner-sales-api/revisions/e016afb8fdb3/schema)
