---
title: "Adds a generic/custom item to basket for payment"
method: POST
path: "/addgenericitem"
tags: ["BookingFlow"]
---

# Adds a generic/custom item to basket for payment

`POST /addgenericitem`

## Query parameters

- `searchId` integer
- `searchKey` string

## Request body

- GenericItemCriteria — Generic item criteria class.
  - `reference` string, required — Reference
  - `isGiftVoucher` boolean, nullable — Is gift voucher (default false)
  - `quantity` integer — Quantity (default 1)
  - `orderRef` string, nullable — Order reference to link payment to an existing order (ADVANCED USE ONLY - DO NOT USE WITHOUT PERMISSION FROM TRAVELGENIX)
  - `title` string, nullable — Title
  - `description` string, nullable — Description
  - `subTitle` string, nullable — Sub-Title (optional)
  - `subDescription` string, nullable — Sub-Description (optional)
  - `imageUrl` string, nullable — Image URL
  - `price` number, double — Price
  - `deposit` number, double, nullable — Optional deposit
  - `pricing` GenericItemPricing[], nullable — Optional array of pricing
    - `itemType` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 — Enumerator defining type of pricing:<br>0=Base, 1=Fare, 2=Tax, 3=Insurance, 4=Surcharge, 5=Service, 6=Extra, 7=SalesTax, 8=Delivery
    - `travellerType` 1 | 2 | 3 — Enumerator defining main type of traveller:<br>1=Adult, 2=Child, 3=Infant
    - `title` string, nullable — Pricing item title (set if ItemType not set to Base)
    - `description` string, nullable — Pricing item description
    - `price` number, double — Price for item
    - `deposit` number, double, nullable — Optional deposit for item
    - `qty` integer — Quantity selected
  - `currency` string, nullable — Currency code
  - `attributes` object, nullable — Optional attributes
  - `contactInfo` ContactInformation — Contact details for the booking
    - `internalRef` string, nullable — Internal CRM reference
    - `emailAddress` string, nullable — Email address
    - `acceptMarketing` boolean — Accept or sign up for marketing
    - `acceptTerms` boolean — Accept terms and conditions
    - `telephone` PhoneNumber — Phone number details
      - `type` 1 | 2 | 3 | 4 — Enumerator defining phone types:<br>1=Generic, 2=Mobile, 3=Home, 4=Office
      - `countryPrefix` string, nullable — Country prefix (e.g. 44)
      - `number` string, nullable — Phone number
    - `title` 0 | 1 | 2 | 3 | 4 | 5 | 6 — Enumerator defining traveller name titles:<br>0=Unspecified, 1=Mr, 2=Miss, 3=Mrs, 4=Ms, 5=Master, 6=Dr
    - `firstname` string, nullable — Billing firstname
    - `surname` string, nullable — Billing surname
    - `company` string, nullable — Billing company name
    - `address1` string, nullable — Billing address 1
    - `address2` string, nullable — Billing address 2
    - `city` string, nullable — Billing city or town
    - `state` string, nullable — Billing county or state
    - `postalCode` string, nullable — Billing postal or zip code
    - `countryCode` string, nullable — Billing 2-letter country code
  - `recipient` ContactInformation — Contact details for the booking
    - `internalRef` string, nullable — Internal CRM reference
    - `emailAddress` string, nullable — Email address
    - `acceptMarketing` boolean — Accept or sign up for marketing
    - `acceptTerms` boolean — Accept terms and conditions
    - `telephone` PhoneNumber — Phone number details
      - `type` 1 | 2 | 3 | 4 — Enumerator defining phone types:<br>1=Generic, 2=Mobile, 3=Home, 4=Office
      - `countryPrefix` string, nullable — Country prefix (e.g. 44)
      - `number` string, nullable — Phone number
    - `title` 0 | 1 | 2 | 3 | 4 | 5 | 6 — Enumerator defining traveller name titles:<br>0=Unspecified, 1=Mr, 2=Miss, 3=Mrs, 4=Ms, 5=Master, 6=Dr
    - `firstname` string, nullable — Billing firstname
    - `surname` string, nullable — Billing surname
    - `company` string, nullable — Billing company name
    - `address1` string, nullable — Billing address 1
    - `address2` string, nullable — Billing address 2
    - `city` string, nullable — Billing city or town
    - `state` string, nullable — Billing county or state
    - `postalCode` string, nullable — Billing postal or zip code
    - `countryCode` string, nullable — Billing 2-letter country code
  - `giftMessage` string, nullable — Optional message (eg. gift message)
  - `giftSendAt` string, date-time, nullable — Optional gift voucher send date
  - `passengers` TravellerData[], nullable — Optional array of passengers (if applicable)
    - `type` 1 | 2 | 3, required — Enumerator defining main type of traveller:<br>1=Adult, 2=Child, 3=Infant
    - `title` 0 | 1 | 2 | 3 | 4 | 5 | 6, required — Enumerator defining traveller name titles:<br>0=Unspecified, 1=Mr, 2=Miss, 3=Mrs, 4=Ms, 5=Master, 6=Dr
    - `firstname` string, required — Firstname of traveller
    - `middleNames` string, nullable — Optional middle names or initials of traveller
    - `surname` string, required — Surname of traveller
    - `dateOfBirth` string, date-time — Date of birth of traveller (YYYY-MM-DD)
    - `age` integer, nullable — DISPLAY USE ONLY: Automatically calculated by date of birth on end of trip
    - `gender` 0 | 1 | 2 — Enumerator defining gender:<br>0=Unspecified, 1=Male, 2=Female
    - `nationality` string, nullable — Traveller nationality
    - `foidType` 1 | 2 | 3 — Enumerator defining forms of identification:<br>1=Passport, 2=NationalIDCard, 3=DrivingLicense
    - `foidNumber` string, nullable — Form of identification number
    - `foidStartDate` string, date-time, nullable — Form of identification start date (YYYY-MM-DD)
    - `foidExpiryDate` string, date-time, nullable — Form of identification expiry date (YYYY-MM-DD)
    - `foidIssuingCountry` string, nullable — Form of identification issuing country
    - `emailAddress` string, nullable — Optional traveller email address
    - `extras` ExtraSelectionItem[], nullable — Array of optional extras for this passenger
      - `eid` string, required — Extra ID
      - `gid` string, nullable — Optional Extra Group ID (if in extra group)
      - `tid` integer, nullable — Optional Traveller ID (if related to a traveller)
      - `qty` integer, required — Quantity required
      - `participants` TravellerData[], nullable — Array of participants for the extras booking
    - `roomAllocIdx` integer, nullable — Optional room allocation index (for accommodation bookings, only supported by some suppliers)

## Response `200`

OK

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `417` — Expectation Failed
- `500` — Internal Server Error

---

[API](https://skmtc.dev/travelify/apis/travelify-io-api.md) · [All operations](https://skmtc.dev/travelify/apis/travelify-io-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/travelify/travelify-io-api/revisions/b09ce3f0c6d5/schema)
