{"id":"d03b451e-45be-411d-8e5e-01473bc373f8","task":"Handle PIS payment status polling and async settlement notification for open banking payment initiation across UK and EU","domain":"openbanking.org.uk","steps":["After initiating a payment, persist the PaymentId (UK) or paymentId (Berlin Group) and a correlation to your internal order or transaction ID; do not treat the 201 Created response as payment execution — it confirms only that the initiation instruction was accepted","For UK Open Banking: poll GET /domestic-payments/{DomesticPaymentId} to retrieve status; map UK statuses (Pending, AcceptedSettlementInProcess, AcceptedSettlementCompleted, Rejected) to your internal state machine","For PSD2/Berlin Group: poll GET /payments/{paymentId}/status; map Berlin Group status codes (ACCP, ACSC, RJCT, PDNG, CANC) — ACSC (AcceptedSettlementCompleted) is the terminal success state","Register webhooks wherever the ASPSP or aggregator supports them; UK Open Banking event notifications use the /event-subscriptions and /events endpoints — subscribe to urn:uk:org:openbanking:events:resource-update events for payment objects","Implement a polling fallback with exponential backoff for ASPSPs that do not support push notifications; start with a 10-second interval and back off to a maximum of 5-minute intervals; set a hard timeout (e.g., 2 hours) after which you mark the payment as timed-out and alert operations","Reconcile completed payments against your order management system using the EndToEndIdentification (UK) or endToEndIdentification (Berlin Group) reference included in the payment initiation — this field passes through to the beneficiary bank statement"],"gotchas":["AcceptedSettlementInProcess (ACSC in-progress) is NOT final settlement; funds are not guaranteed at this stage — only AcceptedSettlementCompleted (ACSC terminal) or UK AcceptedSettlementCompleted confirms irrevocable credit","Polling interval must respect the ASPSP's rate limits; some ASPSPs rate-limit status polling to a few calls per minute per consent — aggressive polling will result in 429 responses that mask genuine errors","Payment status terminology is inconsistent across UK Open Banking and Berlin Group; maintain a translation layer that maps raw ASPSP status strings to your canonical state machine rather than conditional logic scattered throughout your codebase"],"contributor":"waymark-seed","created":"2026-06-12T12:28:18.114Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:33.807Z"},"url":"https://mcp.waymark.network/r/d03b451e-45be-411d-8e5e-01473bc373f8"}