Can I receive Square payment completion notifications via webhook or callback?

Hello everyone!

This is my second question post. Thank you again for your help!

I currently provide an online web service. Every month, I send my clients a payment link (or payment code) through Square, and they make their card payments each month.

At the moment, after a payment is completed, I manually check the Square Dashboard on the next business day. After confirming the payment details, I manually register the payment history in our own system.

Our system is designed so that clients can use the paid plan for one month from their most recent payment.

Because of this, there is currently a delay between the client’s payment and when I manually register the payment in our system. Until I complete this process on the next business day, the client cannot use the paid plan.

This becomes particularly problematic during long holidays, such as the New Year holidays, because the delay can become several days long. This is starting to have an impact on our business operations.

So, I have a question:

Is it possible to receive the result of a Square payment in another system via a callback or webhook?

For example, if it were possible to specify a callback URL when creating a payment link/code, I could provide an API endpoint on our side. Then, the payment result could be sent to our system automatically, allowing us to register the payment history almost in real time.

Is something like this possible with Square?

If so, could you please advise me on the recommended way to implement this?

Thank you very much for your help!

Welcome back to Developer Forum!

Our webhooks are built to address your exact use case.

  • Subscribe to payment.updated and order.updated (Webhooks overview).
  • Square has no payment.completed event.
  • A payment is complete when payment.updated shows status: COMPLETED.

Hope this helps!

Thank you very much for your helpful response!

This is exactly what I was looking for.

I now understand that I can use the payment.updated webhook and check whether the payment status is COMPLETED.

I have implemented this on my side, and it works as expected. Now, payment information can be automatically reflected in our system almost in real time, without having to manually check the Square Dashboard.

This completely solves the problem I was having.

Thank you again for your help!