# Inquiry Regarding Missing payment.updated Webhook After terminal.checkout.updated

**URL:** <https://developer.squareup.com/forums/t/inquiry-regarding-missing-payment-updated-webhook-after-terminal-checkout-updated/21411>\
**Category:** Questions\
**Tags:** terminal-api\
**Created:** [March 13, 2025, 8:34am UTC](https://developer.squareup.com/forums/t/inquiry-regarding-missing-payment-updated-webhook-after-terminal-checkout-updated/21411 "2025-03-13T08:34:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![WilliamC](https://avatars.discourse-cdn.com/v4/letter/w/ce7236/32.png) [@WilliamC](https://developer.squareup.com/forums/u/WilliamC)\
**Post date:** [March 13, 2025, 8:34am UTC](https://developer.squareup.com/forums/t/inquiry-regarding-missing-payment-updated-webhook-after-terminal-checkout-updated/21411/1 "2025-03-13T08:34:43Z")

</div>

Dear Square Support Team,

I am integrating Square’s Terminal API for processing payments and have encountered a discrepancy in webhook behavior when using await\_next\_action: true. I would appreciate your clarification on the following questions:

**Background:**

Previously, I used the Create Terminal Checkout API for initiating payments. In this setup, I received **both** :

1. A terminal.checkout.updated webhook, which contained the checkout details.

2. A subsequent payment.updated webhook, which contained the final payment details.

Recently, I have modified the flow to first use the Create Terminal Action API (for tip selection) **before** calling Create Terminal Checkout.

In this new setup, I enabled **await\_next\_action: true** in the Terminal Action, and now I **no longer receive** a payment.updated webhook.

* * *

**Questions:**

1. **Is it expected behavior that the payment.updated webhook is no longer triggered when using await\_next\_action: true?**

• If so, could you point me to any official documentation that explains this behavior?

1. **If this is normal, how should I determine the final payment status?**

• I noticed that terminal.checkout.updated webhook contains a payment\_id, but the payment status is APPROVED, not COMPLETED.

• Should I call the **Complete Payment API** to finalize the transaction?

1. **How does accept\_partial\_authorization: true affect this behavior?**

• Since I have enabled accept\_partial\_authorization: true and autocomplete: false, what happens if the customer has insufficient funds?

• Will the terminal.checkout.updated webhook indicate this, or do I need to poll for partial payments manually?

* * *

**Example Data:**

**Before Using Create Terminal Action API**

• ✅ Received **terminal.checkout.updated**

• ✅ Received **payment.updated**

**After Using Create Terminal Action API with await\_next\_action: true**

• ✅ Received **terminal.action.updated**

• ✅ Received **terminal.checkout.updated**

• ❌ **Did not receive payment.updated**

Would appreciate any insights or documentation you can provide. Thank you for your time!

Best regards,

---

<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:** [March 13, 2025, 8:35am UTC](https://developer.squareup.com/forums/t/inquiry-regarding-missing-payment-updated-webhook-after-terminal-checkout-updated/21411/2 "2025-03-13T08:35:08Z")

</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:

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

> **[Refunds API Webhooks](https://developer.squareup.com/docs/refunds-api/webhooks)**
>
> Learn how to use Square webhooks to get notifications of refund updates.

> **Additional Documentation**
>
> [Use Webhooks to Integrate with a Payroll System](https://developer.squareup.com/docs/labor-api/webhooks)  
> [Square Developer](https://developer.squareup.com/docs/app-marketplace/requirements/terminal-api)  
> [Update Payment and Tip Amounts](https://developer.squareup.com/docs/payments-api/update-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:** [March 13, 2025, 3:53pm UTC](https://developer.squareup.com/forums/t/inquiry-regarding-missing-payment-updated-webhook-after-terminal-checkout-updated/21411/3 "2025-03-13T15:53:16Z")

</div>

1. Yes, it is expected behavior that the payment.updated webhook is not triggered when using await\_next\_action: true. This is because the payment is not yet completed when the Terminal Action is created. The payment.updated webhook is only triggered when a payment’s status changes, such as when it is completed or canceled.

2. To determine the final payment status, you should call the RetrievePayment API endpoint using the payment\_id from the terminal.checkout.updated webhook. This will return the current status of the payment. If the status is APPROVED, you can then call the CompletePayment API to finalize the transaction.

3. The accept\_partial\_authorization: true setting allows a payment to be approved for less than the requested amount if the customer’s card has insufficient funds. If this happens, the terminal.checkout.updated webhook will still be triggered, but the payment’s status will be PARTIALLY\_APPROVED. You would then need to decide whether to accept the partial payment (by calling CompletePayment) or to cancel it. If you have autocomplete: false set, you will need to manually complete or cancel the payment.

Please note that this information is not explicitly stated in the Square documentation, but is based on the general behavior of the Square APIs and webhooks.

_This answer was reviewed by @Bryan-Square._
