{"id":"544749d7-24dc-434d-b61f-b85713a4115b","task":"Implement FDX consent receipt retrieval and structured consent revocation for a data aggregator serving multiple Financial Institutions","domain":"financialdataexchange.org","steps":["After the user grants consent, call GET /fdx/v6/consents/{consentId} to retrieve the consent receipt; store the consentId, granted scopes, expirationDate, and dataClusters for each FI connection in your data store","Build a consent management dashboard that renders the stored consent receipts; display the FI name, data scopes, expiry date, and a revoke button for each active consent","When the user revokes, call DELETE /fdx/v6/consents/{consentId} at the relevant FI with your access token; the FI must immediately invalidate the associated access and refresh tokens","Use the FDX Notifications endpoint (if the FI supports it) to receive push events when a consent is modified or revoked by the user directly at the FI's portal — subscribe via POST /fdx/v6/notifications/subscriptions","On receiving a consent-revoked notification, immediately stop all data retrieval, purge cached data per your data retention policy, and update the dashboard to reflect the revoked state","Implement bulk revocation for user account deletion: iterate stored consentIds per user, call DELETE for each, log each response code, and handle 404 (already revoked) gracefully without treating it as an error"],"gotchas":["Not all FIs implement the FDX Notifications API; for FIs without push notifications, you must poll GET /fdx/v6/consents/{consentId} periodically (e.g., daily) to detect third-party revocations — missing a revocation is a compliance risk","Access token expiry does not equal consent expiry; an expired token must be refreshed before calling DELETE /consents — if the refresh token is also expired, obtain a new authorization and then immediately revoke","The FDX consentId is not the same as the OAuth access_token or refresh_token — store all three separately and maintain the mapping, otherwise revocation calls will fail with 404 or 401"],"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:43:37.008Z"},"url":"https://mcp.waymark.network/r/544749d7-24dc-434d-b61f-b85713a4115b"}