Consent revocation

Revoke the bank consent of a session when your end user withdraws their consent, without deleting the session.

When your end user withdraws the access they gave you to their bank data, revoke the bank consent of their session. Neonomics asks the bank to revoke the consent and stops using it. The session is kept, so the end user can grant a new consent on it later.

🚧

Beta

Consent revocation is a beta feature. It is only available for the Danish banks listed under Supported banks, and it may still change. Every other bank answers with error 1063.

How it works

  1. You call DELETE /ics/v3/session/{sessionId}/consent.
  2. Neonomics checks that the session exists and belongs to your application.
  3. Neonomics asks the bank to revoke the consent.
  4. Only when the bank confirms, or reports that the consent is already gone, does Neonomics drop the consent's bank token and mark the consent revoked. You get 200 OK.

If the bank cannot or will not revoke the consent, you get an error and nothing changes: the consent stays usable.

Request

DELETE /ics/v3/session/{sessionId}/consent
HeaderRequiredDescription
AuthorizationyesBearer {access_token}
x-device-idyesThe device id the session was created with.
Query parameterRequiredDescription
scopenoThe consent scope to revoke. Only accounts is accepted, and it is the default; any other value is rejected with error 1051.
customer-typenoPERSONAL, BUSINESS or CORPORATE: the category of accounts the consent was granted for. Only needed for a consent granted before consent revocation was available; otherwise the recorded one is used, and PERSONAL when neither is known. Any other value is rejected with error 1002.
curl -X DELETE "https://sandbox.neonomics.io/ics/v3/session/{sessionId}/consent" \
  -H "Authorization: Bearer {access_token}" \
  -H "x-device-id: {deviceId}"

Response

{
  "sessionId": "3f7c0a52-6b1e-4f1c-9a43-0e9d2c7b5a10",
  "outcome": "BANK_CONFIRMED",
  "revokedAt": "2026-10-16T12:00:00Z"
}
FieldDescription
sessionIdThe session the consent was granted through.
outcomeBANK_CONFIRMED when this call revoked the consent at the bank. ALREADY_REVOKED when there was nothing left to revoke: the bank reported the consent already gone, or an earlier call revoked it.
revokedAtWhen the consent was revoked, as an ISO-8601 UTC instant. It may include fractional seconds.

Both outcomes mean the consent is revoked. Treat them the same way.

Repeating the call

Revoking is safe to repeat. A second call for a revoked consent returns 200 with outcome: ALREADY_REVOKED and the revokedAt of the original revocation, without calling the bank again.

Errors

HTTPCodeWhenWhat to do
5101002customer-type is not PERSONAL, BUSINESS or CORPORATE.Send a valid value, or leave it out.
5101020The session does not exist, was deleted, or was created with a different x-device-id.Check the session id and the device id.
5101049The session belongs to another application.Use the application that created the session.
5101051The scope is not accounts.Send scope=accounts, or leave scope out.
5101062There is no bank consent to revoke: the session holds none, or the bank never issued one because the consent flow was not completed.Nothing to revoke. Nothing changed.
5101063Consent revocation is not supported for this bank.Ask the end user to withdraw the consent in their bank's online banking.
520Internal Neonomics error.Retry later. Nothing changed.
530bank errorThe bank call failed.Retry later. Nothing changed.

See Error codes for the full list.

After revocation

  • The session stays valid. Account requests with it fail with error 1426 until the end user grants a new consent.
  • If your application has detailed session status enabled, GET /ics/v3/session/{sessionId} with the header x-detailed-info: true returns the revocation time as consentExpiresAt, in epoch milliseconds.
  • To get a new consent, start the consent flow again with GET /ics/v3/consent/{sessionId}.
🚧

One consent per session

A session holds one bank consent at a time. When the end user grants a new consent on the same session, it replaces the previous one, which can then no longer be revoked through Neonomics. To end a consent, revoke it before starting a new one on the same session.

Supported banks

Consent revocation is available in Denmark, for these banks:

  • Banks on the BEC platform: Andelskassen Fælleskassen, Arbejdernes Landsbank, Coop Bank, Danske Andelskassers Bank, FasterOikos, Frørup Andelskasse, Frøslev-Mollerup Sparekasse, Fynske Bank, Hvidbjerg Bank, Lollands Bank, Lægernes Bank, Maj Bank, Merkur Andelskasse, Møns Bank, Nykredit Spar Nord, PenSam, SEB and Vestjysk Bank
  • Banks on the Bankdata platform: Djurslands Bank, Jyske Bank, Kreditbanken, Ringkjøbing Landbobank, SJF Bank, Skjern Bank and Sydbank
  • Danske Bank
  • Lunar
  • Nordea

Other banks, including the banks on the SDC platform, answer with error 1063. More banks will be added.


Did this page help you?