# Com.squareup.sdk:point-of-sale-sdk - polling for checkout completion?

**URL:** <https://developer.squareup.com/forums/t/com-squareup-sdk-point-of-sale-sdk-polling-for-checkout-completion/18552>\
**Category:** Questions\
**Tags:** terminal-api, checkout-api, point-of-sale-api\
**Created:** [September 2, 2024, 2:31pm UTC](https://developer.squareup.com/forums/t/com-squareup-sdk-point-of-sale-sdk-polling-for-checkout-completion/18552 "2024-09-02T14:31:13Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mwe](https://avatars.discourse-cdn.com/v4/letter/m/258eb7/32.png) [@mwe](https://developer.squareup.com/forums/u/mwe)\
**Post date:** [September 2, 2024, 2:31pm UTC](https://developer.squareup.com/forums/t/com-squareup-sdk-point-of-sale-sdk-polling-for-checkout-completion/18552/1 "2024-09-02T14:31:13Z")

</div>

I have integrated the Square POS SDK into our test app as described [here](https://developer.squareup.com/docs/pos-api/build-on-android).

I would like to know, when our app initiates a checkout on the Square Terminal, how does the app get notified when the checkout has completed?

Presumably, the app polls a [Square API/endpoint](https://developer.squareup.com/explorer/square/) to monitor for checkout completion, but which of Square’s APIs/endpoints does it use? And how often does it poll it?

I would like to know this as we will ultimately be using the Terminal API instead of the POS SDK, so we will need to recreate whatever technique the POS SDK uses for polling.

Thank you.

---

<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:** [September 2, 2024, 2:31pm UTC](https://developer.squareup.com/forums/t/com-squareup-sdk-point-of-sale-sdk-polling-for-checkout-completion/18552/2 "2024-09-02T14:31:33Z")

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

> **[Point of Sale API and POS Integration Tools](https://developer.squareup.com/docs/pos-api/what-it-does)**
>
> The Point of Sale API lets mobile applications open the Square Point of Sale application to process in-person payments using Square hardware.

> **[Square Developer Documentation](https://developer.squareup.com/docs/pos-api/how-it-works)**
>
> You can use the Point of Sale API to build custom POS solutions that requires payments, without worrying about hardware integrations or PCI compliance.

> **Additional Documentation**
>
> [Build on Android: Point of Sale API](https://developer.squareup.com/docs/pos-api/build-on-android)  
> [Payment API: Process Online and In-Person Payments](https://developer.squareup.com/docs/payments)  
> [Build on Mobile Web](https://developer.squareup.com/docs/pos-api/build-mobile-web)

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:** [September 3, 2024, 4:04pm UTC](https://developer.squareup.com/forums/t/com-squareup-sdk-point-of-sale-sdk-polling-for-checkout-completion/18552/3 "2024-09-03T16:04:43Z")

</div>

The Square Point of Sale API doesn’t directly notify your app when a checkout has completed. Instead, it uses a callback mechanism. After the transaction is completed on the Square Terminal, the Point of Sale application sends the transaction result back to your app via the callback URL that you specified when initiating the transaction.

In the case of the Terminal API, after you create a Terminal checkout using the `CreateTerminalCheckout` endpoint, you can use the `SearchTerminalCheckouts` endpoint to poll for the status of the checkout. You can do this at an interval that suits your application’s needs. The response from `SearchTerminalCheckouts` will include the status of the checkout, which can be `PENDING`, `IN_PROGRESS`, `CANCELED`, or `COMPLETED`.

Remember, the Terminal API also provides webhook events that you can use to get real-time notifications about the status of a checkout. This can be a more efficient method than polling.

_This answer was reviewed by @Bryan-Square._
