# Line Items for Orders Not Guaranteed After a Payment is Completed?

**URL:** <https://developer.squareup.com/forums/t/line-items-for-orders-not-guaranteed-after-a-payment-is-completed/24124>\
**Category:** Questions\
**Tags:** orders-api\
**Created:** [October 1, 2025, 3:02pm UTC](https://developer.squareup.com/forums/t/line-items-for-orders-not-guaranteed-after-a-payment-is-completed/24124 "2025-10-01T15:02:31Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![benjineer](https://avatars.discourse-cdn.com/v4/letter/b/ecc23a/32.png) [@benjineer](https://developer.squareup.com/forums/u/benjineer)\
**Post date:** [October 1, 2025, 3:02pm UTC](https://developer.squareup.com/forums/t/line-items-for-orders-not-guaranteed-after-a-payment-is-completed/24124/1 "2025-10-01T15:02:31Z")

</div>

Hey folks,

I’m integrating with Square’s Payments and Orders APIs, and I’ve run into some confusing behavior that I’d like clarification on.

**Scenario:**

- I listen to `payment.created` / `payment.updated` webhooks.

- When I receive a payment event, I use the `payment.order_id` to call `RetrieveOrder`.

- I successfully get back the order and store the id for future processing.

- Then, since my workflow depends on checking `line_items` for a specific product to trigger downstream logic, I query again to get line items.

**Issue:**  
Sometimes, immediately after a `payment.created` or `payment.updated` event, calling `RetrieveOrder` returns an order object with **no line items**. If I retry the exact same `RetrieveOrder` call later (manually or after a short delay), the `line_items` array is present and contains the expected items.

**Questions:**

1. Is this expected behavior — i.e., that `line_items` might not be populated immediately when an order is first created/linked to a payment?

2. Does Square guarantee any ordering between `payment.*` webhooks and line items being attached to an order?

3. If this is expected, is the advice the typical flow of backoff retries and such?

My main concern is making sure I follow Square’s recommended approach rather than working around something incorrectly.

Thank you for your help in clarifying whether this is an architectural expectation, or something else. Thanks!

---

<div class="post-metadata">

**Author:** ![Square-Dev-AI](https://sea1.discourse-cdn.com/square/forums/user_avatar/developer.squareup.com/square-dev-ai/32/2513_2.png) [@Square-Dev-AI](https://developer.squareup.com/forums/u/Square-Dev-AI)\
**Post date:** [October 1, 2025, 3:03pm UTC](https://developer.squareup.com/forums/t/line-items-for-orders-not-guaranteed-after-a-payment-is-completed/24124/2 "2025-10-01T15:03:16Z")

</div>

👋 I’m Square Dev AI, here to help answer your question!  
Based on the information you’ve provided, the following documentation will help answer your question:

> **[Orders API: How It Works](https://developer.squareup.com/docs/orders-api/how-it-works)**
>
> Learn how the Orders API processes and returns information about purchase transactions.

> **[Payments API Webhooks](https://developer.squareup.com/docs/payments-api/webhooks)**
>
> Learn about the Square webhook notifications supported by the Payments API.

> **Additional Documentation**
>
> [Orders API](https://developer.squareup.com/docs/orders-api/what-it-does)  
> [Retrieve Orders](https://developer.squareup.com/docs/orders-api/manage-orders/retrieve-orders)  
> [Retrieve Payments](https://developer.squareup.com/docs/payments-api/retrieve-payments)

If this documentation helped you find a solution, please check the box indicating that this reply solves the problem.  
Otherwise one of our Developer Advocates will provide additional assistance shortly.

---

<div class="post-metadata">

**Author:** ![Square-Dev-AI](https://sea1.discourse-cdn.com/square/forums/user_avatar/developer.squareup.com/square-dev-ai/32/2513_2.png) [@Square-Dev-AI](https://developer.squareup.com/forums/u/Square-Dev-AI)\
**Post date:** [October 1, 2025, 4:25pm UTC](https://developer.squareup.com/forums/t/line-items-for-orders-not-guaranteed-after-a-payment-is-completed/24124/3 "2025-10-01T16:25:13Z")

</div>

1. **Is this expected behavior — i.e., that `line_items` might not be populated immediately when an order is first created/linked to a payment?**

2. **Does Square guarantee any ordering between `payment.*` webhooks and line items being attached to an order?**

3. **If this is expected, is the advice the typical flow of backoff retries and such?**

_This answer was reviewed by @Bryan-Square._
