Transactions

Understand our transaction model and how to integrate with it

Summary

Mesh utilises a unified transaction model that handles both monetary and non-monetary transactions.

This model serves as the foundation for all customer transactions, ranging from financial payments to administrative events like card activations and location alerts.

Guide to usage

What’s covered at this level

We model the core fields relevant to all monetary or non-monetary transactions, including:

  • User-set identifiers for transaction and customer
  • Timestamp for when the transaction occurred
  • Custom fields
  • Indicator on monetary/non-monetary
  • Customer data if a customer needs to be updated or created
  • Regulatory reporting details

Handling the transaction customer, including inline customer update and creation

Transactions need to be attached to a customer record. For the fastest evaluation of transactions, users should attach the transaction to a pre-existing customer. However, we also offer the ability for the user to update or create a customer at the time of transaction processing.

In summary there are three options:

  1. Use an existing customer as-is
  2. Use an existing customer and update some details
  3. Use a new customer

In detail:

Customer status

Customer object provided?

System action

Existing Customer Supplied customer_external_identifier found in system

No

Use existing

Retrieves the most recent version of the customer details and uses them to evaluate the transaction.

Existing Customer

Supplied customer_external_identifier found in system

Yes

Update and evaluate

Updates the existing customer record with the new details and uses the updated data for evaluation.

New Customer

Supplied customer_external_identifier not found in system

Yes (required)

Create and evaluate

Creates a new customer record and uses this data to evaluate the transaction.

Custom fields

Custom fields are available at the transaction level. There is not a limit in the number supplied. Each custom field has:

  • A user-set key
  • A value, one of:
    • string
    • decimal

Recording time

occurred_at is made up of a timestamp and optional offset from UTC.

If an offset is provided, we use it to convert the timestamp to the UTC timezone.

If an offset is not provided, we keep the timestamp as-is and set the timezone as UTC.

Fields

To view the fields and full details, visit the API docs for Create and process a transaction and explore the transaction object.


What’s Next

Visit Monetary transactions to understand the next level of the transactions model.