Skip to content

[Feature] Custom mapping Gocardless fields #1467

Closed
@CharlieMK

Description

Verified feature request does not already exist?

  • I have searched and found no existing issue
    This feature request is related to [Feature] Map Gocardless 'additionalInformation' field to notes.  #1466 . However, 1466 is about a static mapping from the 'additionalInformation' field to the 'notes' field in Actual. This feature request on the other hand is about being able to make all mappings between Gocardless and Actual configurable.

💻

  • Would you like to implement this feature?

Pitch: what problem are you trying to solve?

Not all banks expose the same fields via their apis (see https://developer.gocardless.com/bank-account-data/transactions).
Some banks (mine for example) use the additionalinformation payload for adding quite some information in json formatted objects. Other banks may use different (sub)fields. We cannot expect the devs to keep up with all these bank specific information, while this information may be very valuable to the users of Actual.

Describe your ideal solution to this problem

We could solve this by adding two enhancements:

  1. [optional] allow users to create fields
  2. allow users to create mappings between the gocardless API fields and the fields in Actual

Enhancement 1 is optional as the mapping feature would already be useful using the current fields (the notes field for example). However, it would probably be more valuable as otherwise users have a limited set of fields to map to.

Enhancement 2 would for allow users to configure custom mappings. For example, for a bank with institution ID 'FINTRO_BE_GEBABEBB' I have the following transaction list:

{
                "entryReference": "2023080520230805134410******",
                "bookingDate": "2023-08-05",
                "valueDate": "2023-08-04",
                "transactionAmount": {
                    "amount": "-75",
                    "currency": "EUR"
                },
                "creditorName": "NAME****",
                "additionalInformation": "atmPosName: NAME****, cardNumber: ******XXXXXX****, narrative: ['BETALING MET DEBETKAART', 'NUMMER ****', 'NAME ***', 'COUNTRY', '04/08/2023', 'VISA DEBIT - CONTACTLOOS', 'BANKREFERENTIE : 230805*****', 'VALUTADATUM : 04/08/2023']",
                "bankTransactionCode": "PMNT-CCRD-****",
                "internalTransactionId": "2eedbc23f037aa516c47***
            },
            {
                "entryReference": "20230805202308050315205*****",
                "bookingDate": "2023-08-05",
                "valueDate": "2023-08-01",
                "transactionAmount": {
                    "amount": "-3.5",
                    "currency": "EUR"
                },
                "additionalInformation": "narrative: ['MAANDELIJKSE BIJDRAGE', 'FINTRO BLUE', 'BANKREFERENTIE : *****', 'VALUTADATUM : 01/08/2023']",
                "bankTransactionCode": "ACMT-MDOP-****",
                "internalTransactionId": "bf414d977b1fbaed1ee75***"
            },

It would be great if I could manually configure that 'additionalInformation.narrative' should be mapped to the 'notes' field in Actual. Potentially, inspiration could be gotten from Homeassistant where it is possible to parse any value as if it is a json object: https://www.home-assistant.io/docs/configuration/templating/#processing-incoming-data. In my above example, the home-assistant way of doing it would then be:
value_json['additionalInformation']['narrative'] => notes

Teaching and learning

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    featureThis issue is a feature request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions