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).