Commit Graph

12 Commits

Author SHA1 Message Date
Pedro M. Baeza
01a032a858 [FIX] account_statement_import_online_gocardless: Slash at the end
Some of the API endpoints need it, like token renew. You get if not
405 HTTP code.

It includes also a typo fix in a method name.
2025-01-19 22:08:01 +01:00
Pedro M. Baeza
6788ae9774 [FIX] account_statement_import_online_gocardless: Missing param for basic auth
If not, there's a loop.
2025-01-19 22:08:01 +01:00
Pedro M. Baeza
c2e59c41e3 [FIX] account_statement_import_online_gocardless: Bugs after the refactoring
After the refactoring in #686, this doesn't work anymore:

- The API URL didn't end in "/", so the join_url doesn't do correctly
  the join.
- There's an infinite loop when getting the headers for getting the
  token.
2025-01-19 22:08:01 +01:00
Luis J. Salvatierra
2f4c2f6451 [FIX] account_statement_import_online_gocardless: IBAN comparison
It is possible that, when making the request to the requisitions endpoint,
the IBAN bank account comes with a lower alphanumeric string.
When comparing with the sanitized bank account (stored with upper) fails.

self.journal_id.bank_account_id.sanitized_acc_number == account_data["iban"]

to

self.journal_id.bank_account_id.sanitized_acc_number == account_data["iban"].upper()

Refactor method _gocardless_finish_requisition to be able to mock the requests made inside and create a unit test.
Refactor requests methods.
2025-01-19 22:08:01 +01:00
Pedro M. Baeza
91e78cdb52 [IMP] account_statement_import_online_gocardless: Wizard for choosing if reusing or not credentials
Some banks only allow one credentials, while others work better with
separate ones, so it's a matter of trying. This commit introduces
a wizard for choosing one method or the other.

TT48828
2025-01-19 22:08:01 +01:00
Pedro M. Baeza
291590fa2c [FIX] account_statement_import_online_gocardless: Increase timeout
It turns out that the timeout is for receiving whole answer, so in real
tests, the previous timeout was not enough for getting the answer when
there are some transactions load (like a month).

Let's increase this timeout then to a reasonable amount.
2025-01-19 22:08:01 +01:00
Pedro M. Baeza
45dfe2a7c3 [IMP] account_statement_import_online_gocardless: Reuse requisition from other provider
Check if there's another provider already linked for the same bank
institution, and if so, reuse it for this bank account, as some banks
don't allow several requisitions from the same source (GoCardless).

TT47944
2025-01-19 22:08:01 +01:00
AlexPForgeFlow
ad239c1bd4 [MIG] account_statement_import_online_gocardless: Migration to 16.0 2025-01-19 22:08:01 +01:00
Pedro M. Baeza
b7323eab6b [FIX] account_statement_import_online_gocardless: Payment reference extraction
Since one week ago, banks like Sabadell is sending the information in
the JSON list `remittanceInformationUnstructuredArray` instead of
`remittanceInformationUnstructured`.

Thus, we need to parse both for finding the proper element. For the rest
that are using the previous one, there's no change.

TT47491
2025-01-19 22:08:01 +01:00
Pedro M. Baeza
7b40b1e300 [FIX] account_statement_import_online_gocardless: Fallback to journal company
If the bank account is shared across multiple companies (no assigned company_id),
we can't launch the "Select Bank Account Identifier" wizard, so we fallback
to the journal company for getting the country.

TT43849
2025-01-19 22:08:01 +01:00
Pedro M. Baeza
0b00182087 [FIX] account_statement_import_online_gocardless: Unique ID fallback
Not all banks provide an entry reference or transaction ID, so we need
to fallback to the Gocardless internal ID for getting the unique ID
in such cases.

TT46640
2025-01-19 22:08:01 +01:00
Pedro M. Baeza
29f1ace32e [ADD] account_statement_import_online_gocardless
This module provides online bank statements from GoCardless Bank Account
Data, which provides a free API for connecting and getting transactions
for bank accounts.

TT45760

Co-Authored-By: Christopher Ormaza <chris.ormaza@forgeflow.com>
Co-Authored-By: Jordi Ballester <jordi.ballester@forgeflow.com>
2025-01-19 22:08:01 +01:00