Unable to renew Nordigen (gocardless.com) connection

Version v5.11.51

Environment Docker

Checklist

  • Can you replicate the issue on our v5 demo site https://demo.invoiceninja.com or Invoice Ninja? → no
  • Have you searched existing issues? → yes
  • Have you inspected the logs in storage/logs/laravel.log for any errors? → yes

Describe the bug

Status of the Nordigen (gocardless.com) connection is “Error:: End User Agreement (EUA) 574773b1-ce87-428a-882b-ffd152bc8057 has expired”. Previously there was always a red triangle next to the bank account which allowed me to renew the permission to get transaction. but this time there is no such triangle

Expected Behavior

Possibility to renew the permission to get transaction from my bank account

Screenshots


Logs

no related logs in laravel.log

Hi,

Do you see any options to accept the EUA in the GoCardless portal?

unfortunately not. i can only delete the account.

It may help to remove and then re-add Nordigen in Invoice Ninja.

You may also want to reach out to Nordigen to ask them about the message.

the EUA was indeed expired. when fetching the Nordigen API endpoint

GET /api/v2/accounts/{id}/transactions/

manually, i got the this JSON response:

{
  "summary": "End User Agreement (EUA) 574773b1-ce87-428a-882b-ffd152bc8057 has expired",
  "detail": "EUA was valid for 90 days and it expired at 2025-02-25 15:22:45.169331. The end user must connect the account once more with new EUA and Requisition",
  "status_code": 400
}

i had to create a new requisition via the Nordigen API enpoint

POST /api/v2/requisitions/

{
  "redirect": "https://myinURL.at/nordigen/confirm",
  "institution_id": "ERSTE_BANK_DER_OESTERREICHISCHEN_SPARKASSEN_AG_GIBAATWWXXX",
  "reference": "some_64_char_string",
  "user_language": "de",
  "account_selection": false,
  "redirect_immediate": false
}

and open the URL returned in the “link” by above call (i.e. https://ob.gocardless.com/ob-psd2/start/…) to start the auth process.

@hillel i think this is and problem which could be fixed in invoice ninja. because Nordigen documentation states that return code 400 means “Incorrect date range in query parameters”, its not a good indicator for a expired requisition.
i think its best to use the “getRequisitions” function in the “Requisition” class in the “Nordigen\NordigenPHP\API” to check if there is a valid requisition available and request the user to create a new one in the invoiceninja settings.

BR
Thomas

@ret thank you for the detailed response!

cc @david