# SERVICE_CHARGE

Endpoint: POST SERVICE_CHARGE
Version: v2
Security: Bearer

## Security:

  - `Bearer` (unknown)
    http bearer

## Request fields (application/json):

  - `event_type` (string)
    SERVICE_CHARGE
    Example: SERVICE_CHARGE

  - `operationSummary` (object)
    Operation summary for webhook payload

  - `operationSummary.ticketsIssued` (array)
    The tickets issued

  - `operationSummary.ticketsVoided` (array)
    The tickets voided

  - `operationSummary.ticketsRefunded` (array)
    The tickets refunded

  - `operation` (string)
    Service charge operation types
    Enum: "SERVICE_FEE"

  - `payload` (object)
    Service charge record.

  - `payload.entity` (object, required)
    Entity for service charge.

  - `payload.entity.entityType` (string, required)
    Entity type for service charge.
    Enum: "TRIP", "USER"

  - `payload.entity.entityId` (string, required)
    Entity ID for service charge e.g, trip ID for entityType=TRIP.
    Example: 1234567890

  - `payload.tripId` (string)
    Trip ID (if applicable).
    Example: 1234567890

  - `payload.serviceChargeType` (string, required)
    Type of service charge. TMC_CHARGE: Service charge for a service charged by the TMC.
    Enum: "TMC_CHARGE"

  - `payload.serviceType` (string, required)
    Type of service for service charge. ITINERARY_BOOKING: Service charge for travel booking. AGENT_CONTACT: Service charge for agent contact.
    Enum: "ITINERARY_BOOKING", "AGENT_CONTACT"

  - `payload.agentContact` (object)
    Details of agent contact event.

  - `payload.agentContact.contactType` (string, required)
    Agent contact type
    Enum: "PHONE", "CHAT", "EMAIL"

  - `payload.agentContact.contactId` (string, required)
    Unique ID for agent contact.
    Example: 1234567890

  - `payload.agentContact.contactOp` (string, required)
    Agent contact operation.
    Enum: "AGENT_BOOKING", "AGENT_MODIFY", "AGENT_CANCEL", "AGENT_OTHER", "AGENT_EXCHANGE", "ANCILLARY_PURCHASE", "SHELL_PNR_CREATE", "SHELL_PNR_MODIFY", "SHELL_PNR_CANCEL", "SHELL_PNR_EXCHANGE", "MANUAL_FORM_CREATE", "MANUAL_FORM_MODIFY", "MANUAL_FORM_CANCEL", "MANUAL_FORM_EXCHANGE", "UNUSED_TICKET_MANAGEMENT"

  - `payload.agentContact.agentId` (object)
    User identifier

  - `payload.agentContact.agentId.id` (string, required)

  - `payload.agentContact.billable` (boolean, required)
    Is the agent contact event billable?
    Example: true

  - `payload.agentContact.pnrId` (string)
    PNR ID (if applicable).
    Example: 1234567890

  - `payload.agentContact.travelType` (string)
    Travel Type
    Enum: "AIR", "HOTEL", "CAR", "RAIL", "LIMO", "MISC", "ALL"

  - `payload.agentContact.notes` (string)
    Agent notes.
    Example: Requested by customer

  - `payload.agentContact.nonBillableReason` (object)
    Reason for non-billable agent contact.

  - `payload.agentContact.nonBillableReason.reasonCode` (string, required)
    Reason code for non-billable agent contact.
    Enum: "PRODUCT_ISSUE", "ALREADY_CHARGED", "CUSTOMER_GOODWILL", "MINOR_REQUEST", "NON_BILLABLE_REASON_OTHER"

  - `payload.agentContact.nonBillableReason.notes` (string)
    Notes for non-billable agent contact.
    Example: Waived off

  - `payload.chargeId` (string)
    Charge Id to uniquely identify service charge.
    Example: e2c04834-92eb-4b62-9faa-eb73a70051d3

  - `payload.charge` (object, required)
    Service charge.

  - `payload.charge.amount` (object, required)
    Money object containing details such as the amount, the currency code, and the converted amount.

  - `payload.charge.amount.amount` (number, required)
    The numeric value for the amount of money.
    Example: 510

  - `payload.charge.amount.currencyCode` (string, required)
    The 3-letter currency code for the money amount (defined using ISO 4217 standard).
    Example: GBP

  - `payload.charge.amount.convertedAmount` (number)
    The converted currency and amount that has been converted (if a currency conversion has been requested).
