Skip to main content

Transaction data requirements

Updated over 5 months ago

Think of this section as the checklist for your data. 7 easy points to keep in mind when preparing data for Transaction data upload. The rest is "nice-to-know".

❗️Person data always needs to be uploaded before Transaction, i.e. Transactions are tied to Persons.

1. The table must be in standard CSV format and use UTF-8 encoding.

The first row of the file must be a header row with the column names, followed by one or more rows of the actual data. You can prepare the CSV with a spreadsheet editor, text editor, or export it from your internal system if it supports exporting CSV.


2. All entries in the document must correspond to the same data type

This means the entire document has data for type "Transaction" ie is a Transactions table.


3. All data fields (ie column names) must be in snake_case or camelCase.

Choose either snake_case or camelCase and stick with it for all data fields.

An example of snake_case across all data fields:


4. Make sure fields “id”, “person_id", "timestamp", "amount" and "direction" are present for every entity/row.

  • id - unique transaction number (for example, the transaction number in your system).

    • NB! Allowed character are alphanumerics `a-zA-Z0-9` (case sensitive), hyphens `-`, underscores `_`, colons `:`, dots `.`

  • person_id - must correspond to the “id” field in PERSON data. ← this field MUST be in snake_case!

  • timestamp - the date and time the payment was made (Dates and times must be in ISO 8601 format yyyy-MM-dd’T’HH:mm:ss’Z’). If you wish to send digits after seconds, then Salv supports up to 6 digits after seconds. (yyyy-MM-dd’T’HH:mm:ss.xxxxxx’Z’)

  • amount - the transaction amount in numbers (any field with the keyword “amount”, “total”, “rate” in it must be a numeric value) NB! Salv doesn’t convert this field, make sure you have the same base currency for all of your transfer data (if you'd like to add another original currency amount then check the sub-section no. 7 for that)

  • direction - the direction of the payment (must be 'O' for outgoing and 'I' for incoming).


5. Each row must correspond to one transaction

As visible from the example above, one row corresponds to one transaction.


6. If you want to add the following data, name the data fields exactly as stated below

Data fields (column names) can be in snake_case or camelCase, as long as the 3rd point on the checklist is followed. Below examples are in snake_case where applicable.

  • type - the payment method type (e.g. card, bank transfer, etc.)

  • status - the transaction status (“completed”, “cancelled”, “pending”, and any others as needed)

  • reference - explanation of the transaction

  • receiver_name

  • receiver_account

  • receiver_bank_name

  • receiver_country

  • receiver_phonenumber

  • sender_name - the sender's name

  • sender_account - the sender's account number

  • sender_bank_name

  • sender_country

  • sender_phonenumber

  • cash_point

  • wallet_id


7. All other data fields

The rest of the data fields are up to you. We recommend choosing data fields that

  • you need for investigating transactions/creating rules. For example, if you want to make rules that take into account the currencies used in the transaction or sender/recipient IBANs, make sure the relevant fields are in the table.

  • correspond to data your company actually collects. Don’t add fields that you don’t have data for.

NB! Any dates and times you want to add must be in ISO 8601 format (e.g. yyyy-MM-dd’T’HH:mm:ss’Z’). If you wish to send digits after seconds, then Salv supprts up to 6 digits after seconds. (yyyy-MM-dd’T’HH:mm:ss.xxxxxx’Z’).


Example data

If you'd like to see some example data sets you can find them here (input from our Fakebank dataset).

Did this answer your question?