Expenses

Full field reference for the Expense object returned by expense endpoints.

An Expense is a transaction or a purchased item that Sail classifies for Section 213(d) eligibility. This is the full field reference; see Get Expense or List Expenses to retrieve one.

  • id (string)
  • connection_id (string): the connection this expense was sourced from.
  • external_transaction_id (string, nullable): echo of the customer-supplied id for expenses ingested through an external connection, null for Sail-sourced expenses. Join key back to the customer's own transaction store.
  • name (string)
  • description (string)
  • date (string)
  • amount (number): USD.
  • source_type (enum): how this expense entered Sail. It pairs with the source_type list filter. Possible values: card, store, receipt_upload, external.
  • origin (object): what the expense was derived from.
    • type (enum): transaction, derived from a bank or credit card transaction (one expense per transaction, split via parent_expense_id after itemization). product, derived from an individual product line (store order data or an itemized receipt). Possible values: transaction, product.
    • detail (string, nullable): the raw descriptor (transactions) or product title (products) the expense was derived from.
  • merchant (object): the store this expense was incurred at, as resolved by enrichment. supported_merchant_id references the merchants directory only when the store is one Sail can connect to for store data. It's null for the long tail of stores that are recognized but not scrape-supported.
    • name (string). Example: Costco.
    • logo_url (string, nullable)
    • supported_merchant_id (string, nullable). Example: mer_costco.
  • enrichment (object): general transaction enrichment, independent of Section 213(d) classification.
    • category (string, nullable): general spend category. Example: Pharmacies.
    • subcategory (string, nullable). Example: Drug Stores.
    • mcc (string, nullable): merchant category code, when derived from a card transaction or supplied at ingest.
  • parent_expense_id (string, nullable): links an item-level expense back to the transaction-level expense it enriched, whether that item-level data came from a store connection or from an itemized receipt. Null for top-level expenses.
  • payment_method (array of objects, nullable): the charges applied to the order for a product-origin expense, one entry per charge. Null for transaction-origin expenses or when payment details aren't available.
    • card_name (string): a label for the card or other payment method used. Example: MasterCard •••• 9585.
    • date (timestamp): when the charge was made.
    • amount (number): the amount charged to this payment method, in USD. Example: 613.74.
  • section_213d_classification (object): Section 213(d) eligibility classification. The review states pair with origin.type. lmn_required applies to product-origin expenses (a dual-purpose item that becomes eligible with a Letter of Medical Necessity (LMN)), and itemization_required applies to transaction-origin expenses (a mixed basket that needs an itemized receipt before line items can be classified).
    • status (enum). Possible values: eligible, lmn_required, itemization_required, ineligible.
    • category (string, nullable): Section 213(d) category. Example: Health Monitoring Devices.
    • reasoning (string, nullable)
  • created_at (timestamp)
  • updated_at (timestamp)