# Orders finished

> Triggered when a paid order completes its after-sales process, with all items received and all refunds and returns done. Reference for the Shoplazza orders/finished webhook: request headers and payload fields.

**Webhook** orders/finished

Triggered when a paid order enters the after-sales process, when all items are received, when all refunds and returns are completed, or when the order is fully refunded and all items are also returned (returning orders and returning products are two options in the refund process).

Requires the `order` [access scope](/docs/app/building-blocks/authentication/access-scopes). Minimum supported version: `202007`.

## Request headers

- `X-Shoplazza-Topic` string

  The event that triggered this delivery, e.g. orders/create

  **Example:** `orders/create`
- `X-Shoplazza-Hmac-Sha256` string

  Base64-encoded HMAC-SHA256 signature of the request body, generated with your app's Client Secret. Use it to verify the request comes from Shoplazza
- `X-Shoplazza-Shop-Domain` string

  The domain of the store that generated the event

  **Example:** `example.myshoplaza.com`
- `X-Shoplazza-Api-Version` string

  The API version used to serialize the payload

  **Example:** `2025-06`
- `X-Shoplazza-Deduplication-ID` string

  Deduplication ID for this delivery. It stays the same across retries of the same event—use it for idempotency

## Request body

**Schema | Example**

- `order` object

  - `id` string

    Order ID
  - `number` string

    Order number
  - `note` string

    A custom note input by the merchant regarding the order
  - `financial_status` string

    Payment status. Values: waiting (awaiting payment), paying (payment processing), authorized, partially_paid, paid, failed, refunding, refund_failed, refunded, partially_refunded, cancelled
  - `status` string

    Order status. Values: opened (in progress), placed (paid / order placed), finished (completed, or a terminal state after post-payment cancellation), cancelled (cancelled before payment)
  - `cancel_reason` string

    Reason for order cancellation
  - `canceled_at` string

    Time when the order was canceled
  - `payment_method` string

    The payment method used for the order (e.g., apple_pay, credit_card, online)
  - `fulfillment_status` string

    Order fulfillment status. Values: initialled (not yet fulfilling), waiting (awaiting shipment), partially_shipped, shipped, partially_finished, finished, cancelled, returning, partially_returned, returned
  - `customer_note` string

    A note provided by the customer during checkout
  - `buyer_accepts_marketing` boolean

    Indicates whether the customer has agreed to receive marketing promotions
  - `currency` string

    Currency code for the order
  - `tags` string

    Custom tags added to the order by merchants or the system
  - `sub_total` string

    The sum of the prices for all line items in the order
  - `total_discount` string

    Total amount of discounts applied to the order, including product, shipping, and payment discounts
  - `total_tax` string

    Total tax amount applied to the products in the order, excluding shipping tax
  - `total_shipping` string

    Total shipping fee for the order
  - `total_price` string

    The final price paid by the customer, including taxes, discounts, tips, additional fee and shipping fees
  - `duty_total` string

    Total customs duty and tax amount
  - `total_tip_received` string

    Total amount of tips received for the order
  - `discount_applications` string

    Details of discounts (JSON string)
  - `discount_code` string (deprecated)

    Discount code applied to the order. (Deprecated: parse `discount_applications` instead.)
  - `code_discount_total` string (deprecated)

    Total discount from discount codes. (Deprecated: extract from `discount_applications` instead.)
  - `line_item_discount_total` string (deprecated)

    Line-item level discount total. (Deprecated: extract from `discount_applications` instead.)
  - `applied_gift_cards` string (deprecated)

    Gift cards applied during checkout. (Deprecated: not recommended.)
  - `created_at` string

    Time when the order was created (e.g., 2018-11-02T12:30:10Z)
  - `updated_at` string

    Time when the order was last updated
  - `customer_deleted_at` string

    Time when the customer associated with the order was deleted
  - `deleted_at` string

    Time when the order was deleted
  - `placed_at` string

    Time when the order was paid
  - `closed_at` string

    Time when the order was closed
  - `browser_ip` string

    Browser IP address
  - `landing_site` string

    The first page the customer landed on (URL)
  - `last_landing_url` string

    Last visited page
  - `config` string

    Order configuration snapshot (JSON string), including market info and checkout page config
  - `checkout_url` string

    The checkout page URL for the order (including store domain)
  - `refer_info` string

    Visit information (JSON string)
  - `sales_platform` string

    Sales channel
  - `order_type` integer

    Order type
  - `product_tax_included` boolean

    Whether product prices already include tax
  - `additional_total` string

    Total amount of additional charges, numeric string (e.g., "9.99")
  - `shipping_tax_total` string

    Total shipping tax amount of the order
  - `shipping_tax_type` integer

    Shipping tax type
  - `test` boolean (deprecated)

    Whether this is a test order. (Deprecated: not recommended, determine on your own.)
  - `total_paid` string

    Total amount paid by the customer for the order
  - `real_total_paid` string

    Actual total amount paid
  - `refund_price` string (deprecated)

    Amount of the most recent refund request (refund events only). (Deprecated: do not use.)
  - `refund_status` string (deprecated)

    Refund method of the most recent refund (refund events only). (Deprecated: do not use.)
  - `total_refund_price` string

    Total refund amount that has been successfully processed (e.g., "9.99")
  - `total_refund_discount` string (deprecated)

    Cumulative refunded discount (refund events only). (Deprecated: do not use.)
  - `total_refund_tax` string (deprecated)

    Cumulative refunded tax (refund events only). (Deprecated: do not use.)
  - `customer` object

    Customer who placed the order. This is not an order snapshot — it may change when the customer places their next order

    - `id` string

      Customer ID
    - `first_name` string

      First name
    - `last_name` string

      Last name
    - `email` string

      Email address
    - `phone` string

      Phone number
    - `order_count` integer

      Number of orders placed by the customer
    - `total_spent` string

      Total amount spent by the customer
    - `created_at` string

      Time when the customer record was created
    - `updated_at` string

      Time when the customer record was last updated
  - `shipping_address` object

    Delivery address

    - `first_name` string

      First name of consignee
    - `last_name` string

      Last name of consignee
    - `name` string

      Name of consignee
    - `address1` string

      Address line (e.g., Suite 1234)
    - `address2` string

      Second address line
    - `city` string

      City (e.g., SAN JOSE)
    - `area` string

      Area (e.g., Bay area)
    - `province` string

      Province (e.g., New Mexico)
    - `province_code` string

      Province code (e.g., NM)
    - `country` string

      Country (e.g., United States)
    - `country_code` string

      Country code (e.g., US)
    - `zip` string

      ZIP code (e.g., 87036)
    - `phone` string

      Phone number (e.g., +86 1231231234)
    - `phone_area_code` string

      Area code (e.g., +86). Present on `shipping_address`
    - `company` string

      Company (e.g., ABC Limited)
    - `latitude` string

      Latitude of the delivery address (e.g., 22.54)
    - `longitude` string

      Longitude of the delivery address (e.g., 114.06)
    - `email` string

      Email address
    - `extra_info` object

      Special shipping information: `extra_info.cpf` (personal tax ID), `extra_info.tax_text` (tax text), `extra_info.short_address` (short address); `extra_info.addition` is a merchant-defined dictionary

      - `cpf` string

        Personal tax ID (CPF)
      - `tax_text` string

        Tax text
      - `short_address` string

        Short address
      - `addition` object

        Merchant-defined dictionary; keys vary
  - `billing_address` object

    Billing address

    - `first_name` string

      First name of consignee
    - `last_name` string

      Last name of consignee
    - `name` string

      Name of consignee
    - `address1` string

      Address line (e.g., Suite 1234)
    - `address2` string

      Second address line
    - `city` string

      City (e.g., SAN JOSE)
    - `area` string

      Area (e.g., Bay area)
    - `province` string

      Province (e.g., New Mexico)
    - `province_code` string

      Province code (e.g., NM)
    - `country` string

      Country (e.g., United States)
    - `country_code` string

      Country code (e.g., US)
    - `zip` string

      ZIP code (e.g., 87036)
    - `phone` string

      Phone number (e.g., +86 1231231234)
    - `phone_area_code` string

      Area code (e.g., +86). Present on `shipping_address`
    - `company` string

      Company (e.g., ABC Limited)
    - `latitude` string

      Latitude of the delivery address (e.g., 22.54)
    - `longitude` string

      Longitude of the delivery address (e.g., 114.06)
    - `email` string

      Email address
    - `extra_info` object

      Special shipping information: `extra_info.cpf` (personal tax ID), `extra_info.tax_text` (tax text), `extra_info.short_address` (short address); `extra_info.addition` is a merchant-defined dictionary

      - `cpf` string

        Personal tax ID (CPF)
      - `tax_text` string

        Tax text
      - `short_address` string

        Short address
      - `addition` object

        Merchant-defined dictionary; keys vary
  - `line_items` object[]

    List of purchased products

    *   Array [

    - `id` string

      Line item ID
    - `product_id` string

      ID of the product associated with this line item
    - `variant_id` string

      ID of the specific product variant
    - `product_title` string

      The name of the product purchased
    - `variant_title` string

      The title of the product variant, e.g. "Blue, Size M"
    - `product_handle` string

      URL handle of the product
    - `product_url` string

      The URL of the product page for customers
    - `sku` string

      Stock Keeping Unit (SKU) for the product variant
    - `spu` string

      Standard Product Unit (SPU)
    - `quantity` integer

      The number of units of this product purchased
    - `price` string

      Price
    - `compare_at_price` string

      Compare-at price
    - `total` string

      Line total for this item
    - `duty_price` string

      Duty cost
    - `payment_discount_price` string

      Price of payment discounts applied to the line item
    - `discount_applications` string

      Discounts applied to this line item (JSON string)
    - `fulfillment_status` string

      The fulfillment status of this line item, e.g. "fulfilled", "unfulfilled"
    - `requires_shipping` boolean

      Whether this line item requires shipping
    - `weight` string

      Weight of the product
    - `weight_unit` string

      Unit of measurement for the product weight, e.g. "kg", "lbs"
    - `image` string

      Product image
    - `note` string

      A note related to the product in this line item
    - `vendor` string

      The vendor or supplier of the product
    - `refund_quantity` integer (deprecated)

      Quantity of the most recent refund request (refund events only). (Deprecated: do not use.)
    - `refund_total` string (deprecated)

      Cumulative refunded item amount (refund events only). (Deprecated: do not use.)
    - `properties` object[]

      Line item properties, each with `name` and `value`

      *   Array [

      - `name` string

        Property name
      - `value` string

        Property value
      *   ]
    - `custom_properties` object

      Custom properties of the line item (e.g. size, color). A merchant-defined dictionary — keys vary by product
    - `shipped_quantity` integer

      Quantity shipped in this fulfillment. Present in `fulfillments[].line_items` only
    - `main_currency_prices` object

      Prices converted to the primary-market currency

      - `sub_total` string

        Subtotal in the primary-market currency
      - `total_price` string

        Total price in the primary-market currency
      - `total_discount` string

        Total discount in the primary-market currency
      - `total_tax` string

        Total tax in the primary-market currency
      - `total_shipping` string

        Total shipping in the primary-market currency
      - `actual_rate` string

        Exchange rate applied
      - `primary_market_currency` string

        The primary-market currency code
      - `price` string

        Unit price in the primary-market currency (line-item level)
      - `compare_at_price` string

        Compare-at price in the primary-market currency (line-item level)
      - `total` string

        Line total (price x quantity) in the primary-market currency (line-item level)
    *   ]
  - `main_currency_prices` object

    Prices converted to the store's primary-market currency

    - `sub_total` string

      Subtotal in the primary-market currency
    - `total_price` string

      Total price in the primary-market currency
    - `total_discount` string

      Total discount in the primary-market currency
    - `total_tax` string

      Total tax in the primary-market currency
    - `total_shipping` string

      Total shipping in the primary-market currency
    - `actual_rate` string

      Exchange rate applied
    - `primary_market_currency` string

      The primary-market currency code
    - `price` string

      Unit price in the primary-market currency (line-item level)
    - `compare_at_price` string

      Compare-at price in the primary-market currency (line-item level)
    - `total` string

      Line total (price x quantity) in the primary-market currency (line-item level)
  - `payment_line` object

    Payment details

    - `id` string

      Payment line ID
    - `payment_channel` string

      The payment channel used for the transaction (e.g., PayPal, Stripe, Bank Transfer)
    - `payment_method` string

      The specific method of payment used within the channel (e.g., Visa, MasterCard, online)
    - `transaction_no` string

      The unique transaction number associated with this payment
    - `credit_card_number` string

      The last few digits of the credit card used
    - `merchant_email` string

      Merchant email address
    - `desc` string

      Payment description
    - `merchant_id` string

      Merchant ID
    - `paid_total` string

      Amount paid through this payment line
  - `payment_lines` object[]

    List of payment lines

    *   Array [

    - `id` string

      Payment line ID
    - `payment_channel` string

      The payment channel used for the transaction (e.g., PayPal, Stripe, Bank Transfer)
    - `payment_method` string

      The specific method of payment used within the channel (e.g., Visa, MasterCard, online)
    - `transaction_no` string

      The unique transaction number associated with this payment
    - `credit_card_number` string

      The last few digits of the credit card used
    - `merchant_email` string

      Merchant email address
    - `desc` string

      Payment description
    - `merchant_id` string

      Merchant ID
    - `paid_total` string

      Amount paid through this payment line
    *   ]
  - `shipping_line` object

    Information about the shipping plan selected for the order

    - `name` string

      Name
    - `desc` string

      Description
    - `delivery_method` integer

      Delivery method
    - `extra_info` string

      Additional shipping information (JSON string)
  - `fulfillments` object[]

    List of fulfillments

    *   Array [

    - `id` string

      Fulfillment ID
    - `order_id` string

      Order ID
    - `status` string

      Fulfillment status
    - `created_at` string

      Creation time, in ISO-8601 format
    - `updated_at` string

      Last update time, in ISO-8601 format
    - `line_items` object[]

      Line items included in this fulfillment

      *   Array [

      - `id` string

        Line item ID
      - `product_id` string

        ID of the product associated with this line item
      - `variant_id` string

        ID of the specific product variant
      - `product_title` string

        The name of the product purchased
      - `variant_title` string

        The title of the product variant, e.g. "Blue, Size M"
      - `product_handle` string

        URL handle of the product
      - `product_url` string

        The URL of the product page for customers
      - `sku` string

        Stock Keeping Unit (SKU) for the product variant
      - `spu` string

        Standard Product Unit (SPU)
      - `quantity` integer

        The number of units of this product purchased
      - `price` string

        Price
      - `compare_at_price` string

        Compare-at price
      - `total` string

        Line total for this item
      - `duty_price` string

        Duty cost
      - `payment_discount_price` string

        Price of payment discounts applied to the line item
      - `discount_applications` string

        Discounts applied to this line item (JSON string)
      - `fulfillment_status` string

        The fulfillment status of this line item, e.g. "fulfilled", "unfulfilled"
      - `requires_shipping` boolean

        Whether this line item requires shipping
      - `weight` string

        Weight of the product
      - `weight_unit` string

        Unit of measurement for the product weight, e.g. "kg", "lbs"
      - `image` string

        Product image
      - `note` string

        A note related to the product in this line item
      - `vendor` string

        The vendor or supplier of the product
      - `refund_quantity` integer (deprecated)

        Quantity of the most recent refund request (refund events only). (Deprecated: do not use.)
      - `refund_total` string (deprecated)

        Cumulative refunded item amount (refund events only). (Deprecated: do not use.)
      - `properties` object[]

        Line item properties, each with `name` and `value`

        *   Array [

        - `name` string

          Property name
        - `value` string

          Property value
        *   ]
      - `custom_properties` object

        Custom properties of the line item (e.g. size, color). A merchant-defined dictionary — keys vary by product
      - `shipped_quantity` integer

        Quantity shipped in this fulfillment. Present in `fulfillments[].line_items` only
      - `main_currency_prices` object

        Prices converted to the primary-market currency

        - `sub_total` string

          Subtotal in the primary-market currency
        - `total_price` string

          Total price in the primary-market currency
        - `total_discount` string

          Total discount in the primary-market currency
        - `total_tax` string

          Total tax in the primary-market currency
        - `total_shipping` string

          Total shipping in the primary-market currency
        - `actual_rate` string

          Exchange rate applied
        - `primary_market_currency` string

          The primary-market currency code
        - `price` string

          Unit price in the primary-market currency (line-item level)
        - `compare_at_price` string

          Compare-at price in the primary-market currency (line-item level)
        - `total` string

          Line total (price x quantity) in the primary-market currency (line-item level)
      *   ]
    - `tracking_items` object[]

      List of tracking items in this fulfillment

      *   Array [

      - `tracking_company` string

        Logistics company
      - `tracking_company_code` string

        Logistics company code
      - `tracking_number` string

        Tracking number
      - `tracking_url` string

        Tracking URL
      *   ]
    - `tracking_company` string

      Logistics company name. See `tracking_items` for multiple tracking numbers
    - `tracking_company_code` string

      Logistics company code. See `tracking_items` for multiple tracking numbers
    - `tracking_number` string

      Tracking number. See `tracking_items` for multiple tracking numbers
    - `tracking_url` string

      Tracking URL. See `tracking_items` for multiple tracking numbers
    *   ]
  - `location_line` object

    Merchant's warehouse address

    - `location_id` string

      Identifier for the associated location
    - `location_name` string

      Name of the location, such as a store or warehouse
    - `first_name` string

      Contact first name
    - `last_name` string

      Contact last name
    - `phone` string

      Contact phone number
    - `email` string

      Contact email
    - `country` string

      Country
    - `country_code` string

      Country code
    - `province` string

      Province
    - `province_code` string

      Province code
    - `area` string

      Area
    - `city` string

      City
    - `address` string

      Address
    - `address1` string

      Address line
    - `company` string

      Company
    - `zip` string

      ZIP code
    - `latitude` string

      Latitude
    - `longitude` string

      Longitude
  - `additional_prices` object[]

    The detail list of additional charges

    *   Array [

    - `biz_id` string

      Business ID
    - `name` string

      Name of the additional charge
    - `fee_title` string

      Custom charge name
    - `price` string

      Amount of the additional charge
    *   ]

