{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-apis/banking/v4/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Troubleshooting & common mistakes","keywords":"documentation, api, portal, banking, payment, account information, aritma, psd2, open banking, reconciliation","description":"Developer documentation for Aritma's banking and financial APIs - payments, account information, webhooks, authentication and integrations.","meta":[{"name":"google-site-verification","content":"hplqlK_5O42BZjNnjtVQMEpxv9JkxcD1eH4J1T-NQmI"}],"llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"troubleshooting--common-mistakes","__idx":0},"children":["Troubleshooting & common mistakes"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This section covers the issues most partners run into when setting up and"," ","operating their integration — mostly around connectivity and configuration,"," ","where a small missed step can look like a bigger problem than it is. If"," ","something isn't working as expected, check here before opening a support"," ","ticket; most of these have a quick fix."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-ip-do-we-need-to-whitelist","__idx":1},"children":["What IP do we need to whitelist?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Aritma's outbound IP is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["51.13.18.180"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"my-events-are-not-working","__idx":2},"children":["My events are not working"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Most likely you've missed a step in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["event subscription validation"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a subscription is created or updated, the partner must complete a"," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["validation handshake"]}," before event delivery begins. Aritma's Events API"," ","runs on Azure Event Grid, which uses this handshake to verify that the"," ","webhook endpoint is authorised to receive events. If this step isn't handled"," ","correctly, subscription creation will fail with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}," error — this is a"," ","validation issue, not a credentials or authentication problem."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["How it works:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Azure sends an ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OPTIONS"]}]}," request to the partner's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["delivery.url"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["This request includes a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Webhook-Request-Callback"]}," URL, delivered on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["port 553"]}," (e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://rp-westeurope.eventgrid.azure.net:553/..."]},")"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The partner must respond to this request to complete validation"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Option 1 — Callback via port 553"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The partner's server makes a GET request to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Webhook-Request-Callback"]}," ","URL."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Requires:"]}," outbound port 553 open in the firewall"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Advantage:"]}," simplest to implement — follows the standard Azure flow"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Disadvantage:"]}," requires a firewall change for an uncommon outbound"," ","port. Based on experience, this single step generates the most support"," ","enquiries of anything in the events setup."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Option 2 — Response headers (no extra ports required)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Instead of calling the callback URL, the partner's server responds directly"," ","to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OPTIONS"]}," request with the following headers:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Header"},"children":["Header"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WebHook-Allowed-Origin"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["*"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eventgrid.azure.net"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WebHook-Allowed-Rate"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["100"]}," (max events per minute)"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This completes validation with no outbound calls to port 553 required —"," ","recommended where firewall changes are hard to get approved."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Critical:"]}," Event delivery does ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," come from Aritma's IP address"," ","(",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["51.13.18.180"]},"). That IP is for Aritma's own outbound calls (e.g. the"," ","validation ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OPTIONS"]}," request and payment/API traffic). Actual event"," ","deliveries originate from Azure Event Grid infrastructure, so whitelisting"," ","only Aritma's IP will cause events to silently never arrive even though"," ","the subscription itself looks healthy."]}]}]},"headings":[{"value":"Troubleshooting & common mistakes","id":"troubleshooting--common-mistakes","depth":2},{"value":"What IP do we need to whitelist?","id":"what-ip-do-we-need-to-whitelist","depth":3},{"value":"My events are not working","id":"my-events-are-not-working","depth":3}],"frontmatter":{"seo":{"title":"Troubleshooting & common mistakes"}},"lastModified":"2026-08-13T12:40:55.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/apis/banking/v4/guides/troubleshooting-common-mistakes","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}