# Record a payment against an extra attached to a room stay Registers a payment for a chargeable extra linked to a specific room stay within the Property Management System (PMS). This endpoint requires the as a path variable to identify the extra and a payment request body containing the payment details. It verifies the existence of the room stay extra and checks for any associated sales invoices. If an outstanding balance remains, the payment is processed and recorded. The response includes financial details related to the transaction, such as the payment reference and updated invoice status. If the extra does not exist, the invoice is already paid, or there are no invoices to process, a error will be returned. Endpoint: POST /api/v3/extras/{roomStayExtraId}/payment Version: 3.0.4 Security: OAuth2 ## Path parameters: - `roomStayExtraId` (integer, required) ## Request fields (application/json): - `paymentReference` (string, required) The payment reference for the chargeable extra ## Response 200 fields (application/json): - `id` (integer) Unique identifier of the financial record - `financialType` (string) Type of the financial record Enum: "SALES_INVOICE", "SALES_CREDIT", "SALES_RECEIPT", "SALES_REFUND", "SALES_ACCOUNT", "PURCHASE_INVOICE", "PURCHASE_CREDIT", "PURCHASE_RECEIPT", "PURCHASE_REFUND", "PURCHASE_ACCOUNT", "T_SALES_INVOICE", "T_SALES_CREDIT", "T_SALES_RECEIPT", "T_SALES_REFUND", "T_PURCHASE_INVOICE", "T_PURCHASE_CREDIT", "T_PURCHASE_RECEIPT", "T_PURCHASE_REFUND", "ACCOUNT_DEBIT", "T_ACCOUNT_CREDIT", "BANK_TRANSFER_CREDIT", "BANK_TRANSFER_DEBIT" - `creditCardType` (string) Type of the credit card Enum: "VISA_CREDIT", "VISA_DEBIT", "MASTERCARD", "MASTERCARD_DEBIT", "DELTA", "MAESTRO", "VISA_ELECTRON", "AMERICAN_EXPRESS", "DINERS_CLUB", "JCB", "PAYPAL", "VISA" - `dateCreated` (string) Date when the financial record was created - `description` (string) Description of the financial record - `net` (number) Net amount of the financial record - `baseNet` (number) Base net amount of the financial record - `reportingNet` (number) Reporting net amount of the financial record - `vat` (number) VAT amount of the financial record - `baseVat` (number) Base VAT amount of the financial record - `reportingVat` (number) Reporting VAT amount of the financial record - `gross` (number) Gross amount of the financial record - `baseGross` (number) Base gross amount of the financial record - `reportingGross` (number) Reporting gross amount of the financial record - `amountPaid` (number) Amount paid for the financial record - `paymentType` (string) Payment type of the financial record Enum: "BANK_PAYMENT", "CARD_PAYMENT", "CREDIT_CARD_TERMINAL", "CASH_PAYMENT", "OFFLINE_PAYMENT", "ADJUSTMENT" - `paymentReference` (string) Payment reference of the financial record - `nominalCode` (object) Nominal code details - `nominalCode.id` (integer) The unique identifier of the nominal code - `nominalCode.code` (string) The code of the nominal code - `nominalCode.description` (string) The description of the nominal code - `nominalCode.type` (string) The type of the nominal code Enum: "BANK", "CARD", "OWNER_LIABILITY", "PURCHASE", "SALES" - `nominalCode.currency` (object) The currency of the organisation - `nominalCode.currency.id` (integer) Unique identifier of the currency - `nominalCode.currency.name` (string) Name of the currency - `nominalCode.currency.description` (string) Description of the currency - `nominalCode.currency.symbol` (string) Symbol of the currency - `nominalCode.currency.exchangeRate` (number) Exchange rate of the currency - `nominalCode.currency.baseRate` (number) Base rate of the currency - `nominalCode.currency.unit` (string) Unit of the currency - `nominalCode.currency.autoUpdate` (boolean) Indicates if the currency is auto-updated - `nominalCode.currency.primaryCurrency` (boolean) Indicates if this is the primary currency - `nominalCode.currency.htmlSafeSymbol` (string) HTML safe symbol of the currency - `nominalCode.accountType` (string) The account type of the nominal code - `taxRate` (number) Tax rate of the financial record - `taxCode` (object) Tax code details - `taxCode.id` (integer) The unique identifier of the tax code Example: 1 - `taxCode.type` (string, required) Type of the tax code Enum: "SALES", "PURCHASE" - `taxCode.code` (string, required) Code of the tax code - `taxCode.name` (string, required) Name of the tax code - `taxCode.rate` (number, required) Rate of the tax code - `taxCode.xeroTaxType` (string) Xero tax type of the tax code - `taxCode.exportName` (string) Export name of the tax code - `financeAccount` (object) Finance account details - `financeAccount.id` (integer) Unique identifier of the finance account - `financeAccount.accountCode` (string) Account code of the finance account - `financeAccount.contact` (object) The primary correspondence contact of the company - `financeAccount.contact.id` (integer) Unique identifier of the contact - `financeAccount.contact.firstName` (string) First name of the contact - `financeAccount.contact.lastName` (string) Last name of the contact - `financeAccount.company` (object) Company summary associated with the finance account - `financeAccount.company.id` (integer) Unique identifier of the company - `financeAccount.company.companyName` (string) Name of the company - `financeAccount.externalId` (string) External identifier of the finance account - `financeAccount.exportedDate` (string) Date when the finance account was exported - `financeAccount.exportStatus` (string) Export status of the finance account Enum: "SKIPPED", "CREATED", "PENDING", "SENT", "EXPORTED", "FAILED", "IMPORTED" - `salesInvoiceItem` (object) Sales invoice item associated with the financial record - `salesInvoiceItem.id` (integer) ID of the sales invoice item - `salesInvoiceItem.uuid` (string) UUID of the sales invoice item - `salesInvoiceItem.salesInvoice` (object) Summary of the sales invoice - `salesInvoiceItem.salesInvoice.id` (integer) The unique identifier of the sales invoice Example: 1 - `salesInvoiceItem.salesInvoice.salesInvoiceNumber` (integer) Ordering for the sales ledger Example: 1001 - `salesInvoiceItem.salesInvoice.type` (string, required) Type of the sales invoice Enum: "SALES_INVOICE", "SALES_CREDIT" - `salesInvoiceItem.salesInvoice.invoiceDate` (string, required) Date of the invoice Example: "2023-10-01" - `salesInvoiceItem.salesInvoice.dueDate` (string, required) Due date of the invoice Example: "2023-10-15" - `salesInvoiceItem.description` (string) Description of the sales invoice item - `salesInvoiceItem.comment1` (string) First comment - `salesInvoiceItem.comment2` (string) Second comment - `salesInvoiceItem.currency` (object) Base currency details of the invoice - `salesInvoiceItem.baseCurrency` (object) Base currency details of the invoice - `salesInvoiceItem.type` (string) Type of the invoice Enum: "SALES_INVOICE", "SALES_CREDIT" - `salesInvoiceItem.unitPrice` (number) Unit price - `salesInvoiceItem.baseUnitPrice` (number) Base unit price - `salesInvoiceItem.reportingUnitPrice` (number) Reporting unit price - `salesInvoiceItem.quantity` (number) Quantity - `salesInvoiceItem.gross` (number) Gross amount - `salesInvoiceItem.baseGross` (number) Base gross amount - `salesInvoiceItem.reportingGross` (number) Reporting gross amount - `salesInvoiceItem.net` (number) Net amount - `salesInvoiceItem.baseNet` (number) Base net amount - `salesInvoiceItem.reportingNet` (number) Reporting net amount - `salesInvoiceItem.tax` (number) Tax amount - `salesInvoiceItem.baseTax` (number) Base tax amount - `salesInvoiceItem.reportingTax` (number) Reporting tax amount - `salesInvoiceItem.taxRate` (number) Tax rate - `salesInvoiceItem.chargeFrom` (string) Charge start date - `salesInvoiceItem.chargeTo` (string) Charge end date - `salesInvoiceItem.dueDate` (string) Due date - `salesInvoiceItem.invoiceDate` (string) Invoice date - `salesInvoiceItem.product` (object) Product details - `salesInvoiceItem.product.id` (integer) Unique identifier of the product Example: 1 - `salesInvoiceItem.product.productCode` (string) Code of the product Example: "PROD-001" - `salesInvoiceItem.product.name` (string) Name of the product Example: "Product 1" - `salesInvoiceItem.ourReference` (string) Our reference - `salesInvoiceItem.status` (string) Status of the invoice item Enum: "DRAFT", "VOID", "POSTED" - `salesInvoiceItem.roomStay` (object) Room stay related to the Activity - `salesInvoiceItem.roomStay.id` (integer) Unique identifier of the room stay - `salesInvoiceItem.roomStay.startDate` (string) Start date of the room stay - `salesInvoiceItem.roomStay.endDate` (string) End date of the room stay - `salesInvoiceItem.roomStay.roomStayStatus` (string) Status of the room stay Enum: "ENQUIRY", "QUOTED", "PENDING", "MEDIATION_REQUIRED", "CONFIRMED", "CHECKED_IN", "CHECKED_OUT", "COMPLETE", "CANCELLED", "LOST" - `salesInvoiceItem.roomStay.netAmount` (number) Net amount for the room stay - `salesInvoiceItem.roomStay.vatAmount` (number) VAT amount for the room stay - `salesInvoiceItem.roomStay.numberOfAdults` (integer) Number of adults in the room stay - `salesInvoiceItem.roomStay.numberOfChildren` (integer) Number of children in the room stay - `salesInvoiceItem.roomStay.numberOfInfants` (integer) Number of infants in the room stay - `salesInvoiceItem.unit` (object) Summary of the Unit associated with the Unit Access Group - `salesInvoiceItem.unit.id` (integer) Unique identifier of the unit Example: 1 - `salesInvoiceItem.unit.name` (string) Name of the unit Example: "Apartment 101" - `salesInvoiceItem.unitPriceIncludesTax` (boolean) Indicates if unit price includes tax - `salesInvoiceItem.amountPaid` (number) Amount paid - `unallocated` (number) Unallocated amount of the financial record - `cardLastFour` (string) Last four digits of the credit card - `xeroIdentifier` (object) External identifier for Xero integration - `xeroIdentifier.id` (integer, required) Identifier - `xeroIdentifier.organisationSettings` (object) Organisation settings - `xeroIdentifier.organisationSettings.id` (integer) The unique identifier of the organisation settings Example: 1 - `xeroIdentifier.organisationSettings.name` (string) The name of the organisation Example: "Resharmonics" - `xeroIdentifier.organisationSettings.country` (object) Data Transfer Object representing a Country entity in the Property Management System (PMS). - `xeroIdentifier.organisationSettings.country.id` (integer) Unique identifier of the country - `xeroIdentifier.organisationSettings.country.name` (string, required) Name of the country - `xeroIdentifier.organisationSettings.country.sortOrder` (integer, required) Sort order of the country - `xeroIdentifier.organisationSettings.country.countryCodeAlpha2` (string, required) Alpha-2 country code - `xeroIdentifier.organisationSettings.country.countryCodeAlpha3` (string, required) Alpha-3 country code - `xeroIdentifier.organisationSettings.country.countryCodeNumeric` (string, required) Numeric country code - `xeroIdentifier.externalId` (string, required) External identifier - `xeroIdentifier.exportedDate` (string) Exported date - `xeroIdentifier.exportStatus` (string) Export status Enum: "CREATED", "EXPORTED", "FAILED", "IMPORTED", "PENDING", "SENT", "SKIPPED" - `exportedDate` (string) Date when the financial record was exported - `externalId` (string) External identifier of the financial record - `exportStatus` (string) Export status of the financial record Enum: "SKIPPED", "CREATED", "PENDING", "SENT", "EXPORTED", "FAILED", "IMPORTED" - `organisationSettingsId` (integer) Organisation settings ID associated with the financial record - `exchangeRate` (number) Exchange rate of the financial record - `baseExchangeRate` (number) Base exchange rate of the financial record - `baseCurrency` (object) The currency of the organisation - `costCentre` (object) Data Transfer Object representing a cost centre - `costCentre.id` (integer) Unique identifier of the cost centre - `costCentre.code` (string) Code of the cost centre - `costCentre.name` (string) Name of the cost centre - `costCentre.exportName` (string) Export name of the cost centre