For example, if the call requests that money be sent in a specified currency (because the frontend requested
the backend to send money in the user's preferred currency).
    Example: 715.42

  - `payload.charge.amount.convertedCurrency` (string)
    The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
    Example: USD

  - `payload.charge.amount.otherCoinage` (array)
    List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.

  - `payload.charge.amount.otherCoinage.coinageCode` (string)
    Payment method
    Enum: "PAYMENT_METHOD_UNKNOWN", "CREDIT_CARD", "BREX_POINTS", "CASH", "QANTAS_POINTS", "VENDOR_PROGRAM_PAYMENT", "DELAYED_INVOICING", "FLIGHT_CREDITS", "QANTAS_TRAVEL_FUND", "CUSTOM_VIRTUAL_PAYMENT", "FLIGHT_PASS", "MISCELLANEOUS_CREDIT_ORDER", "NO_PREPAYMENT", "DELAYED_PAYMENT"

  - `payload.charge.amount.otherCoinage.amount` (number)
    Example: 1000

  - `payload.charge.amount.otherCoinage.conversionRate` (number)
    1 coin in this system equals to how many currency value
    Example: 0.01

  - `payload.charge.amount.otherCoinage.preferredCurrencyConversionRate` (number)
    1 coin in this system equals to how many currency value
    Example: 0.01

  - `payload.charge.amount.otherCoinage.otherCoinageMetadata` (any)
    Metadata to store additional information related to the payment method

  - `payload.charge.amount.otherCoinage.otherCoinageMetadata.metadataType` (string)
    Discriminator field for polymorphic deserialization
    Enum: "FlightPassPaymentMetadata"

  - `payload.charge.amount.otherCoinage.otherCoinageMetadata.flightPassMetadata` (object, required)
    Metadata specific to Flight Pass payment method in OtherCoinage.

  - `payload.charge.amount.otherCoinage.otherCoinageMetadata.flightPassMetadata.flightPassNumber` (string)
    Flight pass number
    Example: FP123456789

  - `payload.charge.amount.otherCoinage.otherCoinageMetadata.flightPassMetadata.flightPassAmounts` (object)
    Fare breakdown for the flight pass booking.

  - `payload.charge.amount.otherCoinage.otherCoinageMetadata.flightPassMetadata.flightPassAmounts.taxBreakdown` (array)
    Breakdown of taxes by code (e.g. GST_HST, QST, OTHER).

  - `payload.charge.taxes` (array, required)
    Applicable taxes.

  - `payload.charge.taxes.taxCode` (string, required)
    Tax code
    Example: VAT

  - `payload.charge.taxes.description` (string, required)
    Tax code

  - `payload.charge.taxes.percentage` (number)
    Amount
    Example: 10

  - `payload.charge.allowedFoP` (array)
    List of allowed payment methods for this charge.

  - `payload.charge.feeInfo` (object)
    Details of the fee charged, discriminated by `feeType`.

  - `payload.charge.feeInfo.feeType` (string, required)
    Type of the fee
    Example: BOOKING_FEE

  - `payload.charge.feeInfo.bookingFeeType` (string, required)
    Enum: "TRIP_FEE", "TRANSACTION_FEE"

  - `payload.charge.feeInfo.chargeProcessorInfo` (object)
    Information about the processor that calculated the charge

  - `payload.charge.feeInfo.chargeProcessorInfo.ruleName` (string, required)
    Rule name
    Example: Rule1

  - `payload.charge.feeInfo.chargeProcessorInfo.chargeProcessorType` (string, required)
    Charge processor type
    Enum: "RULE_BASED_INFO", "TMC_CALCULATOR_INFO"

  - `payload.charge.feeInfo.chargeProcessorInfo.calculatorType` (string, required)
    TMC service charge calculator type
    Example: SPOTNANA

  - `payload.charge.feeInfo.transactionFeeType` (string)
    Transaction type for service fee
    Enum: "TRANSACTION_TYPE_BOOKING", "TRANSACTION_TYPE_MODIFICATION", "TRANSACTION_TYPE_CANCELLATION", "TRANSACTION_TYPE_AGENT_CONTACT"

  - `payload.charge.feeInfo.bookingFeeType` (string, required)
    Type of the booking fee
    Enum: "VALUE_ADDED_SERVICE_FEE", "OTHER_FEE"

  - `payload.charge.feeInfo.valueAddedServiceFeeType` (string)
    Value added service fee type
    Enum: "VIRTUAL_CARD_PAYMENT", "PRICE_OPTIMIZATION", "UNUSED_CREDIT_APPLICATION", "MERCHANT_FEE"

  - `payload.charge.feeInfo.feeName` (string)
    Name of the fee to be charged.
    Example: Payment Admin Fee

  - `payload.charge.feeInfo.otherFeeType` (string, required)
    Other fee type
    Enum: "MERCHANT_FEE"

  - `payload.charge.feeInfo.agentFeeType` (string, required)
    Enum: "AGENT_ASSISTED_TRIP_FEE", "AGENT_ASSISTED_TRANSACTION_FEE"

  - `payload.charge.waiveOffInfo` (object)
    Information about TMC fee waivers applied by an agent during checkout.

  - `payload.charge.waiveOffInfo.waiveOffAmount` (object)
    Fare amount including base fare and tax.

  - `payload.charge.waiveOffInfo.waiveOffAmount.taxBreakdown` (array)

  - `payload.charge.waiveOffInfo.waiveOffAmount.taxBreakdown.taxCode` (string)
    Tax code
    Example: VAT

  - `payload.charge.waiveOffInfo.waiveOffAmount.taxBreakdown.percentage` (number)
    Tax amount to total amount
    Example: 9

  - `payload.charge.waiveOffInfo.waiveOffAmount.taxBreakdown.description` (string)
    Tax name or Tax Description
    Example: AIR TRAVELLERS SECURITY CHARGE

  - `payload.charge.waiveOffInfo.waiveOffReason` (object)
    Fee waive off reason info.

  - `payload.charge.waiveOffInfo.waiveOffReason.reasonCode` (string)
    Fee waive off reason code.
    Example: WA05

  - `payload.charge.waiveOffInfo.waiveOffReason.reason` (string)
    Fee waive off reason description.
    Example: Customer goodwill

  - `payload.transactionTime` (object, required)
    ISO8601 UTC Date Time

  - `payload.transactionTime.iso8601` (string, required)
    Example: 2017-07-21T17:32Z

  - `payload.paymentStatus` (string, required)
    Payment status.
    Enum: "SUCCESS", "DELAYED_INVOICE", "MANUAL", "NO_CHARGE", "WAIVED_OFF"

  - `payload.userOrgId` (object)
    User and user's organization information.

  - `payload.userOrgId.organizationAgencyId` (object)
    Agency id for the organization.

  - `payload.userOrgId.organizationAgencyId.id` (string, required)

  - `payload.userOrgId.organizationId` (object, required)
    Organization id for traveler.

  - `payload.userOrgId.organizationId.id` (string, required)

  - `payload.userOrgId.tmcInfo` (object)
    TMC config information.

  - `payload.userOrgId.tmcInfo.id` (object, required)
    Company ID

  - `payload.userOrgId.tmcInfo.id.id` (string, required)
    Example: f49d00fe-1eda-4304-ba79-a980f565281d

  - `payload.userOrgId.tmcInfo.primaryServiceProviderTmc` (object, required)
    Primary service provider TMC info

  - `payload.userOrgId.tmcInfo.secondaryServiceProviderTmcs` (array)
    Secondary service provider TMCs for the TMC.

  - `payload.userOrgId.tmcInfo.secondaryServiceProviderTmcs.supplier` (string, required)
    Supplier type like Sabre, TravelFusion etc.
    Enum: "SABRE", "AMADEUS", "TRAVEL_FUSION", "FARELOGIX_NDC", "ATPCO_NDC", "TRAINLINE", "AVIA", "QBR", "BCD", "QANTAS_HOTELS", "SOUTHWEST", "EXPEDIA", "HOTEL_HUB", "NDC", "MARRIOTT", "CLEARTRIP", "KYTE", "GROUNDSPAN", "SABRE_NDC", "BOOKING_COM", "CARTRAWLER", "PREMIER_INN", "TRAVELODGE", "ENTERPRISE", "HYATT", "HILTON", "NATIONAL", "ALAMO", "HERTZ", "DOLLAR", "THRIFTY", "FIREFLY", "EUROSTAR", "AVIS", "BUDGET", "AMADEUS_NDC", "SIXT"

  - `payload.userOrgId.tmcBasicInfo` (object)
    TMC related basic information.

  - `payload.userOrgId.tmcBasicInfo.contractingTmc` (object, required)
    Basic information about a company.

  - `payload.userOrgId.tmcBasicInfo.contractingTmc.name` (string)

  - `payload.userOrgId.tmcBasicInfo.contractingTmc.logo` (object)
    An image with meta data. Either the `data` or `url` property must be supplied to load the image.

  - `payload.userOrgId.tmcBasicInfo.contractingTmc.logo.data` (string)
    Example: 6935813e12584abda0e43d71cd2ea260

  - `payload.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions` (object)
    Image dimensions ie width and height.

  - `payload.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions.height` (integer)
    Example: 120

  - `payload.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions.width` (integer)
    Example: 240

  - `payload.userOrgId.tmcBasicInfo.contractingTmc.logo.url` (string)
    Example: https://static.wixstatic.com/media/73f2e2_6935813e12584abda0e43d71cd2ea260~mv2.png/v1/fill/w_630,h_94,al_c,q_85,usm_0.66_1.00_0.01/Spotnana%403x.webp

  - `payload.userOrgId.tmcBasicInfo.contractingTmc.logo.metadata` (object)
    Metadata associated with an image.

  - `payload.userOrgId.tmcBasicInfo.contractingTmc.logo.metadata.variant` (string)
    Image variant.
    Enum: "LIGHT", "DARK"

  - `payload.legalEntityId` (object)
    The ID of the legal entity.

  - `payload.legalEntityId.id` (string, required)
    Example: fc1ccbce-8413-4fe9-b233-a324dfbe7421

  - `payload.bookingDetails` (object)
    Booking information

  - `payload.bookingDetails.pnrId` (string)
    PNR Id

  - `payload.bookingDetails.pnrVersion` (integer)
    Version number associated with the PNR

  - `payload.bookingDetails.tripUsageType` (string)
    Trip Usage Type
    Enum: "TRIP_USAGE_TYPE_UNKNOWN", "STANDARD", "EVENT"

  - `payload.bookingDetails.source` (string)
    Enum: "UNKNOWN_SOURCE", "SABRE", "TRAVEL_FUSION", "AVIA", "NDC", "TRAINLINE", "ATPCO_NDC", "FARELOGIX_NDC", "OFFLINE", "CONNEXUS", "ROUTEHAPPY", "AMADEUS", "GIATA", "QBR", "BCD", "QANTAS_HOTELS", "SOUTHWEST", "EXPEDIA", "HOTEL_HUB", "MARRIOTT", "CLEARTRIP", "KYTE", "GROUNDSPAN", "SABRE_NDC", "BOOKING_COM", "CARTRAWLER", "PREMIER_INN", "TRAVELODGE", "ENTERPRISE", "HYATT", "HILTON", "EUROSTAR", "NATIONAL", "ALAMO", "AVIS", "BUDGET", "HERTZ", "DOLLAR", "THRIFTY", "FIREFLY", "AMADEUS_NDC", "SIXT"

  - `payload.bookingDetails.sourcePnrId` (string)
    Source PNR Id from thirdparty source

  - `payload.fop` (object)
    Information about form of payment to be used to charge customer

  - `payload.fop.type` (string)
    Type of payment used
    Enum: "UNKNOWN", "CARD", "CASH", "TFPAY", "CHEQUE", "BREX_POINTS", "QANTAS_POINTS"

  - `payload.fop.card` (object)
    User card info

  - `payload.fop.card.id` (string)
    Unique identifier for this card
    Example: 34d536b6-f8ff-11eb-9a61-0242ac180002

  - `payload.fop.card.type` (string)
    Type of card
    Enum: "UNKNOWN", "CREDIT", "DEBIT"

  - `payload.fop.card.company` (string)
    The issuing company of card
    Enum: "NONE", "VISA", "MASTERCARD", "AMEX", "DISCOVER", "AIR_TRAVEL_UATP", "CARTE_BLANCHE", "DINERS_CLUB", "JCB", "BREX", "UNION_PAY", "EURO_CARD", "ACCESS_CARD", "ELO_CARD"

  - `payload.fop.card.name` (string)
    Name on card
    Example: Harrison Schwartz

  - `payload.fop.card.address` (object)
    Postal Address Details

  - `payload.fop.card.address.addressLines` (array, required)
    Address lines

  - `payload.fop.card.address.administrativeArea` (string)
    Code of administrative area. For example: DL for Delhi, India.
Highest administrative subdivision which is used for postal
addresses of a country or region.
For example, this can be a state, a province, an oblast, or a prefecture.
Specifically, for Spain this is the province and not the autonomous
community (e.g. "Barcelona" and not "Catalonia").
Many countries don't use an administrative area in postal addresses. E.g.
in Switzerland this should be left unpopulated.
    Example: CA

  - `payload.fop.card.address.administrativeAreaName` (string)
    Name of administrative area. This is full name corresponding to administrativeArea. 
Like Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.
    Example: California

  - `payload.fop.card.address.description` (string)
    Address description
    Example: San Francisco Home

  - `payload.fop.card.address.isDefault` (boolean)
    Whether this address is default address in case multiple addresses are specified.
    Example: true

  - `payload.fop.card.address.languageCode` (string)
    BCP-47 language code of the contents of this address (if known). This is often the UI 
language of the input form or is expected to match one of the languages used in the 
address' country/region, or their transliterated equivalents.
This can affect formatting in certain countries, but is not critical to the correctness 
of the data and will never affect any validation or other non-formatting related operations.
Examples: "zh-Hant", "ja", "ja-Latn", "en".
    Example: en

  - `payload.fop.card.address.locality` (string)
    Generally refers to the city/town portion of the address.
    Example: San Francisco

  - `payload.fop.card.address.locationCode` (string)
    IATA 3-letter location code. See https://www.iata.org/en/services/codes.
    Example: LAX

  - `payload.fop.card.address.organization` (string)
    The name of the organization at the address.
    Example: Spotnana

  - `payload.fop.card.address.postalCode` (string)
    Postal code of the address. This is a required field when setting for a user/legal entity/company etc.
    Example: 94130

  - `payload.fop.card.address.continentCode` (string)
    2 letter continent code of the continent this address falls in.
    Example: AF

  - `payload.fop.card.address.recipients` (array)
    The recipient at the address.

  - `payload.fop.card.address.regionCode` (string, required)
    Region code of the country/region of the address.
    Example: US

  - `payload.fop.card.address.regionName` (string)
    Region name of the country/region of the address.
    Example: America

  - `payload.fop.card.address.revision` (integer)
    Example: 1

  - `payload.fop.card.address.sortingCode` (string)
    Additional, country-specific, sorting code. This is not used
in most regions. Where it is used, the value is either a string like
"CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
alone, representing the "sector code" (Jamaica), "delivery area indicator"
(Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
    Example: Jamaica

  - `payload.fop.card.address.sublocality` (string)
    Sublocality of the address. This can be neighborhoods, boroughs, districts.

  - `payload.fop.card.address.timezone` (string)
    Time zone of the address.
    Example: America/Los_Angeles

  - `payload.fop.card.address.coordinates` (object)
    Latitude and Longitude for a Location

  - `payload.fop.card.address.coordinates.latitude` (number, required)
    Latitude of the Location
    Example: 77.1025

  - `payload.fop.card.address.coordinates.longitude` (number, required)
    Longitude of the Location
    Example: 28.7041

  - `payload.fop.card.number` (string, required)
    Card number
    Example: 4111111111111111

  - `payload.fop.card.expiryMonth` (integer)
    Expiry month
    Example: 1

  - `payload.fop.card.expiryYear` (integer)
    Expiry year
    Example: 2010

  - `payload.fop.card.cvv` (string)
    Card cvv number
    Example: 012

  - `payload.fop.card.label` (string)
    Card Label
    Example: Label amex

  - `payload.fop.card.currency` (string)
    Native currency of the card.
    Example: USD

  - `payload.fop.card.externalId` (string)
    Spotnana partner card id.
    Example: bxt_RNGsNfzgJDaTstKIKqK4xEuhGYAnMdYK8T40

  - `payload.fop.card.vaultId` (string)
    ID of the vault used for creating the card.
    Example: 34d536b6-f8ff-11eb-9a61-0242ac180002

  - `payload.fop.card.expiry` (object)
    Contains the expiry of a Card.

  - `payload.fop.card.expiry.tokenizedExpiry` (object)
    Contains the tokenized expiry of a Card.

  - `payload.fop.card.expiry.tokenizedExpiry.expiryMonth` (string, required)
    Tokenized Expiry month
    Example: KvAuPANQWCpjwRQxcC8EXg==

  - `payload.fop.card.expiry.tokenizedExpiry.expiryYear` (string, required)
    Tokenized Expiry year
    Example: fPBm0OWrKwPyIrCVcbg4cA==

  - `payload.fop.card.expiry.expiry` (object)
    Contains the expiry of a Card.

  - `payload.fop.card.expiry.expiry.expiryMonth` (integer, required)
    Expiry month
    Example: 1

  - `payload.fop.card.expiry.expiry.expiryYear` (integer, required)
    Expiry year
    Example: 2010

  - `payload.fop.card.ownershipLabel` (string)
    Ownership label of the card whether it is personal, corporate or central.
    Enum: "CORPORATE", "PERSONAL", "CENTRAL"

  - `payload.fop.additionalInfo` (string)
    Additional info to be added if payment type is 'UNKNOWN'.

  - `payload.fop.accessType` (object)
    Access type for cards to check who in the organization has permission to use it

  - `payload.fop.accessType.accessType` (string, required)
    Identifies the different ways the card can be used across an organization
    Enum: "UNKNOWN_TYPE", "CENTRALISED", "INDIVIDUAL", "PERSONAL", "TMC", "APPLICATION", "ITINERARY", "EVENTS", "TRAVEL_ARRANGER_MANAGED", "COMPANY_TRAVEL_ARRANGER_MANAGED", "EVENT_TEMPLATE"

  - `payload.fop.accessType.entityIds` (array, required)
    Holds the ids for for all users who can access the card or organization id

  - `payload.fop.accessType.entities` (array)
    A list of cardAccessEntity consisting of central card access level if present and entity id.

  - `payload.fop.accessType.entities.entityId` (string, required)
    Holds the id for for the user who can access the card or organization id or legal entity

  - `payload.fop.accessType.entities.centralCardAccessLevel` (string)
    Identifies at which level central card is applicable, for example organization or legal entity.
    Enum: "UNKNOWN", "ORGANIZATION", "LEGAL_ENTITY", "TMC"

  - `payload.fop.paymentMetadata` (object)
    Payment metadata related to form of payment

  - `payload.fop.paymentMetadata.customPaymentMethodMetadata` (object)
    Metadata related to custom payment method

  - `payload.fop.paymentMetadata.customPaymentMethodMetadata.brexBudgetMetadata` (object)
    Metadata for Brex Budget

  - `payload.fop.paymentMetadata.customPaymentMethodMetadata.brexBudgetMetadata.budgetName` (string)
    Name of the budget
    Example: Travel budget

  - `payload.fop.paymentMetadata.customPaymentMethodMetadata.brexBudgetMetadata.paidByPersonalCard` (boolean)
    Whether it was paid by budget card or personal card
    Example: false

  - `payload.fop.paymentMetadata.customPaymentMethodMetadata.noPrepaymentMetadata` (object)
    Metadata for No Prepayment payment source (car bookings on no-guarantee rates).

  - `payload.fop.paymentMetadata.customPaymentMethodMetadata.noPrepaymentMetadata.label` (string, required)
    Label for No Prepayment payment source.
    Example: No Prepayment

  - `payload.fop.paymentMetadata.customPaymentMethodMetadata.virtualPaymentMetadata` (object)
    Metadata for custom virtual payment source.

  - `payload.fop.paymentMetadata.customPaymentMethodMetadata.virtualPaymentMetadata.label` (string, required)
    Label for custom virtual payment source.
    Example: Custom payment card

  - `payload.fop.paymentMetadata.customPaymentMethodMetadata.virtualPaymentMetadata.provider` (string)
    How this virtual payment source is integrated with Spotnana. EXTERNAL marks a virtual card deployed outside Spotnana (label-only, no card operations).
    Enum: "BCD", "EXTERNAL"

  - `payload.fop.paymentMetadata.vendorProgramPaymentMetadata` (object)
    Metadata related to vendor program payment method

  - `payload.fop.paymentMetadata.vendorProgramPaymentMetadata.directBilling` (object, required)
    Metadata for Direct Billing

  - `payload.fop.paymentMetadata.vendorProgramPaymentMetadata.directBilling.vendorId` (string, required)
    Unique vendor id/code
    Example: ZI

  - `payload.fop.paymentMetadata.vendorProgramPaymentMetadata.directBilling.directBillingCode` (string)
    Direct billing code provided by the vendor
    Example: 123456

  - `payload.fop.paymentMetadata.vendorProgramPaymentMetadata.uaPassPlusMetadata` (object, required)
    Details for UAPassPlus Metadata.

  - `payload.fop.paymentMetadata.vendorProgramPaymentMetadata.uaPassPlusMetadata.uatpInfo` (object)
    UATP card information for UAPassPlus

  - `payload.fop.paymentMetadata.virtualCardMetadata` (object)
    Metadata for Virtual Card.

  - `payload.fop.paymentMetadata.virtualCardMetadata.vendorInfo` (object, required)
    Virtual card related information like vendor, cardId, card-pool id of vendor etc.

  - `payload.fop.paymentMetadata.virtualCardMetadata.vendorInfo.vendor` (string)
    Type of Virtual card vendor
    Enum: "CONFERMA"

  - `payload.fop.paymentMetadata.virtualCardMetadata.vendorInfo.vendorCardId` (string, required)
    Virtual card id.
    Example: 68793680

  - `payload.fop.paymentMetadata.virtualCardMetadata.vendorInfo.virtualCardVendorCardPoolId` (string, required)
    Card pool id of virtual card vendor.
    Example: 51907

  - `payload.fop.paymentMetadata.virtualCardMetadata.vendorInfo.confermaInfo` (object)
    Details of conferma - one of virtual card vendors.

  - `payload.fop.paymentMetadata.virtualCardMetadata.vendorInfo.confermaInfo.deploymentId` (integer, required)
    Unique identifier assigned to the virtual card deployment at the point of creation.
    Example: 68793680

  - `payload.fop.paymentMetadata.virtualCardMetadata.cardInfo` (object)
    Virtual card information like maximum deployment amount, valid date range.

  - `payload.fop.paymentMetadata.virtualCardMetadata.cardInfo.dateRange` (object)
    Date range within which the virtual card can be charged.

  - `payload.fop.paymentMetadata.virtualCardMetadata.cardInfo.dateRange.startDate` (object, required)
    Local date and time in ISO 8601 format.

  - `payload.fop.paymentMetadata.virtualCardMetadata.cardInfo.dateRange.startDate.iso8601` (string, required)
    Example: 2017-07-21T17:32

  - `payload.fop.paymentMetadata.virtualCardMetadata.paymentInstructionId` (string)
    Payment instruction id set during addition of virtual card payment source
    Example: 1eb8b778-f0a6-4037-865c-4580982fa36e

  - `payload.fop.paymentMetadata.virtualCardMetadata.shouldReveal` (boolean)
    Identifier for when to reveal virtual cards as they are revealed to travellers only 24hrs before check-in.
    Example: false

  - `payload.fop.paymentMetadata.cardMetadata` (object)
    Metadata for Card payment source.

  - `payload.fop.paymentMetadata.cardMetadata.isLodgeCard` (boolean)
    Whether the payment is made using a lodge card
    Example: false

  - `payload.fop.paymentMetadata.cardMetadata.bta` (string)
    Whether this is a BTA card. Possible values are 'Y' or 'N'. Relevant only for lodge cards.
    Example: Y

  - `payload.fop.paymentSourceType` (string)
    Type of Payment Source
    Enum: "CARD", "VIRTUAL_CARD", "REWARDS_PROGRAM", "DELAYED_INVOICING", "CUSTOM_PAYMENT_METHOD", "VENDOR_PROGRAM_PAYMENT", "UNUSED_CREDIT", "CASH"

  - `payload.paymentTransaction` (object)
    Payment Transaction

  - `payload.paymentTransaction.gatewayIdentifier` (object)

  - `payload.paymentTransaction.gatewayIdentifier.gatewayId` (string)
    Gateway Id for which the payment method should be verified.

  - `payload.paymentTransaction.gatewayIdentifier.gatewayType` (string)
    Gateway Type for of the verification gateway.
    Enum: "PAYMENT_GATEWAY_UNKNOWN", "STRIPE", "BREX", "RAZORPAY"

  - `payload.paymentTransaction.paymentReference` (string)
    payment reference

  - `payload.paymentTransaction.networkTransactionId` (string)
    Network Transaction Id

  - `payload.paymentTransaction.gatewayInfo` (object)
    Payment gateway information

  - `payload.paymentTransaction.gatewayInfo.stripeInfo` (object, required)
    Stripe payment gateway information

  - `payload.paymentTransaction.gatewayInfo.stripeInfo.accountId` (string)
    Stripe account id
    Example: acct_1OAbc3AB5abcdDdA

  - `payload.paymentTransaction.gatewayInfo.stripeInfo.accountDisplayName` (string)
    Stripe account display name as seen on the stripe dashboard
    Example: Abc Travel

  - `payload.paymentTransaction.gatewayInfo.stripeInfo.taxId` (string)
    Tax id for account
    Example: 89-189390

  - `payload.paymentTransaction.failureReason` (object)
    Contains the failure reason in case of any Failed Transaction

  - `payload.paymentTransaction.failureReason.reasonCode` (string)
    Reason Code associated with the Failure
    Enum: "PAYMENT_METHOD_MISSING", "PAYMENT_GATEWAY_FAILURE"

  - `payload.failureDetails` (object)
    Failure details

  - `payload.failureDetails.failureCode` (string)
    failure code
    Enum: "FAILURE_CODE_UNKNOWN", "PAYMENT_METHOD_MISSING", "PAYMENT_GATEWAY_FAILURE"

  - `payload.failureDetails.failureMessage` (string)
    failure message

  - `timestamp` (string)
    Timestamp when the event was published

  - `audience` (object)
    Audience for whom this webhook payload is intended

  - `audience.organizationId` (string)
    Organization ID

  - `audience.contractingTmcId` (string)
    Contracting TMC ID

  - `audience.bookingTmcId` (string)
    Booking TMC ID

  - `payloadMetadata` (object)
    Metadata about the webhook payload processing

  - `payloadMetadata.piiMaskingStatus` (string)
    PII masking status for the payload. APPLIED if PII fields were masked, PARTIAL if masking encountered an error and some fields may be unmasked. Absent when no masking was requested.
    Enum: "APPLIED", "PARTIAL"

## Response 200:

  - `200` (unknown)
    OK

