---
updatedAt: 2026-05-26T22:53:01.000Z
agentTools:
  projectIndex: https://developer.vinoshipper.com/llms.txt
---

# Get a Receipt

Retrieve the details for a completed order in a format suitable for creating a receipt.  This will only return details for successfully submitted orders.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Vinoshipper API Docs",
    "version": "3.0",
    "x-logo": {
      "url": "/static/img/brand/vinoshipper-logo.svg"
    }
  },
  "servers": [
    {
      "url": "https://vinoshipper.com"
    }
  ],
  "tags": [
    {
      "name": "Order",
      "description": "Post-purchase order operations"
    },
    {
      "name": "Order",
      "description": "Pre-purchase order operations"
    }
  ],
  "paths": {
    "/api/v3/p/orders/{orderNumber}/receipt": {
      "get": {
        "tags": [
          "Order"
        ],
        "summary": "Get a Receipt",
        "description": "Retrieve the details for a completed order in a format suitable for creating a receipt.  This will only return details for successfully submitted orders.",
        "operationId": "getReceipt",
        "parameters": [
          {
            "name": "orderNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Receipt"
                }
              }
            }
          },
          "400": {
            "description": "Request has failed validation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed",
            "content": {}
          },
          "403": {
            "description": "Insufficient permission",
            "content": {}
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "BasicAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Error": {
        "required": [
          "code",
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "field": {
            "type": "string"
          },
          "shortDescription": {
            "type": "string"
          }
        }
      },
      "ErrorDetails": {
        "required": [
          "status",
          "type"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "enum": [
              "VALIDATION",
              "COMPLIANCE",
              "PAYMENT_FAILURE",
              "SERVER_ERROR",
              "ACCESS_DENIED",
              "CONFLICT"
            ]
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "ErrorResponse": {
        "required": [
          "error"
        ],
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ErrorDetails"
          }
        }
      },
      "AccessPoint": {
        "required": [
          "businessName",
          "city",
          "country",
          "lat",
          "lng",
          "locationId",
          "postalCode",
          "stateCode",
          "street1"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "locationId": {
            "type": "string",
            "description": "UPS Location ID"
          },
          "lat": {
            "type": "number",
            "readOnly": true
          },
          "lng": {
            "type": "number",
            "readOnly": true
          },
          "imageUrl": {
            "type": "string",
            "description": "A full URL to an image associated with the Access Point",
            "nullable": true,
            "readOnly": true
          },
          "hours": {
            "type": "string",
            "description": "Text describing open hours",
            "nullable": true,
            "readOnly": true
          },
          "note": {
            "type": "string",
            "description": "Optional note from access point",
            "nullable": true,
            "readOnly": true
          },
          "businessName": {
            "type": "string",
            "readOnly": true
          },
          "street1": {
            "type": "string",
            "readOnly": true
          },
          "street2": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "city": {
            "type": "string",
            "readOnly": true
          },
          "postalCode": {
            "type": "string",
            "readOnly": true
          },
          "stateCode": {
            "type": "string",
            "readOnly": true
          },
          "country": {
            "type": "string",
            "description": "Two letter country code",
            "readOnly": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "description": "UPS access point",
        "nullable": true
      },
      "Address": {
        "required": [
          "city",
          "country",
          "fullName",
          "poBox",
          "postalCode",
          "stateCode",
          "street1",
          "suspectedPOBox",
          "verifiedNotPOBox"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "salutation": {
            "type": "string",
            "description": "Formal greeting or title of the customer"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "businessName": {
            "type": "string",
            "nullable": true
          },
          "fullName": {
            "type": "string",
            "description": "Use firstName and lastName instead.",
            "nullable": true,
            "deprecated": true
          },
          "street1": {
            "type": "string"
          },
          "street2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string"
          },
          "postalCode": {
            "type": "string",
            "description": "ZIP Code"
          },
          "stateCode": {
            "type": "string"
          },
          "country": {
            "type": "string",
            "description": "Two letter country code",
            "default": "US"
          },
          "phoneNumber": {
            "type": "string",
            "description": "Use phone instead.",
            "nullable": true,
            "deprecated": true
          },
          "phone": {
            "$ref": "#/components/schemas/InternationalPhoneNumber"
          },
          "accessPoint": {
            "$ref": "#/components/schemas/AccessPoint"
          },
          "description": {
            "type": "string",
            "description": "A description for the address, e.g. Home, Work",
            "nullable": true
          },
          "suspectedPOBox": {
            "type": "boolean",
            "description": "True if the address is suspected of being a PO Box",
            "readOnly": true
          },
          "poBox": {
            "type": "boolean",
            "description": "True if this address is confirmed as a PO Box",
            "readOnly": true
          },
          "verifiedNotPOBox": {
            "type": "boolean",
            "description": "True if someone has confirmed this address is not a PO Box. Club processing skips its PO Box check for such an address even when the text still reads like one.",
            "readOnly": true
          },
          "linkedAddress": {
            "$ref": "#/components/schemas/LinkedAddress"
          }
        },
        "description": "The address of the location where the sale is made",
        "nullable": true
      },
      "BillingInfo": {
        "type": "object",
        "properties": {
          "last4Digit": {
            "type": "string",
            "description": "The last 4 digit of the credit card number",
            "nullable": true
          },
          "cardType": {
            "type": "string",
            "description": "The type of credit card e.g. VISA, MASTER",
            "nullable": true
          },
          "expMonth": {
            "type": "string",
            "description": "The expiry month",
            "nullable": true
          },
          "expYear": {
            "type": "string",
            "description": "The expiry year",
            "nullable": true
          }
        },
        "description": "The summary of the credit card used for payment"
      },
      "InternationalPhoneNumber": {
        "type": "object",
        "properties": {
          "number": {
            "type": "string"
          },
          "country": {
            "type": "integer",
            "format": "int32"
          },
          "extension": {
            "type": "string"
          }
        },
        "nullable": true
      },
      "LinkedAddress": {
        "required": [
          "city",
          "country",
          "fullName",
          "postalCode",
          "stateCode",
          "street1"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "readOnly": true
          },
          "salutation": {
            "type": "string",
            "description": "Formal greeting or title of the customer"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "businessName": {
            "type": "string",
            "nullable": true
          },
          "fullName": {
            "type": "string",
            "description": "Use firstName and lastName instead.",
            "nullable": true,
            "deprecated": true
          },
          "street1": {
            "type": "string"
          },
          "street2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string"
          },
          "postalCode": {
            "type": "string",
            "description": "ZIP Code"
          },
          "stateCode": {
            "type": "string"
          },
          "country": {
            "type": "string",
            "description": "Two letter country code",
            "default": "US"
          },
          "phoneNumber": {
            "type": "string",
            "description": "Use phone instead.",
            "nullable": true,
            "deprecated": true
          },
          "phone": {
            "$ref": "#/components/schemas/InternationalPhoneNumber"
          },
          "description": {
            "type": "string",
            "description": "A description for the address, e.g. Home, Work",
            "nullable": true
          },
          "accessPoint": {
            "$ref": "#/components/schemas/AccessPoint"
          }
        }
      },
      "OrderDestination": {
        "type": "object",
        "properties": {
          "destinationType": {
            "type": "string",
            "description": "The type of the destination",
            "nullable": true,
            "enum": [
              "CUSTOMER",
              "UPS_ACCESS_POINT"
            ]
          },
          "addresseeFullName": {
            "type": "string",
            "description": "The full name of the addressee",
            "nullable": true
          },
          "addresseeBusinessName": {
            "type": "string",
            "description": "The business name of the addressee",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "description": "The phone number of the addressee",
            "nullable": true
          },
          "streetAddress": {
            "type": "string",
            "description": "The street address of the destination",
            "nullable": true
          },
          "cityStateZip": {
            "type": "string",
            "description": "The city, state and zip of the destination",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "The address of the destination",
            "nullable": true
          }
        },
        "description": "The destination of the order. Deprecated, use destinationAddress instead",
        "deprecated": true
      },
      "OrderInvoiceView": {
        "required": [
          "paid"
        ],
        "type": "object",
        "properties": {
          "terms": {
            "type": "string",
            "description": "Payment terms code (DUE_ON_RECEIPT, NET_15, NET_30)"
          },
          "termsLabel": {
            "type": "string",
            "description": "Human-readable payment terms label"
          },
          "dueDate": {
            "type": "string",
            "description": "Payment due date, null for DUE_ON_RECEIPT or no terms",
            "format": "date"
          },
          "paidAt": {
            "type": "string",
            "description": "When the invoice was marked as paid, null if unpaid",
            "format": "date"
          },
          "paid": {
            "type": "boolean",
            "description": "Whether the invoice has been paid"
          },
          "paymentMethod": {
            "type": "string",
            "description": "How the invoice was paid (SalePaymentMethod enum name, e.g. CHECK), null until marked paid"
          },
          "paymentMethodDisplayName": {
            "type": "string",
            "description": "Display label for paymentMethod (e.g. Check)"
          }
        },
        "description": "Invoice details for a wholesale order",
        "nullable": true
      },
      "SaleLocation": {
        "required": [
          "cityStateZip",
          "locationName",
          "streetAddress"
        ],
        "type": "object",
        "properties": {
          "locationName": {
            "type": "string",
            "description": "The name of the sale location"
          },
          "businessName": {
            "type": "string",
            "description": "The business name of the location address",
            "nullable": true
          },
          "streetAddress": {
            "type": "string",
            "description": "The street address of the location"
          },
          "cityStateZip": {
            "type": "string",
            "description": "The city, state and zip of the location"
          }
        },
        "description": "The location where the sale is made. Deprecated, use saleAddress instead",
        "nullable": true,
        "deprecated": true
      },
      "SpecialInstructions": {
        "type": "object",
        "properties": {
          "producerNote": {
            "maxLength": 1024,
            "type": "string",
            "description": "A note for the producer's internal use, not displayed to customers.",
            "nullable": true
          },
          "giftNote": {
            "type": "string",
            "description": "A customer provided gift note, appears on receipt and packing slip.",
            "nullable": true
          },
          "shipDate": {
            "pattern": "YYYY-MM-dd",
            "type": "string",
            "description": "The date the shipment should be held until.",
            "format": "date",
            "nullable": true
          }
        }
      },
      "ExtraFeeDetail": {
        "required": [
          "amount",
          "label"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "description": {
            "type": "string"
          }
        },
        "description": "Extra fee details that add up to the extra fee total. "
      },
      "IdAndName": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          }
        },
        "description": "The store associated with the order"
      },
      "CreditCardSummary": {
        "required": [
          "expired",
          "expiresMonth",
          "expiresYear",
          "isDefaultCard",
          "lastFourDigits",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "enum": [
              "VISA",
              "MASTERCARD",
              "AMEX",
              "EN_ROUTE",
              "DINERS_CLUB",
              "DISCOVER",
              "JCB",
              "CARTE_BLANCHE"
            ]
          },
          "cardHolderName": {
            "type": "string"
          },
          "lastFourDigits": {
            "type": "string"
          },
          "expiresMonth": {
            "type": "string"
          },
          "expiresYear": {
            "type": "string"
          },
          "expired": {
            "type": "boolean"
          },
          "billingPostalCode": {
            "type": "string"
          },
          "isDefaultCard": {
            "type": "boolean"
          }
        }
      },
      "DeliveryInfo": {
        "required": [
          "deliveryType"
        ],
        "type": "object",
        "properties": {
          "deliveryType": {
            "type": "string",
            "description": "The type of delivery",
            "enum": [
              "SHIPPING",
              "DIGITAL",
              "LOCAL_DELIVERY",
              "PICKUP",
              "MAIL"
            ]
          },
          "rateDescription": {
            "type": "string",
            "description": "The description of the shipping rate e.g. UPS Ground, UPS Next Day Air, etc",
            "nullable": true
          },
          "trackingNumbers": {
            "type": "array",
            "description": "The tracking number of the shipping",
            "items": {
              "type": "string",
              "description": "The tracking number of the shipping"
            }
          },
          "dateCustomerReceived": {
            "type": "string",
            "description": "The date order was delivered",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "DiscountApplied": {
        "required": [
          "couponCode",
          "description",
          "dollarAmount",
          "incentive"
        ],
        "type": "object",
        "properties": {
          "couponCode": {
            "type": "string",
            "description": "The coupon code"
          },
          "description": {
            "type": "string",
            "description": "The name or description of the coupon code"
          },
          "incentive": {
            "type": "string",
            "description": "A single sentence that explains the incentive of the coupon"
          },
          "dollarAmount": {
            "type": "number",
            "description": "The amount being discounted by this discount. It is a negative number. e.g -2.00"
          }
        }
      },
      "PurchasedProduct": {
        "required": [
          "excludedFromDiscounts",
          "id",
          "name",
          "quantity",
          "sku",
          "total",
          "upc"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "upc": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "total": {
            "type": "number"
          },
          "excludedFromDiscounts": {
            "type": "boolean"
          },
          "cogs": {
            "type": "number",
            "description": "Cost of goods sold per unit, snapshotted at order time with fallback to historical average",
            "nullable": true
          },
          "grossCogs": {
            "type": "number",
            "description": "Gross COGS (cogs × quantity)",
            "nullable": true
          }
        },
        "description": "Flat list of every shipped product line (multi-packs are exploded into their contents). For a grouped, ready-to-render view of what the buyer chose, use groupedItems instead."
      },
      "Purchaser": {
        "required": [
          "email",
          "firstName",
          "lastName",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          },
          "salutation": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "dob": {
            "type": "string"
          }
        }
      },
      "Receipt": {
        "required": [
          "buyer",
          "canEdit",
          "cartTypeLabel",
          "charged",
          "creditCard",
          "deliveryInfo",
          "destination",
          "destinationAddress",
          "externalPayment",
          "extraFee",
          "importedHistoricalOrder",
          "isPaidForExternally",
          "isPickup",
          "isWholesale",
          "orderNumber",
          "packaging",
          "receiptUrl",
          "shipmentStatus",
          "shipper",
          "shipping",
          "shippingAddOnDescription",
          "specialInstructions",
          "status",
          "storedCredit",
          "subtotal",
          "tax",
          "taxesAdjusted",
          "tip",
          "total"
        ],
        "type": "object",
        "properties": {
          "orderNumber": {
            "type": "string"
          },
          "orderDate": {
            "type": "string",
            "description": "Date and time that the order was paid, or null if the order was not paid",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "shipmentStatus": {
            "type": "string"
          },
          "cancelReason": {
            "type": "string"
          },
          "canEdit": {
            "type": "boolean",
            "description": "True if the order can be modified. Deprecated: use allowedActions instead.",
            "deprecated": true
          },
          "buyer": {
            "$ref": "#/components/schemas/Purchaser"
          },
          "destination": {
            "$ref": "#/components/schemas/OrderDestination"
          },
          "destinationAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "deliveryInfo": {
            "$ref": "#/components/schemas/DeliveryInfo"
          },
          "products": {
            "type": "array",
            "description": "Flat list of every shipped product line (multi-packs are exploded into their contents). For a grouped, ready-to-render view of what the buyer chose, use groupedItems instead.",
            "items": {
              "$ref": "#/components/schemas/PurchasedProduct"
            }
          },
          "groupedItems": {
            "type": "array",
            "description": "Grouped view of the order, one entry per item the buyer chose (a plain product, a product group, or a multi-pack). Product group entries lead with the group name and selected attributes (displayName); the resolved product is in `product` and multi-pack contents (or the product group slots inside a multi-pack) are nested in `contents`.",
            "items": {
              "$ref": "#/components/schemas/ReceiptItemGroup"
            }
          },
          "clubSubscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Subscription"
            }
          },
          "subtotal": {
            "type": "number"
          },
          "shipping": {
            "type": "number"
          },
          "shippingAddOnDescription": {
            "type": "string"
          },
          "packaging": {
            "type": "number"
          },
          "extraFee": {
            "type": "number",
            "description": "Extra fee total"
          },
          "extraFeeDetails": {
            "type": "array",
            "description": "Extra fee details that add up to the extra fee total",
            "items": {
              "$ref": "#/components/schemas/ExtraFeeDetail"
            }
          },
          "tip": {
            "$ref": "#/components/schemas/Tip"
          },
          "tax": {
            "type": "number"
          },
          "taxesAdjusted": {
            "type": "number",
            "description": "The amount of tax the seller absorbed, as a negative value. tax is the full tax; tax + taxesAdjusted equals the tax charged to the customer. Zero when the seller absorbs no tax."
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountApplied"
            }
          },
          "storedCredit": {
            "type": "number"
          },
          "externalPayment": {
            "type": "number"
          },
          "total": {
            "type": "number"
          },
          "charged": {
            "type": "number"
          },
          "shippingClass": {
            "type": "string"
          },
          "isPickup": {
            "type": "boolean"
          },
          "creditCard": {
            "$ref": "#/components/schemas/BillingInfo"
          },
          "creditCardSummary": {
            "$ref": "#/components/schemas/CreditCardSummary"
          },
          "specialInstructions": {
            "$ref": "#/components/schemas/SpecialInstructions"
          },
          "receiptUrl": {
            "$ref": "#/components/schemas/ReceiptUrl"
          },
          "saleLocation": {
            "$ref": "#/components/schemas/SaleLocation"
          },
          "saleAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "device": {
            "$ref": "#/components/schemas/ReceiptDevice"
          },
          "teamMember": {
            "$ref": "#/components/schemas/ReceiptTeamMember"
          },
          "paymentMethod": {
            "type": "string",
            "enum": [
              "PAYPAL",
              "CREDIT_CARD",
              "STORED_CREDIT",
              "CASH",
              "INVOICE",
              "OTHER"
            ]
          },
          "combinedOrderNumber": {
            "type": "string",
            "description": "The order number that this order was combined into, or null if this order was not combined",
            "nullable": true
          },
          "customerId": {
            "type": "integer",
            "description": "The customer ID of this order, null for multi-producer orders",
            "format": "int32"
          },
          "cartTypeLabel": {
            "type": "string",
            "description": "The cart type of the order"
          },
          "isWholesale": {
            "type": "boolean",
            "description": "Whether this order is a wholesale order"
          },
          "invoice": {
            "$ref": "#/components/schemas/OrderInvoiceView"
          },
          "purchaseOrder": {
            "type": "string",
            "description": "The wholesale purchase order"
          },
          "store": {
            "$ref": "#/components/schemas/IdAndName"
          },
          "shipper": {
            "$ref": "#/components/schemas/IdAndName"
          },
          "importedHistoricalOrder": {
            "type": "boolean",
            "description": "Whether this order was imported as a historical order"
          },
          "allowedActions": {
            "type": "array",
            "description": "The set of actions that are currently allowed on this order",
            "items": {
              "type": "string",
              "description": "An action that can be performed on an order",
              "enum": [
                "CHANGE_SHIPPING",
                "HOLD_UNTIL",
                "GIFT_NOTE",
                "CANCEL_ORDER",
                "PRODUCER_NOTE",
                "ORDER_ALERT",
                "MARK_INVOICE_PAID",
                "MARK_INVOICE_UNPAID",
                "EDIT_INVOICE_FIELDS",
                "EDIT_PURCHASE_ORDER",
                "EDIT_INVOICE_PAID",
                "UNDO_MARK_DELIVERED"
              ]
            }
          },
          "isPaidForExternally": {
            "type": "boolean"
          }
        }
      },
      "ReceiptAttribute": {
        "required": [
          "name",
          "value"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "description": "The selected attribute name/value pairs, in the group's configured attribute order"
      },
      "ReceiptDevice": {
        "required": [
          "friendlyName",
          "identifier",
          "model"
        ],
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "The unique identifier of the device"
          },
          "friendlyName": {
            "type": "string",
            "description": "The friendly name of the device"
          },
          "model": {
            "type": "string",
            "description": "The model of the device"
          },
          "location": {
            "$ref": "#/components/schemas/ReceiptDeviceLocation"
          }
        },
        "description": "The device used to process the sale",
        "nullable": true
      },
      "ReceiptDeviceLocation": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name or description of the device location"
          }
        },
        "description": "The location where the device is registered",
        "nullable": true
      },
      "ReceiptGroupSelection": {
        "required": [
          "groupName",
          "groupProductId"
        ],
        "type": "object",
        "properties": {
          "groupProductId": {
            "type": "integer",
            "description": "The product group product ID",
            "format": "int32"
          },
          "groupName": {
            "type": "string",
            "description": "The product group display name, e.g. \"Wine Case\""
          },
          "attributes": {
            "type": "array",
            "description": "The selected attribute name/value pairs, in the group's configured attribute order",
            "items": {
              "$ref": "#/components/schemas/ReceiptAttribute"
            }
          }
        },
        "description": "A product group selection captured at order time: the group and the attributes the buyer chose.",
        "nullable": true
      },
      "ReceiptItemGroup": {
        "required": [
          "displayName",
          "explodeForFulfillment",
          "isMultiPack",
          "product",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "The buyer-facing label for this line. For a product group it is the group name plus the selected attributes, e.g. \"Wine Case (Label: Dark Horse)\"; for a plain product or multi-pack it is the product name."
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "unitPrice": {
            "type": "number",
            "description": "Per-unit price, before discounts (the authoritative unit price, not derived from total ÷ quantity)",
            "nullable": true
          },
          "total": {
            "type": "number",
            "description": "Line subtotal (unit price × quantity), before discounts",
            "nullable": true
          },
          "isMultiPack": {
            "type": "boolean",
            "description": "True when this line is a multi-pack (either a directly purchased pack or a product group whose variant is a pack)"
          },
          "explodeForFulfillment": {
            "type": "boolean",
            "description": "For a multi-pack, false when it is sent to fulfillment as a single pack SKU rather than exploded into its contents. Not meaningful for non-pack lines."
          },
          "productGroup": {
            "$ref": "#/components/schemas/ReceiptGroupSelection"
          },
          "product": {
            "$ref": "#/components/schemas/ReceiptProductRef"
          },
          "contents": {
            "type": "array",
            "description": "Nested lines: a multi-pack's contents, or the product group slots inside a multi-pack. Empty for a simple product line.",
            "items": {
              "$ref": "#/components/schemas/ReceiptItemGroup_D2"
            }
          }
        },
        "description": "One line on the order as the buyer chose it: a plain product, a product group selection, or a multi-pack. Buyer-facing surfaces render `displayName` (and nested content `displayName`s for a multi-pack), hiding `product`/`contents` for product group lines; producer/admin surfaces additionally show `product` as \"Fulfilled as\" and the nested `contents`."
      },
      "ReceiptProductRef": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The product ID",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The product name"
          },
          "sku": {
            "type": "string",
            "description": "The product SKU",
            "nullable": true
          }
        },
        "description": "A reference to a concrete product, for linking to its product page on producer/admin surfaces."
      },
      "ReceiptTeamMember": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID of the team member",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The name of the team member"
          }
        },
        "description": "The team member who processed the sale",
        "nullable": true
      },
      "ReceiptUrl": {
        "required": [
          "guestUrl",
          "pdfUrl",
          "webUrl"
        ],
        "type": "object",
        "properties": {
          "webUrl": {
            "type": "string",
            "description": "The URL of the order detail view, requires authenticating as either a buyer or a producer."
          },
          "pdfUrl": {
            "type": "string",
            "description": "PDF version of the receipt, being logged in as a producer to view on the web or API Keys to download."
          },
          "guestUrl": {
            "type": "string",
            "description": "A public URL of the receipt that does not require authentication."
          }
        }
      },
      "Subscription": {
        "required": [
          "membershipId",
          "wineClubId",
          "wineClubName"
        ],
        "type": "object",
        "properties": {
          "membershipId": {
            "type": "integer",
            "format": "int32"
          },
          "wineClubId": {
            "type": "integer",
            "format": "int32"
          },
          "wineClubName": {
            "type": "string"
          }
        }
      },
      "Tip": {
        "required": [
          "amount",
          "enabled",
          "label"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "label": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          }
        }
      },
      "ReceiptItemGroup_D2": {
        "required": [
          "displayName",
          "explodeForFulfillment",
          "isMultiPack",
          "product",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "The buyer-facing label for this line. For a product group it is the group name plus the selected attributes, e.g. \"Wine Case (Label: Dark Horse)\"; for a plain product or multi-pack it is the product name."
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "unitPrice": {
            "type": "number",
            "description": "Per-unit price, before discounts (the authoritative unit price, not derived from total ÷ quantity)",
            "nullable": true
          },
          "total": {
            "type": "number",
            "description": "Line subtotal (unit price × quantity), before discounts",
            "nullable": true
          },
          "isMultiPack": {
            "type": "boolean",
            "description": "True when this line is a multi-pack (either a directly purchased pack or a product group whose variant is a pack)"
          },
          "explodeForFulfillment": {
            "type": "boolean",
            "description": "For a multi-pack, false when it is sent to fulfillment as a single pack SKU rather than exploded into its contents. Not meaningful for non-pack lines."
          },
          "productGroup": {
            "$ref": "#/components/schemas/ReceiptGroupSelection"
          },
          "product": {
            "$ref": "#/components/schemas/ReceiptProductRef"
          },
          "contents": {
            "type": "array",
            "description": "Nested lines: a multi-pack's contents, or the product group slots inside a multi-pack. Empty for a simple product line.",
            "items": {
              "$ref": "#/components/schemas/ReceiptItemGroup_D3"
            }
          }
        },
        "description": "One line on the order as the buyer chose it: a plain product, a product group selection, or a multi-pack. Buyer-facing surfaces render `displayName` (and nested content `displayName`s for a multi-pack), hiding `product`/`contents` for product group lines; producer/admin surfaces additionally show `product` as \"Fulfilled as\" and the nested `contents`."
      },
      "ReceiptItemGroup_D3": {
        "required": [
          "displayName",
          "explodeForFulfillment",
          "isMultiPack",
          "product",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "The buyer-facing label for this line. For a product group it is the group name plus the selected attributes, e.g. \"Wine Case (Label: Dark Horse)\"; for a plain product or multi-pack it is the product name."
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "unitPrice": {
            "type": "number",
            "description": "Per-unit price, before discounts (the authoritative unit price, not derived from total ÷ quantity)",
            "nullable": true
          },
          "total": {
            "type": "number",
            "description": "Line subtotal (unit price × quantity), before discounts",
            "nullable": true
          },
          "isMultiPack": {
            "type": "boolean",
            "description": "True when this line is a multi-pack (either a directly purchased pack or a product group whose variant is a pack)"
          },
          "explodeForFulfillment": {
            "type": "boolean",
            "description": "For a multi-pack, false when it is sent to fulfillment as a single pack SKU rather than exploded into its contents. Not meaningful for non-pack lines."
          },
          "productGroup": {
            "$ref": "#/components/schemas/ReceiptGroupSelection"
          },
          "product": {
            "$ref": "#/components/schemas/ReceiptProductRef"
          },
          "contents": {
            "type": "array",
            "description": "Nested lines: a multi-pack's contents, or the product group slots inside a multi-pack. Empty for a simple product line.",
            "items": {
              "$ref": "#/components/schemas/ReceiptItemGroup_D4"
            }
          }
        },
        "description": "One line on the order as the buyer chose it: a plain product, a product group selection, or a multi-pack. Buyer-facing surfaces render `displayName` (and nested content `displayName`s for a multi-pack), hiding `product`/`contents` for product group lines; producer/admin surfaces additionally show `product` as \"Fulfilled as\" and the nested `contents`."
      },
      "ReceiptItemGroup_D4": {
        "required": [
          "displayName",
          "explodeForFulfillment",
          "isMultiPack",
          "product",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "The buyer-facing label for this line. For a product group it is the group name plus the selected attributes, e.g. \"Wine Case (Label: Dark Horse)\"; for a plain product or multi-pack it is the product name."
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "unitPrice": {
            "type": "number",
            "description": "Per-unit price, before discounts (the authoritative unit price, not derived from total ÷ quantity)",
            "nullable": true
          },
          "total": {
            "type": "number",
            "description": "Line subtotal (unit price × quantity), before discounts",
            "nullable": true
          },
          "isMultiPack": {
            "type": "boolean",
            "description": "True when this line is a multi-pack (either a directly purchased pack or a product group whose variant is a pack)"
          },
          "explodeForFulfillment": {
            "type": "boolean",
            "description": "For a multi-pack, false when it is sent to fulfillment as a single pack SKU rather than exploded into its contents. Not meaningful for non-pack lines."
          },
          "productGroup": {
            "$ref": "#/components/schemas/ReceiptGroupSelection"
          },
          "product": {
            "$ref": "#/components/schemas/ReceiptProductRef"
          },
          "contents": {
            "type": "array",
            "description": "Nested lines: a multi-pack's contents, or the product group slots inside a multi-pack. Empty for a simple product line.",
            "items": {
              "$ref": "#/components/schemas/ReceiptItemGroup_Leaf"
            }
          }
        },
        "description": "One line on the order as the buyer chose it: a plain product, a product group selection, or a multi-pack. Buyer-facing surfaces render `displayName` (and nested content `displayName`s for a multi-pack), hiding `product`/`contents` for product group lines; producer/admin surfaces additionally show `product` as \"Fulfilled as\" and the nested `contents`."
      },
      "ReceiptItemGroup_Leaf": {
        "required": [
          "displayName",
          "explodeForFulfillment",
          "isMultiPack",
          "product",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "The buyer-facing label for this line. For a product group it is the group name plus the selected attributes, e.g. \"Wine Case (Label: Dark Horse)\"; for a plain product or multi-pack it is the product name."
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "unitPrice": {
            "type": "number",
            "description": "Per-unit price, before discounts (the authoritative unit price, not derived from total ÷ quantity)",
            "nullable": true
          },
          "total": {
            "type": "number",
            "description": "Line subtotal (unit price × quantity), before discounts",
            "nullable": true
          },
          "isMultiPack": {
            "type": "boolean",
            "description": "True when this line is a multi-pack (either a directly purchased pack or a product group whose variant is a pack)"
          },
          "explodeForFulfillment": {
            "type": "boolean",
            "description": "For a multi-pack, false when it is sent to fulfillment as a single pack SKU rather than exploded into its contents. Not meaningful for non-pack lines."
          },
          "productGroup": {
            "$ref": "#/components/schemas/ReceiptGroupSelection"
          },
          "product": {
            "$ref": "#/components/schemas/ReceiptProductRef"
          },
          "contents": {
            "type": "array",
            "description": "Nested lines: a multi-pack's contents, or the product group slots inside a multi-pack. Empty for a simple product line.",
            "items": {
              "type": "object",
              "description": "Leaf node (no further children)"
            }
          }
        },
        "description": "One line on the order as the buyer chose it: a plain product, a product group selection, or a multi-pack. Buyer-facing surfaces render `displayName` (and nested content `displayName`s for a multi-pack), hiding `product`/`contents` for product group lines; producer/admin surfaces additionally show `product` as \"Fulfilled as\" and the nested `contents`."
      }
    },
    "securitySchemes": {
      "BasicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  }
}
```