@getspot/spot-sdk
v0.3.3
Published
Spot Platform API
Readme
Spotsdk TypeScript SDK 0.3.3
Welcome to the Spotsdk SDK documentation. This guide will help you get started with integrating and using the Spotsdk SDK in your project.
Versions
- API version:
1.0.0 - SDK version:
0.3.3
About the API
Spot Platform API
Table of Contents
- Setup & Configuration
- Authentication
- Environments
- Setting a Custom Timeout
- Sample Usage
- Services
- Models
- License
Setup & Configuration
Supported Language Versions
This SDK is compatible with the following versions: TypeScript >= 4.8.4
Installation
To get started with the SDK, we recommend installing using npm:
npm install @getspot/spot-sdkAuthentication
OAuth Authentication
The Spotsdk API uses OAuth for authentication.
You need to provide the OAuth parameters when initializing the SDK.
const sdk = new Spotsdk({ clientId: 'CLIENT_ID', clientSecret: 'CLIENT_SECRET' });If you need to set or update the OAuth parameters after the SDK initialization, you can use:
const sdk = new Spotsdk();
sdk.clientId = 'CLIENT_ID';
sdk.clientSecret = 'CLIENT_SECRET';Environments
The SDK supports different environments for various stages of development and deployment.
Here are the available environments:
DEFAULT = 'https://api.getspot.com';
PRODUCTION = 'https://api.getspot.com';
SANDBOX = 'https://api.sandbox.getspot.com';Setting an Environment
To configure the SDK to use a specific environment, you can set the base URL as follows:
const sdk = new Spotsdk();
sdk.setEnvironment(Environment.DEFAULT);Setting a Custom Timeout
You can set a custom timeout for the SDK's HTTP requests as follows:
const spotsdk = new Spotsdk({ timeout: 10000 });Sample Usage
Below is a comprehensive example demonstrating how to authenticate and call a simple endpoint:
import { Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const { data } = await spotsdk.enrollments.fetchWebhookConfiguration({
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();Services
The SDK provides various services to interact with the API.
| Name | | :----------------------------------------------------------------- | | AuthService
AuthService
A list of all methods in the AuthService service. Click on the method name to view detailed information about that method.
| Methods | Description | | :-------------------------------------- | :-------------------------------------------------- | | fetchPartnerToken | Exchange the client id and client secret for a JWT. |
fetchPartnerToken
Exchange the client id and client secret for a JWT.
- HTTP Method:
POST - Endpoint:
/api/oauth/token
Parameters
| Name | Type | Required | Description | | :--- | :-------------------------------------------------------- | :------- | :---------------- | | body | OAuthTokenRequestDto | ✅ | The request body. |
Return Type
OAuthTokenResponseDto
Example Usage Code Snippet
import { OAuthTokenRequestDto, Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const oAuthTokenRequestDto: OAuthTokenRequestDto = {
clientId: 'client_id',
clientSecret: 'client_secret',
};
const { data } = await spotsdk.auth.fetchPartnerToken(oAuthTokenRequestDto);
console.log(data);
})();QuoteService
A list of all methods in the QuoteService service. Click on the method name to view detailed information about that method.
| Methods | Description | | :---------------------------------------- | :-------------------------------------------------------------------------------------- | | getQuote | Request a quote for coverage (Refund Guarantee, Trip, or Pass) | | getBatchQuotes | Request quotes for multiple items in a single cart | | acceptBatchQuotes | Accept multiple quotes from a batch quote response | | declineBatchQuotes | Decline multiple quotes from a batch quote response | | declineQuote | Decline a quote once a customer has opted out of purchasing coverage | | acceptRequote | Accept the requote for an existing enrollment with the date/price updates | | acceptQuote | Accept a quote once a customers purchase has been executed and they opted into coverage | | requote | Requote an existing enrollment due to date and price updates |
getQuote
Request a quote for coverage (Refund Guarantee, Trip, or Pass)
- HTTP Method:
POST - Endpoint:
/api/v1/quote
Parameters
| Name | Type | Required | Description | | :------------- | :---------------------------------------------- | :------- | :--------------------------- | | body | QuoteRequestDto | ✅ | The request body. | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
QuoteResponseDto
Example Usage Code Snippet
import { QuoteMetadataDto, QuoteRequestDto, Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const quoteMetadataDto: QuoteMetadataDto = {
segment: 'segment',
operator: 'operator',
channel: 'channel',
consumerId: 'consumerId',
};
const quoteRequestDto: QuoteRequestDto = {
productPrice: 8.08,
productType: 'productType',
productDuration: 'productDuration',
productId: 'productId',
cartId: 'cartId',
cartName: 'cartName',
productName: 'productName',
participantDescription: 'participantDescription',
eventType: 'eventType',
currencyCode: 'currencyCode',
startDate: 'startDate',
endDate: 'endDate',
partnerRiskEnd: 'partnerRiskEnd',
metadata: quoteMetadataDto,
isPartialPayment: true,
hostCountry: 'hostCountry',
hostCountryState: 'hostCountryState',
destinations: ['destinations'],
dob: 'dob',
};
const { data } = await spotsdk.quote.getQuote(quoteRequestDto, {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();getBatchQuotes
Request quotes for multiple items in a single cart
- HTTP Method:
POST - Endpoint:
/api/v1/quote/batch
Parameters
| Name | Type | Required | Description | | :------------- | :-------------------------------------------------------- | :------- | :--------------------------- | | body | BatchQuoteRequestDto | ✅ | The request body. | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
BatchQuoteResponseDto
Example Usage Code Snippet
import { BatchQuoteItemDto, BatchQuoteRequestDto, QuoteMetadataDto, Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const quoteMetadataDto: QuoteMetadataDto = {
segment: 'segment',
operator: 'operator',
channel: 'channel',
consumerId: 'consumerId',
};
const batchQuoteItemDto: BatchQuoteItemDto = {
cartItemId: 'cartItemId',
productPrice: 6.84,
productType: 'productType',
productDuration: 'productDuration',
productId: 'productId',
productName: 'productName',
participantDescription: 'participantDescription',
eventType: 'eventType',
startDate: 'startDate',
endDate: 'endDate',
partnerRiskEnd: 'partnerRiskEnd',
hostCountry: 'hostCountry',
hostCountryState: 'hostCountryState',
destinations: ['destinations'],
dob: 'dob',
};
const batchQuoteRequestDto: BatchQuoteRequestDto = {
cartId: 'cartId',
cartName: 'cartName',
currencyCode: 'currencyCode',
metadata: quoteMetadataDto,
isPartialPayment: true,
items: [batchQuoteItemDto],
};
const { data } = await spotsdk.quote.getBatchQuotes(batchQuoteRequestDto, {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();acceptBatchQuotes
Accept multiple quotes from a batch quote response
- HTTP Method:
POST - Endpoint:
/api/v1/quote/batch/accept
Parameters
| Name | Type | Required | Description | | :------------- | :-------------------------------------------------------------------- | :------- | :--------------------------- | | body | BatchQuoteAcceptRequestDto | ✅ | The request body. | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
BatchQuoteAcceptResponseDto
Example Usage Code Snippet
import {
BatchQuoteAcceptItemDto,
BatchQuoteAcceptRequestDto,
QuotePolicyAddressDto,
QuotePurchaserDto,
Spotsdk,
} from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const batchQuoteAcceptItemDto: BatchQuoteAcceptItemDto = {
quoteId: 'quoteId',
productPrice: 1.18,
};
const quotePurchaserDto: QuotePurchaserDto = {
firstName: 'Jane',
lastName: 'Doe',
email: '[email protected]',
dateOfBirth: 'dateOfBirth',
};
const quotePolicyAddressDto: QuotePolicyAddressDto = {
line1: '1030 New Road Dr',
line2: 'Unit #5',
city: 'Austin',
zipCode: '78664',
state: 'TX',
countryCode: 'US',
};
const batchQuoteAcceptRequestDto: BatchQuoteAcceptRequestDto = {
items: [batchQuoteAcceptItemDto],
purchaser: quotePurchaserDto,
policyAddress: quotePolicyAddressDto,
};
const { data } = await spotsdk.quote.acceptBatchQuotes(batchQuoteAcceptRequestDto, {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();declineBatchQuotes
Decline multiple quotes from a batch quote response
- HTTP Method:
POST - Endpoint:
/api/v1/quote/batch/decline
Parameters
| Name | Type | Required | Description | | :------------- | :---------------------------------------------------------------------- | :------- | :--------------------------- | | body | BatchQuoteDeclineRequestDto | ✅ | The request body. | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
BatchQuoteDeclineResponseDto
Example Usage Code Snippet
import { BatchQuoteDeclineItemDto, BatchQuoteDeclineRequestDto, Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const batchQuoteDeclineItemDto: BatchQuoteDeclineItemDto = {
quoteId: 'quoteId',
};
const batchQuoteDeclineRequestDto: BatchQuoteDeclineRequestDto = {
items: [batchQuoteDeclineItemDto],
};
const { data } = await spotsdk.quote.declineBatchQuotes(batchQuoteDeclineRequestDto, {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();declineQuote
Decline a quote once a customer has opted out of purchasing coverage
- HTTP Method:
POST - Endpoint:
/api/v1/quote/{id}/decline
Parameters
| Name | Type | Required | Description | | :------------- | :----- | :------- | :--------------------------- | | id | string | ✅ | | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
QuoteDeclineResponseDto
Example Usage Code Snippet
import { Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const { data } = await spotsdk.quote.declineQuote('id', {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();acceptRequote
Accept the requote for an existing enrollment with the date/price updates
- HTTP Method:
POST - Endpoint:
/api/v1/quote/requote/accept
Parameters
| Name | Type | Required | Description | | :------------- | :-------------------------------------------------------------- | :------- | :--------------------------- | | body | RequoteAcceptRequestDto | ✅ | The request body. | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
RequoteAcceptResponseDto
Example Usage Code Snippet
import { RequoteAcceptRequestDto, Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const requoteAcceptRequestDto: RequoteAcceptRequestDto = {
enrollmentId: 'ac572a61-dafe-4054-bb06-8f4e6b877e7e',
};
const { data } = await spotsdk.quote.acceptRequote(requoteAcceptRequestDto, {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();acceptQuote
Accept a quote once a customers purchase has been executed and they opted into coverage
- HTTP Method:
POST - Endpoint:
/api/v1/quote/{id}/accept
Parameters
| Name | Type | Required | Description | | :------------- | :---------------------------------------------------------- | :------- | :--------------------------- | | body | QuoteAcceptRequestDto | ✅ | The request body. | | id | string | ✅ | | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
QuoteAcceptResponseDto
Example Usage Code Snippet
import { QuoteAcceptRequestDto, QuotePolicyAddressDto, QuotePurchaserDto, Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const quotePurchaserDto: QuotePurchaserDto = {
firstName: 'Jane',
lastName: 'Doe',
email: '[email protected]',
dateOfBirth: 'dateOfBirth',
};
const quotePolicyAddressDto: QuotePolicyAddressDto = {
line1: '1030 New Road Dr',
line2: 'Unit #5',
city: 'Austin',
zipCode: '78664',
state: 'TX',
countryCode: 'US',
};
const quoteAcceptRequestDto: QuoteAcceptRequestDto = {
productPrice: 4.68,
purchaser: quotePurchaserDto,
policyAddress: quotePolicyAddressDto,
};
const { data } = await spotsdk.quote.acceptQuote('id', quoteAcceptRequestDto, {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();requote
Requote an existing enrollment due to date and price updates
- HTTP Method:
POST - Endpoint:
/api/v1/quote/requote
Parameters
| Name | Type | Required | Description | | :------------- | :-------------------------------------------------- | :------- | :--------------------------- | | body | RequoteRequestDto | ✅ | The request body. | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
RequoteResponseDto
Example Usage Code Snippet
import { RequoteRequestDto, Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const requoteRequestDto: RequoteRequestDto = {
enrollmentId: 'ac572a61-dafe-4054-bb06-8f4e6b877e7e',
newProductPrice: 8.99,
currencyCode: 'currencyCode',
newStartDate: 'newStartDate',
newEndDate: 'newEndDate',
};
const { data } = await spotsdk.quote.requote(requoteRequestDto, {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();EnrollmentsService
A list of all methods in the EnrollmentsService service. Click on the method name to view detailed information about that method.
| Methods | Description | | :---------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | fetchWebhookConfiguration | Endpoint to fetch the registered webhook for a partner. For now, only a single configuration per partner is permitted. | | registerWebhookConfiguration | Endpoint to register a webhook configuration for a partner. This endpoint will be used to make a POST request with information about enrollments as they are processed. | | deleteWebhookConfigurationById | Endpoint to delete a webhook configuration. Once deleted, the partner will not receieve any status updates until a new configuration is registered. | | resolveCfar | This endpoint is non-standard and is only intended for use when you, the partner, wishes to self-administer refunds as part of Refund Guarantee (CFAR) enrollments. It allows you, the partner, to indicate that a Refund Guarantee (CFAR) refund has been issued to the customer, and that the backing Refund Guarantee (CFAR) policy should be fully resolved. | | getEnrollment | This endpoint allows you, the partner, to fetch an enrollment by its ID. |
fetchWebhookConfiguration
Endpoint to fetch the registered webhook for a partner. For now, only a single configuration per partner is permitted.
- HTTP Method:
GET - Endpoint:
/api/v2/enrollments/webhooks
Parameters
| Name | Type | Required | Description | | :------------- | :----- | :------- | :--------------------------- | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
PartnerWebhookConfigurationDto[]
Example Usage Code Snippet
import { Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const { data } = await spotsdk.enrollments.fetchWebhookConfiguration({
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();registerWebhookConfiguration
Endpoint to register a webhook configuration for a partner. This endpoint will be used to make a POST request with information about enrollments as they are processed.
- HTTP Method:
POST - Endpoint:
/api/v2/enrollments/webhooks
Parameters
| Name | Type | Required | Description | | :------------- | :-------------------------------------------------------------------------------------------- | :------- | :--------------------------- | | body | RegisterPartnerWebhookConfigurationDto | ✅ | The request body. | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
PartnerWebhookConfigurationDto
Example Usage Code Snippet
import { RegisterPartnerWebhookConfigurationDto, Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const registerPartnerWebhookConfigurationDto: RegisterPartnerWebhookConfigurationDto = {
url: 'https://api.partner.com/spot-webhook',
};
const { data } = await spotsdk.enrollments.registerWebhookConfiguration(registerPartnerWebhookConfigurationDto, {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();deleteWebhookConfigurationById
Endpoint to delete a webhook configuration. Once deleted, the partner will not receieve any status updates until a new configuration is registered.
- HTTP Method:
DELETE - Endpoint:
/api/v2/enrollments/webhooks/{id}
Parameters
| Name | Type | Required | Description | | :------------- | :----- | :------- | :--------------------------- | | id | string | ✅ | | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Example Usage Code Snippet
import { Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const { data } = await spotsdk.enrollments.deleteWebhookConfigurationById('id', {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();resolveCfar
This endpoint is non-standard and is only intended for use when you, the partner, wishes to self-administer refunds as part of Refund Guarantee (CFAR) enrollments. It allows you, the partner, to indicate that a Refund Guarantee (CFAR) refund has been issued to the customer, and that the backing Refund Guarantee (CFAR) policy should be fully resolved.
- HTTP Method:
PUT - Endpoint:
/api/v2/enrollments/cfar/{id}/resolve
Parameters
| Name | Type | Required | Description | | :------------- | :---------------------------------------------------------------- | :------- | :--------------------------- | | body | CfarEnrollmentResolveDto | ✅ | The request body. | | id | string | ✅ | | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
EnrollmentResultDto
Example Usage Code Snippet
import { CfarEnrollmentResolveDto, Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const cfarEnrollmentResolveDto: CfarEnrollmentResolveDto = {
payoutAmount: 9.79,
currencyCode: 'USD',
customerRefundTimestamp: '2024-03-21T19:23:27.708Z',
isVoid: true,
};
const { data } = await spotsdk.enrollments.resolveCfar('id', cfarEnrollmentResolveDto, {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();getEnrollment
This endpoint allows you, the partner, to fetch an enrollment by its ID.
- HTTP Method:
GET - Endpoint:
/api/v2/enrollments/{id}
Parameters
| Name | Type | Required | Description | | :------------- | :----- | :------- | :--------------------------- | | id | string | ✅ | | | xSpotPartnerId | string | ❌ | Spot Provided ID for Partner |
Return Type
EnrollmentResultDto
Example Usage Code Snippet
import { Spotsdk } from '@getspot/spot-sdk';
(async () => {
const spotsdk = new Spotsdk({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
spotPartnerId: 'SPOT_PARTNER_ID',
});
const { data } = await spotsdk.enrollments.getEnrollment('id', {
xSpotPartnerId: 'X-Spot-Partner-Id',
});
console.log(data);
})();Models
The SDK includes several models that represent the data structures used in API requests and responses. These models help in organizing and managing the data efficiently.
| Name | Description | | :------------------------------------------------------------------------------------------------------- | :---------- | | OAuthTokenRequestDto
OAuthTokenRequestDto
Properties
| Name | Type | Required | Description | | :----------- | :----- | :------- | :------------------------------- | | clientId | string | ✅ | The Spot-provided client id. | | clientSecret | string | ✅ | The Spot-provided client secret. |
OAuthTokenResponseDto
Properties
| Name | Type | Required | Description | | :---------- | :----- | :------- | :-------------------------------------------------------- | | accessToken | string | ✅ | A base64 encoded string representing a JWT, per RFC-7519. | | expiresIn | number | ✅ | The number of seconds until the JWT is no longer valid. | | tokenType | string | ✅ | The Authorization header token type. |
OAuthErrorResponseDto
Properties
| Name | Type | Required | Description | | :--------------- | :----- | :------- | :------------------------------- | | error | string | ✅ | A short error code string. | | errorDescription | string | ✅ | A full description of the error. |
QuoteRequestDto
Properties
| Name | Type | Required | Description | | :--------------------- | :--------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | productPrice | number | ✅ | The price of the product being sold. | | productType | string | ✅ | The product type being sold (one of "Pass", "Trip", "Registration"). | | productDuration | string | ✅ | The product type being sold (one of "Daily", "Seasonal", "Trip", "Event"). | | productId | string | ✅ | The unique identifier for the product being sold. | | cartId | string | ✅ | A unique identifier for a cart that groups all quotes from a single checkout flow. A consumer may have multiple cartIds across sessions. | | cartName | string | ✅ | Defines the name of the coverage tile displayed in the customer’s account. For example, if the product name is “Half Marathon”, the cartName might be “San Antonio Marathon”. When the customer clicks on this coverage tile, they will see the sub-item “Half Marathon - Jane Doe” | | productName | string | ✅ | A description or name of the product being sold. | | eventType | string | ✅ | The type of event being sold (one of "Kayaking/SUP", "Segway Tours", "Wine Tours", ...) | | currencyCode | string | ✅ | The currency used to purchase the product. | | startDate | string | ✅ | The ISO8601 compliant date-time indicating the date and time the product starts. | | endDate | string | ✅ | The ISO8601 compliant date-time indicating the date and time the product ends. | | participantDescription | string | ❌ | Appends to the product name in the claims flow to help identify the coverage. For example, if the product name is “Half Marathon” and the participant description is “Jane Doe”, the customer will see “Half Marathon - Jane Doe” in their Spot account | | partnerRiskEnd | string | ❌ | The ISO8601 compliant date-time indicating the date and time when the partner/host’s cancellation policy becomes null and Spot/CFAR is the only active refund policy for the customer. | | metadata | QuoteMetadataDto | ❌ | | | isPartialPayment | boolean | ❌ | Indicates whether this quote is for a deposit-based booking. | | hostCountry | string | ❌ | The host country where the product/event is taking place. Required for Trip and Pass coverage types. | | hostCountryState | string | ❌ | The host country state where the product/event is taking place. Required for Trip and Pass coverage types. | | destinations | string[] | ❌ | The destination countries for the trip. Required for Trip and Pass coverage types. | | dob | string | ❌ | The date of birth of the person. |
QuoteMetadataDto
Properties
| Name | Type | Required | Description | | :--------- | :----- | :------- | :------------------------------------------------------------------ | | segment | string | ❌ | The name of the segment that the consumer belongs to. | | operator | string | ❌ | The name of the operator where the request originates from. | | channel | string | ❌ | The channel used for purchase. | | consumerId | string | ❌ | A unique identifier for the consumer across all other transactions. |
QuoteResponseDto
Properties
| Name | Type | Required | Description | | :----- | :--------------------- | :------- | :---------- | | status | QuoteResponseDtoStatus | ✅ | | | data | QuoteDataDto | ❌ | |
QuoteResponseDtoStatus
Properties
| Name | Type | Required | Description | | :------------------- | :----- | :------- | :--------------------- | | QUOTE_AVAILABLE | string | ✅ | "QUOTE_AVAILABLE" | | NO_MATCHING_QUOTE | string | ✅ | "NO_MATCHING_QUOTE" | | REQUOTE_AVAILABLE | string | ✅ | "REQUOTE_AVAILABLE" | | NO_REQUOTE_AVAILABLE | string | ✅ | "NO_REQUOTE_AVAILABLE" |
QuoteDataDto
Properties
| Name | Type | Required | Description | | :------------------- | :-------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------- | | id | string | ✅ | A unique identifier for this quote | | expiresAt | string | ✅ | The ISO8601 compliant date-time indicating when the quote will no longer be valid. | | cancellationDeadline | string | ✅ | The ISO8601 compliant date-time after which cancellation is no longer allowed. | | spotRate | number | ✅ | The rate representing the cost of Spot coverage relative to the total product price, expressed as a decimal (e.g., 0.07 = 7%). | | spotPrice | number | ✅ | The price of the Spot coverage for the given product price. | | currencyCode | string | ✅ | The currency code for the spotPrice. | | communication | QuoteCommunicationDto | ✅ | | | payoutSchedule | any[] | ✅ | The formatted payout schedule showing refund percentages and amounts at different timeframes for that offer and product price | | bundledPrice | number | ❌ | The price of the Spot coverage plus the product price. Only returned for bundled products. | | battlefaceQuoteId | string | ❌ | The Battleface quote ID for Battleface enrollment integration (internal use only) | | qualifyingReasons | QualifyingReasonDto[] | ❌ | Qualifying reasons for the coverage with rank and name |
QuoteCommunicationDto
Properties
| Name | Type | Required | Description | | :-------------------- | :------- | :------- | :----------------------------------------------------------------------------------------- | | name | string | ✅ | A friendly display name for the Spot coverage. | | description | string | ✅ | A quick description of the overall benefits of the Spot coverage. | | bulletPoints | string[] | ✅ | An array of bullet points that can help succinctly describe benefits of the Spot coverage. | | termsAndConditionsUrl | string | ✅ | A link to the full terms and conditions of the Spot coverage. | | yesOptionText | string | ✅ | Text to display for opting in to Spot coverage | | noOptionText | string | ✅ | Text to display for opting out of Spot coverage | | legalDisclaimer | string | ❌ | Legal information about the coverage(s) being sold | | paymentTerms | string | ❌ | Description of the payment terms for partial payment/deposit based coverage. |
QualifyingReasonDto
Properties
| Name | Type | Required | Description | | :--- | :----- | :------- | :---------------------------------------------------------------- | | rank | number | ✅ | The rank/priority of the qualifying reason (1 = highest priority) | | name | string | ✅ | The name/description of the qualifying reason |
BatchQuoteRequestDto
Properties
| Name | Type | Required | Description | | :--------------- | :------------------ | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | cartId | string | ✅ | A unique identifier for a cart that groups all quotes from a single checkout flow. A consumer may have multiple cartIds across sessions. | | cartName | string | ✅ | Defines the name of the coverage tile displayed in the customer's account. For example, if the product name is "Half Marathon", the cartName might be "San Antonio Marathon". When the customer clicks on this coverage tile, they will see the sub-item "Half Marathon - Jane Doe" | | currencyCode | string | ✅ | The currency used to purchase the products. | | items | BatchQuoteItemDto[] | ✅ | Array of items to quote. | | metadata | QuoteMetadataDto | ❌ | | | isPartialPayment | boolean | ❌ | Indicates whether these quotes are for a deposit-based bookings. |
BatchQuoteItemDto
Properties
| Name | Type | Required | Description | | :--------------------- | :------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | cartItemId | string | ✅ | A unique identifier for this item within the cart. | | productPrice | number | ✅ | The price of the product being sold. | | productType | string | ✅ | The product type being sold (one of "Pass", "Trip", "Registration"). | | productDuration | string | ✅ | The product type being sold (one of "Daily", "Seasonal", "Trip", "Event"). | | productId | string | ✅ | The unique identifier for the product being sold. | | productName | string | ✅ | A description or name of the product being sold. | | eventType | string | ✅ | The type of event being sold (one of "Kayaking/SUP", "Segway Tours", "Wine Tours", ...) | | startDate | string | ✅ | The ISO8601 compliant date-time indicating the date and time the product starts. | | endDate | string | ✅ | The ISO8601 compliant date-time indicating the date and time the product ends. | | participantDescription | string | ❌ | Appends to the product name in the claims flow to help identify the coverage. For example, if the product name is "Half Marathon" and the participant description is "Jane Doe", the customer will see "Half Marathon - Jane Doe" in their Spot account | | partnerRiskEnd | string | ❌ | The ISO8601 compliant date-time indicating the date and time when the partner/host's cancellation policy becomes null and Spot/CFAR is the only active refund policy for the customer. | | hostCountry | string | ❌ | The host country where the product/event is taking place. Required for Trip and Pass coverage types. | | hostCountryState | string | ❌ | The host country state where the product/event is taking place. Required for Trip and Pass coverage types. | | destinations | string[] | ❌ | The destination countries for the trip. Required for Trip and Pass coverage types. | | dob | string | ❌ | The date of birth of the person. |
BatchQuoteResponseDto
Properties
| Name | Type | Required | Description | | :------------- | :-------------------------- | :------- | :----------------------------------------------------------- | | quotes | BatchQuoteItemResponseDto[] | ✅ | Array of successfully generated quotes | | totalSpotPrice | number | ✅ | Total Spot price for all quotes combined | | currencyCode | string | ✅ | Currency code for the total price | | status | BatchQuoteResponseDtoStatus | ✅ | Status of the batch quote operation | | communication | QuoteCommunicationDto | ❌ | | | payoutSchedule | any[] | ❌ | Payout schedule (same for all quotes when validation passes) | | failedItems | string[] | ❌ | Array of cartItemIds that failed to generate quotes |
BatchQuoteResponseDtoStatus
Status of the batch quote operation
Properties
| Name | Type | Required | Description | | :----------------- | :----- | :------- | :------------------- | | QUOTES_AVAILABLE | string | ✅ | "QUOTES_AVAILABLE" | | NO_MATCHING_QUOTES | string | ✅ | "NO_MATCHING_QUOTES" |
BatchQuoteItemResponseDto
Properties
| Name | Type | Required | Description | | :------------------- | :-------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------- | | cartItemId | string | ✅ | The cartItemId from the request, used to correlate this quote to the request item | | id | string | ✅ | A unique identifier for this quote | | expiresAt | string | ✅ | The ISO8601 compliant date-time indicating when the quote will no longer be valid. | | cancellationDeadline | string | ✅ | The ISO8601 compliant date-time after which cancellation is no longer allowed. | | spotRate | number | ✅ | The rate representing the cost of Spot coverage relative to the total product price, expressed as a decimal (e.g., 0.07 = 7%). | | spotPrice | number | ✅ | The price of the Spot coverage for this item. | | currencyCode | string | ✅ | The currency code for the spotPrice. | | communication | QuoteCommunicationDto | ✅ | | | payoutSchedule | any[] | ✅ | The formatted payout schedule showing refund percentages and amounts for this item | | battlefaceQuoteId | string | ❌ | The Battleface quote ID for Battleface enrollment integration (internal use only) |
BatchQuoteAcceptRequestDto
Properties
| Name | Type | Required | Description | | :------------ | :------------------------ | :------- | :------------------------ | | items | BatchQuoteAcceptItemDto[] | ✅ | Array of quotes to accept | | purchaser | QuotePurchaserDto | ✅ | | | policyAddress | QuotePolicyAddressDto | ❌ | |
BatchQuoteAcceptItemDto
Properties
| Name | Type | Required | Description | | :----------- | :----- | :------- | :---------------------------------------------------------------- | | quoteId | string | ✅ | The quote ID to accept (from the batch quote response) | | productPrice | number | ✅ | The price of the product being sold (must match the quoted price) |
QuotePurchaserDto
Properties
| Name | Type | Required | Description | | :---------- | :----- | :------- | :---------------------------------------------------------------------------------------------------------------------------- | | firstName | string | ✅ | The first name of the purchaser. | | lastName | string | ✅ | The last name of the purchaser. | | email | string | ✅ | The email for the purchaser. This will be used to create a Spot Account so that they may view their coverage and file claims. | | dateOfBirth | string | ❌ | |
QuotePolicyAddressDto
Properties
| Name | Type | Required | Description | | :---------- | :----- | :------- | :------------- | | line1 | string | ✅ | Address line 1 | | state | string | ✅ | State | | countryCode | string | ✅ | Country code | | line2 | string | ❌ | Address line 2 | | city | string | ❌ | City | | zipCode | string | ❌ | Zip code |
BatchQuoteAcceptResponseDto
Properties
| Name | Type | Required | Description | | :----------------- | :-------------------------------- | :------- | :-------------------------------------------------- | | acceptances | BatchQuoteAcceptItemResponseDto[] | ✅ | Array of successful acceptance results | | totalSpotPrice | number | ✅ | Total Spot price for all successful acceptances | | totalPartnerCut | number | ✅ | Total partner cut for all successful acceptances | | totalInvoiceAmount | number | ✅ | Total invoice amount for all successful acceptances | | currencyCode | string | ✅ | Currency code for the totals | | failedItems | BatchQuoteAcceptFailedItemDto[] | ❌ | Array of failed acceptance attempts |
BatchQuoteAcceptItemResponseDto
Properties
| Name | Type | Required | Description | | :--------------- | :---------------------------------------------- | :------- | :--------------------------------------------------------- | | quoteId | string | ✅ | The quote ID that was accepted | | enrollmentId | string | ✅ | The unique id for this successful enrollment request. | | enrollmentStatus | BatchQuoteAcceptItemResponseDtoEnrollmentStatus | ✅ | The status of this enrollment. | | spotPrice | number | ✅ | The cost to customer to purchase Spot for this enrollment. | | partnerCut | number | ✅ | The partner share of the spotCost. | | invoiceAmount | number | ✅ | The amount of spotCost to be remitted to Spot. |
BatchQuoteAcceptItemResponseDtoEnrollmentStatus
The status of this enrollment.
Properties
| Name | Type | Required | Description | | :------------- | :----- | :------- | :-------------- | | NEW_ | string | ✅ | "New" | | ENROLLING | string | ✅ | "Enrolling" | | ENROLLED | string | ✅ | "Enrolled" | | FAILED | string | ✅ | "Failed" | | CANCELLED | string | ✅ | "Cancelled" | | EXPIRED | string | ✅ | "Expired" | | CLAIM_RECEIVED | string | ✅ | "ClaimReceived" | | UPDATE_FAILED | string | ✅ | "UpdateFailed" |
BatchQuoteAcceptFailedItemDto
Properties
| Name | Type | Required | Description | | :-------- | :----- | :------- | :------------------------------------------------- | | quoteId | string | ✅ | The quote ID that failed to be accepted | | error | string | ✅ | Error message explaining why the acceptance failed | | errorCode | string | ❌ | Error code if available |
BatchQuoteDeclineRequestDto
Properties
| Name | Type | Required | Description | | :---- | :------------------------- | :------- | :------------------------- | | items | BatchQuoteDeclineItemDto[] | ✅ | Array of quotes to decline |
BatchQuoteDeclineItemDto
Properties
| Name | Type | Required | Description | | :------ | :----- | :------- | :---------------------- | | quoteId | string | ✅ | The quote ID to decline |
BatchQuoteDeclineResponseDto
Properties
| Name | Type | Required | Description | | :---------- | :--------------------------------- | :------- | :----------------------------------------------------------- | | declines | BatchQuoteDeclineItemResponseDto[] | ✅ | Successfully declined quotes | | failedItems | BatchQuoteDeclineFailedItemDto[] | ❌ | Failed decline attempts (only present if there are failures) |
BatchQuoteDeclineItemResponseDto
Properties
| Name | Type | Required | Description | | :------ | :------------------------------------- | :------- | :-------------------------------------------- | | quoteId | string | ✅ | The unique id for this quote | | status | BatchQuoteDeclineItemResponseDtoStatus | ✅ | The status of the quote after decline attempt |
