CallBack URL Does not Work after the Tip Screen

Our drivers use our web app. In our Tap-to-Pay flow, we open the Square POS application using a deep link in our web app. Before starting the transaction, we include a unique UUID in the REQUEST_METADATA / state field. When no tip is added, the callback URL is triggered immediately after the transaction ends, allowing us to match this UUID with the transaction_id.

However, when a tip is added, the POS displays a “Thank you” screen, and if the user does not press the “New Sale” button, the callback never returns. In this case:

  • In the payment.updated webhook, we cannot see the UUID or any other matchable field (such as reference_id or note).
  • On iOS, there is no parameter similar to Android’s AUTO_RETURN_AFTER_PAYMENT to automatically return.

Questions:

  • Is it possible for the data we send via deep link (requestMetadata / state) to be included in the payment.updated webhook?
  • Is there a parameter on iOS that can skip or automatically close the “Thank you” screen?
  • Is there any other way that we can forward Square POS App from our webapp so that customers pay using Tap to Pay?
    I’m open for any other recommendation. Thanks a lot for your help.

Unfortunately, the REQUEST_METADATA/state field from deep links is not included in the payment.updated webhook by design.This is a known limitation of the Square POS deep linking system.

With iOS you can set returnsAutomaticallyAfterPayment to true so it will automatically return after payment.

Lastly, the only other way to have a web app and be able to accept tap to pay is with Terminal API. :slight_smile:

1 Like

Thank you Bryan. We solved the problem with [“CREDIT_CARD”],
“skip_receipt”: True,
“auto_return”: True

We love you guys. Your open source integration for developers not needing an external application is awesome. You are much better than Toast! Thank you

Awesome! Glad to hear that it working as expected. We love this feedback! :slight_smile: