My sandbox SaaS account is OAuth connected to a sandbox test seller account. I made this successful connection via API. I used that successful connection to, via api, successfully create a customer, create an order, create and publish an invoice for that seller account so that I could provide a payment link that they, when in production, would give to their customer for payment. I used that payment link to successfully pay this invoice with a test credit card. The payment shows in my sandbox test seller account, but the payment.created event does not show in my SaaS account’s webhook logs even though I am subscribed to both payment.created and payment.updated events.
I’m sorry, but can you please confirm for me that if I subscribe to payment.created / payment.updated events in my SaaS’s Square account then whenever such an event occurs for any Square seller account that is OAuth connected to mine I should receive that event at my webhook endpoint and see that event in my SaaS’s Square account webhook logs? The only webhook events that I see in my SaaS account’s logs are those that are a result of me “sending a test event” for either subscribed event type from within my SaaS account’s dashboard.
Thanks.
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:
Additional Documentation
Square Sandbox
Use Customer Webhooks
Onboard to Square Appointments
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.
Yes, you are correct. If you have subscribed to payment.created and payment.updated events in your Square SaaS account, you should receive these webhook events whenever such an event occurs for any Square seller account that is OAuth connected to your account. These events should be sent to your webhook endpoint and should also appear in your SaaS account’s webhook logs. If you are not seeing these events, it might be due to some issue or error. Please ensure that your webhook endpoint is correctly set up and is able to receive POST requests from Square.
This answer was reviewed by @Bryan-Square.
I just tested this with my account and it worked as expected when paid for the invoice. There must be something not configured correctly if your not getting events. 
Thanks for confirming. Any ideas what might not be configured correctly? There really isn’t (shouldn’t be) that much to it.
- I’m clearly OAuth connected to the sandbox seller account as I’m able to create a customer, an associated order and a published invoice for them via API, from which I get a payment link
- I’m subscribed to payment.created and payment.updated event webhooks, and those would be the events that would fire on a successful payment via that payment link by credit card, right?
I’m just not sure what could be configured incorrectly as that seems like about all there is to it?
Thanks.
When you OAuth’d to the account what permissions did you pass in? 
I passed this for scope (assuming that’s what you’re referring to):
MERCHANT_PROFILE_READ INVOICES_WRITE ORDERS_WRITE CUSTOMERS_WRITE
Ah, that’s it. You’ll also need PAYMENTS_READ. 
Ah, brilliant! That was it. Just tested it after revoking and recreating the OAuth connection and those events did indeed fire off in my SaaS’s account and are visible in those webhook logs.
Thanks a lot Bryan for helping me sort this out!
Glad to hear it’s working as expected. 