```json
{
  "order": {
    "id": "string",
    "number": "string",
    "note": "string",
    "financial_status": "string",
    "status": "string",
    "cancel_reason": "string",
    "canceled_at": "string",
    "payment_method": "string",
    "fulfillment_status": "string",
    "customer_note": "string",
    "buyer_accepts_marketing": true,
    "currency": "string",
    "tags": "string",
    "sub_total": "string",
    "total_discount": "string",
    "total_tax": "string",
    "total_shipping": "string",
    "total_price": "string",
    "duty_total": "string",
    "total_tip_received": "string",
    "discount_applications": "string",
    "created_at": "string",
    "updated_at": "string",
    "customer_deleted_at": "string",
    "deleted_at": "string",
    "placed_at": "string",
    "closed_at": "string",
    "browser_ip": "string",
    "landing_site": "string",
    "last_landing_url": "string",
    "config": "string",
    "checkout_url": "string",
    "refer_info": "string",
    "sales_platform": "string",
    "order_type": 0,
    "product_tax_included": true,
    "additional_total": "string",
    "shipping_tax_total": "string",
    "shipping_tax_type": 0,
    "total_paid": "string",
    "real_total_paid": "string",
    "total_refund_price": "string",
    "customer": {
      "id": "string",
      "first_name": "string",
      "last_name": "string",
      "email": "string",
      "phone": "string",
      "order_count": 0,
      "total_spent": "string",
      "created_at": "string",
      "updated_at": "string"
    },
    "shipping_address": {
      "first_name": "string",
      "last_name": "string",
      "name": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "area": "string",
      "province": "string",
      "province_code": "string",
      "country": "string",
      "country_code": "string",
      "zip": "string",
      "phone": "string",
      "phone_area_code": "string",
      "company": "string",
      "latitude": "string",
      "longitude": "string",
      "email": "string",
      "extra_info": {
        "cpf": "string",
        "tax_text": "string",
        "short_address": "string",
        "addition": {}
      }
    },
    "billing_address": {
      "first_name": "string",
      "last_name": "string",
      "name": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "area": "string",
      "province": "string",
      "province_code": "string",
      "country": "string",
      "country_code": "string",
      "zip": "string",
      "phone": "string",
      "phone_area_code": "string",
      "company": "string",
      "latitude": "string",
      "longitude": "string",
      "email": "string",
      "extra_info": {
        "cpf": "string",
        "tax_text": "string",
        "short_address": "string",
        "addition": {}
      }
    },
    "line_items": [
      {
        "id": "string",
        "product_id": "string",
        "variant_id": "string",
        "product_title": "string",
        "variant_title": "string",
        "product_handle": "string",
        "product_url": "string",
        "sku": "string",
        "spu": "string",
        "quantity": 0,
        "price": "string",
        "compare_at_price": "string",
        "total": "string",
        "duty_price": "string",
        "payment_discount_price": "string",
        "discount_applications": "string",
        "fulfillment_status": "string",
        "requires_shipping": true,
        "weight": "string",
        "weight_unit": "string",
        "image": "string",
        "note": "string",
        "vendor": "string",
        "properties": [
          {
            "name": "string",
            "value": "string"
          }
        ],
        "custom_properties": {},
        "shipped_quantity": 0,
        "main_currency_prices": {
          "sub_total": "string",
          "total_price": "string",
          "total_discount": "string",
          "total_tax": "string",
          "total_shipping": "string",
          "actual_rate": "string",
          "primary_market_currency": "string",
          "price": "string",
          "compare_at_price": "string",
          "total": "string"
        }
      }
    ],
    "main_currency_prices": {
      "sub_total": "string",
      "total_price": "string",
      "total_discount": "string",
      "total_tax": "string",
      "total_shipping": "string",
      "actual_rate": "string",
      "primary_market_currency": "string",
      "price": "string",
      "compare_at_price": "string",
      "total": "string"
    },
    "payment_line": {
      "id": "string",
      "payment_channel": "string",
      "payment_method": "string",
      "transaction_no": "string",
      "credit_card_number": "string",
      "merchant_email": "string",
      "desc": "string",
      "merchant_id": "string",
      "paid_total": "string"
    },
    "payment_lines": [
      {
        "id": "string",
        "payment_channel": "string",
        "payment_method": "string",
        "transaction_no": "string",
        "credit_card_number": "string",
        "merchant_email": "string",
        "desc": "string",
        "merchant_id": "string",
        "paid_total": "string"
      }
    ],
    "shipping_line": {
      "name": "string",
      "desc": "string",
      "delivery_method": 0,
      "extra_info": "string"
    },
    "fulfillments": [
      {
        "id": "string",
        "order_id": "string",
        "status": "string",
        "created_at": "string",
        "updated_at": "string",
        "line_items": [
          {
            "id": "string",
            "product_id": "string",
            "variant_id": "string",
            "product_title": "string",
            "variant_title": "string",
            "product_handle": "string",
            "product_url": "string",
            "sku": "string",
            "spu": "string",
            "quantity": 0,
            "price": "string",
            "compare_at_price": "string",
            "total": "string",
            "duty_price": "string",
            "payment_discount_price": "string",
            "discount_applications": "string",
            "fulfillment_status": "string",
            "requires_shipping": true,
            "weight": "string",
            "weight_unit": "string",
            "image": "string",
            "note": "string",
            "vendor": "string",
            "properties": [
              {
                "name": "string",
                "value": "string"
              }
            ],
            "custom_properties": {},
            "shipped_quantity": 0,
            "main_currency_prices": {
              "sub_total": "string",
              "total_price": "string",
              "total_discount": "string",
              "total_tax": "string",
              "total_shipping": "string",
              "actual_rate": "string",
              "primary_market_currency": "string",
              "price": "string",
              "compare_at_price": "string",
              "total": "string"
            }
          }
        ],
        "tracking_items": [
          {
            "tracking_company": "string",
            "tracking_company_code": "string",
            "tracking_number": "string",
            "tracking_url": "string"
          }
        ],
        "tracking_company": "string",
        "tracking_company_code": "string",
        "tracking_number": "string",
        "tracking_url": "string"
      }
    ],
    "location_line": {
      "location_id": "string",
      "location_name": "string",
      "first_name": "string",
      "last_name": "string",
      "phone": "string",
      "email": "string",
      "country": "string",
      "country_code": "string",
      "province": "string",
      "province_code": "string",
      "area": "string",
      "city": "string",
      "address": "string",
      "address1": "string",
      "company": "string",
      "zip": "string",
      "latitude": "string",
      "longitude": "string"
    },
    "additional_prices": [
      {
        "biz_id": "string",
        "name": "string",
        "fee_title": "string",
        "price": "string"
      }
    ]
  }
}
```
