up-banking/api

More information on webhook failures

TassSinclair opened this issue · 1 comments

Hi team.

I am experimenting with webhooks but haven't managed to get any to work yet. My webhooks:

  • Accept POST calls with any content
  • Respond with 200 within <5 seconds
  • Support HTTP (upgrading to HTTPS) or HTTPS (with Let's Encrypt certificates)

For all combinations that I try, whenever I request a PING event or perform a transfer action in the account, the webhook logs show a deliveryStatus of UNDELIVERABLE.

I can hit these webhooks directly (from outside of my network) using curl or insomnia and they work for me. The URL is internet accessible, and doesn't require any proxying or network bridging. But my nginx logs don't show any incoming traffic from Up at all.

Including a curl example:

% curl https://[redacted]/api/webhook/up-banking-[redacted] -XPOST -v
*   Trying [redacted]:443...
* Connected to [redacted] ([redacted]) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* (304) (OUT), TLS handshake, Client hello (1):
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=[redacted]
*  start date: Jul  8 22:31:24 2022 GMT
*  expire date: Oct  6 22:31:23 2022 GMT
*  subjectAltName: host "[redacted]" matched cert's "[redacted]"
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.
> POST /api/webhook/up-banking-[redacted] HTTP/1.1
> Host: [redacted]
> User-Agent: curl/7.79.1
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: nginx/1.21.6
< Date: Sun, 07 Aug 2022 05:46:36 GMT
< Content-Type: application/octet-stream
< Content-Length: 0
< Connection: keep-alive
< 
* Connection #0 to host [redacted] left intact

Given all this:

  • Is there anything I have missed from the docs?
  • What more can I do to debug this situation?
  • Is there any more information the logs can show than UNDELIVERABLE?

If anyone is able to help me investigate, some of my webhook IDs are

  • fd82dbf6-cf99-4535-b6d2-826354a542c4
  • 04504963-e64c-411c-9000-2b3544f860d5
  • dd2cc477-f4c3-448e-b370-503344023438
  • 04504963-e64c-411c-9000-2b3544f860d5

It seems to be working now. Not sure what caused or fixed the issue.