Axiym

How it works

Your payment data. One reusable map.

Your records have their own field names, labels, and document links. Assemble them into one payment JSON object in the shape that is easiest for your integration to produce. Smart Payload Mapping connects it to Axiym’s payment structure.

For example, instruction.reason can become Axiym’s purpose, and your label supplier invoice can become GOODS_PURCHASE. The tool suggests the connections and highlights missing data. You review and test the rules, then reuse them for future payments.

Open the mapping tool

Prepare two datasets

Payment JSON

The structure you will send

A complete payment object with fictional values. Include payment details, any sender data, the recipient, and documents in the structure your requests will use.

instruction.reason: "supplier invoice"
One field and its value in a single payment.
Value catalogue

The labels your payments may contain

A separate list of all your possible labels for controlled fields, such as purpose or document type. List them under Axiym’s field paths, independently of your JSON’s field names.

purpose: supplier invoice · stock replenishment · service fee
Possible labels, including ones missing from that payment.

6 Steps for mapping your data

1

Start with your payment JSON

Collect the records you need from your database, CRM, or exports. Assemble them into one JSON object, then upload or paste it into the tool.

Include every field you may send, using fictional values—even fields some payments omit. For lists of people or documents, show one entry for each different structure.

If you pay for yourself, leave Include sender unchecked. Axiym uses your onboarded profile, so no sender object is needed.

Data requirements guide

AI tip

Prepare your payment JSON

Use the copyable prompt in Prepare your payment structure to help your AI assistant assemble the JSON from your data sources, make document ownership clear, and identify missing information.

Example incoming payment JSON
{
  "instruction": {
    "reference": "INV-1042",
    "account": "5c0a9d3e-1f2b-4a6c-8e7d-9b3f5a1c2d4e",
    "amount": {
      "value": "1000.00",
      "currency": "USD"
    },
    "reason": "supplier invoice",
    "funding": "business income"
  },
  "client": {
    "id": "client-01",
    "businessName": "Example Trading Pte Ltd",
    "incorporatedIn": "SG",
    "address": {
      "streetName": "18 Example Road",
      "city": "Singapore",
      "country": "SG"
    },
    "email": "payments@example.test",
    "phone": "+6561234567",
    "identification": {
      "id": "registration-01",
      "kind": "company registration",
      "number": "202412345A"
    },
    "people": [
      {
        "id": "person-01",
        "givenName": "Maya",
        "familyName": "Tan",
        "role": "owner",
        "nationalities": [
          "SG"
        ],
        "address": {
          "streetName": "18 Example Road",
          "city": "Singapore",
          "country": "SG"
        },
        "identification": {
          "id": "identity-01",
          "kind": "passport",
          "number": "SAMPLE-MAYA"
        }
      },
      {
        "id": "person-02",
        "givenName": "Alex",
        "familyName": "Lim",
        "role": "director",
        "nationalities": [
          "SG"
        ],
        "address": {
          "streetName": "18 Example Road",
          "city": "Singapore",
          "country": "SG"
        },
        "identification": {
          "id": "identity-02",
          "kind": "passport",
          "number": "SAMPLE-ALEX"
        }
      }
    ]
  },
  "beneficiary": {
    "businessName": "Example Supply Co",
    "relationship": "supplier",
    "location": {
      "street": "10 Example Road",
      "country": "PH"
    },
    "bankAccount": {
      "number": "1234567890",
      "currency": "PHP",
      "bankName": "Example Bank",
      "bankCountry": "PH",
      "swift": "BNORPHMM",
      "clearingCode": "010000018"
    }
  },
  "files": [
    {
      "ownerType": "party",
      "ownerId": "client-01",
      "identificationId": "registration-01",
      "kind": "company extract",
      "fileName": "company.txt",
      "content": "Y29tcGFueQ=="
    },
    {
      "ownerType": "party",
      "ownerId": "person-02",
      "identificationId": "identity-02",
      "kind": "passport",
      "fileName": "alex-id.txt",
      "content": "QWxleA=="
    },
    {
      "ownerType": "party",
      "ownerId": "person-01",
      "identificationId": "identity-01",
      "kind": "passport",
      "fileName": "maya-id.txt",
      "content": "TWF5YQ=="
    },
    {
      "ownerType": "payment",
      "ownerId": "INV-1042",
      "identificationId": null,
      "kind": "invoice",
      "fileName": "INV-1042.txt",
      "content": "aW52b2ljZQ=="
    }
  ]
}

These field names and this nesting are examples. Use the structure your integration will send.

2

Review the fields and find missing data

Choose Create field mappings. The tool suggests where your fields belong. Review Payment, Sender when included, and Recipient one group at a time.

Each field shows its source, example value, and whether it is required, conditional, or optional. A green check shows when a section meets its required mapping checks.

If a field needs attention, select the correct source. If the data is missing, return to your JSON and add it. Corridor requirements may call for additional information.

You map amount and currency once. The amount handling rule determines which side of the payment is fixed for each payout.

Your fieldAxiym field
instruction.amount.valuesourceAmount.amount
instruction.reasonpurpose
client.businessNamesender.name
beneficiary.bankAccount.numberrecipient.destination.accountNumber
Recipient cityMissing source
recipient.address.city

The example above has a street and country, but no city. Add that information to your JSON, then connect its field here.

Selected mappings shown. The test examples below include the missing city.

3

Review where each document belongs

Keep files nested with the records they support, in a separate list, or use both. The mapper proposes connections from the nesting or matching identifiers in your JSON.

For a separate list, include enough information to identify the party, person, identification, or payment each file supports. A filename or document type alone cannot establish ownership.

Review the suggested destination and example files, then confirm each connection. Resolve any missing or ambiguous links before continuing.

The tool shows where documents can be supplied and when they may be required. Each supplied file needs its type, filename, and base64 content.

A separate file list, connected by IDs
company.txtExample Trading

Owner: client-01 · Identification: registration-01

sender.identification.documents[]
maya-id.txtMaya Tan

Owner: person-01 · Identification: identity-01

sender.relationships[].identification.documents[]
alex-id.txtAlex Lim

Owner: person-02 · Identification: identity-02

sender.relationships[].identification.documents[]
INV-1042.txtThis payment

Owner: INV-1042 · Payment evidence

supportingDocuments[]

Maya’s and Alex’s passports share a document type. Their IDs identify whose evidence each file contains, even when files arrive in a different order.

4

Supply your labels and review translations

Only some fields use controlled values: payment purpose, source of funds, business relationship, relationship roles, identification types, and document types. Names, amounts, and references do not need value lists.

The tool shows Axiym’s allowed codes alongside your catalogue input. Values found in the payment JSON are a starting point: upload or paste all the labels you may send for the fields where you use your own values.

Use the downloadable template to format your catalogue. It uses Axiym’s field paths, so it does not depend on your payment JSON’s naming.

Translations are suggested automatically. Review and confirm each group, adjusting suggestions or choosing a code for unmatched labels. You only need to cover your labels, not every Axiym code.

Saved labels match exactly, including case and whitespace. Existing Axiym codes pass through unchanged.

AI tip

Collect your possible values

Use the Collect your values with AI prompt in the mapper to gather codes and labels from your data sources and format them into a catalogue. Your assistant works from Axiym’s field definitions; it does not need your payment JSON’s structure.

Value catalogue · JSON excerpt
[
  {
    "field": "purpose",
    "values": [
      "supplier invoice",
      "stock replenishment",
      "service fee"
    ]
  },
  {
    "field": "sourceOfFunds",
    "values": [
      "business income"
    ]
  },
  {
    "field": "recipient.businessRelationship",
    "values": [
      "supplier",
      "trade vendor"
    ]
  }
]

Use Axiym paths such as purpose and recipient.businessRelationship. Your field map connects these to your own JSON.

5

Test the incoming payment against the mapped result

On the Test screen, the incoming payment JSON is on the left. Click Apply map to see the Axiym payment on the right, with your field mappings, document connections, and confirmed value translations applied.

Compare the result and resolve any reported issues. Edit or upload another payment using the same structure, with different values, people, or document counts. Check that each person’s details and documents still reach the right place.

Beneficiary

Example Supply Co

Payment purpose

supplier invoice → GOODS_PURCHASE

Maya’s identification evidence

1 file, associated by ID

Incoming payment JSON
{
  "instruction": {
    "reference": "INV-1042",
    "account": "5c0a9d3e-1f2b-4a6c-8e7d-9b3f5a1c2d4e",
    "amount": {
      "value": "1000.00",
      "currency": "USD"
    },
    "reason": "supplier invoice",
    "funding": "business income"
  },
  "client": {
    "id": "client-01",
    "businessName": "Example Trading Pte Ltd",
    "incorporatedIn": "SG",
    "address": {
      "streetName": "18 Example Road",
      "city": "Singapore",
      "country": "SG"
    },
    "email": "payments@example.test",
    "phone": "+6561234567",
    "identification": {
      "id": "registration-01",
      "kind": "company registration",
      "number": "202412345A"
    },
    "people": [
      {
        "id": "person-01",
        "givenName": "Maya",
        "familyName": "Tan",
        "role": "owner",
        "nationalities": [
          "SG"
        ],
        "address": {
          "streetName": "18 Example Road",
          "city": "Singapore",
          "country": "SG"
        },
        "identification": {
          "id": "identity-01",
          "kind": "passport",
          "number": "SAMPLE-MAYA"
        }
      },
      {
        "id": "person-02",
        "givenName": "Alex",
        "familyName": "Lim",
        "role": "director",
        "nationalities": [
          "SG"
        ],
        "address": {
          "streetName": "18 Example Road",
          "city": "Singapore",
          "country": "SG"
        },
        "identification": {
          "id": "identity-02",
          "kind": "passport",
          "number": "SAMPLE-ALEX"
        }
      }
    ]
  },
  "beneficiary": {
    "businessName": "Example Supply Co",
    "relationship": "supplier",
    "location": {
      "street": "10 Example Road",
      "city": "Makati",
      "country": "PH"
    },
    "bankAccount": {
      "number": "1234567890",
      "currency": "PHP",
      "bankName": "Example Bank",
      "bankCountry": "PH",
      "swift": "BNORPHMM",
      "clearingCode": "010000018"
    }
  },
  "files": [
    {
      "ownerType": "party",
      "ownerId": "client-01",
      "identificationId": "registration-01",
      "kind": "company extract",
      "fileName": "company.txt",
      "content": "Y29tcGFueQ=="
    },
    {
      "ownerType": "party",
      "ownerId": "person-02",
      "identificationId": "identity-02",
      "kind": "passport",
      "fileName": "alex-id.txt",
      "content": "QWxleA=="
    },
    {
      "ownerType": "party",
      "ownerId": "person-01",
      "identificationId": "identity-01",
      "kind": "passport",
      "fileName": "maya-id.txt",
      "content": "TWF5YQ=="
    },
    {
      "ownerType": "payment",
      "ownerId": "INV-1042",
      "identificationId": null,
      "kind": "invoice",
      "fileName": "INV-1042.txt",
      "content": "aW52b2ljZQ=="
    }
  ]
}
Mapped Axiym payment
{
  "sourceAccountId": "5c0a9d3e-1f2b-4a6c-8e7d-9b3f5a1c2d4e",
  "sourceAmount": {
    "amount": "1000.00",
    "currency": "USD"
  },
  "reference": "INV-1042",
  "purpose": "GOODS_PURCHASE",
  "sourceOfFunds": "BUSINESS_INCOME",
  "sender": {
    "name": "Example Trading Pte Ltd",
    "countryOfIncorporation": "SG",
    "address": {
      "streetName": "18 Example Road",
      "city": "Singapore",
      "country": "SG"
    },
    "contact": {
      "email": "payments@example.test",
      "phoneNumber": "+6561234567"
    },
    "identification": {
      "type": "REGISTRATION_NUMBER",
      "number": "202412345A",
      "documents": [
        {
          "documentType": "REGISTRY_EXTRACT",
          "name": "company.txt",
          "data": "Y29tcGFueQ=="
        }
      ]
    },
    "relationships": [
      {
        "firstName": "Maya",
        "lastName": "Tan",
        "role": "UBO",
        "nationalities": [
          "SG"
        ],
        "address": {
          "streetName": "18 Example Road",
          "city": "Singapore",
          "country": "SG"
        },
        "identification": {
          "type": "PASSPORT",
          "number": "SAMPLE-MAYA",
          "documents": [
            {
              "documentType": "PASSPORT",
              "name": "maya-id.txt",
              "data": "TWF5YQ=="
            }
          ]
        }
      },
      {
        "firstName": "Alex",
        "lastName": "Lim",
        "role": "DIRECTOR",
        "nationalities": [
          "SG"
        ],
        "address": {
          "streetName": "18 Example Road",
          "city": "Singapore",
          "country": "SG"
        },
        "identification": {
          "type": "PASSPORT",
          "number": "SAMPLE-ALEX",
          "documents": [
            {
              "documentType": "PASSPORT",
              "name": "alex-id.txt",
              "data": "QWxleA=="
            }
          ]
        }
      }
    ]
  },
  "recipient": {
    "name": "Example Supply Co",
    "businessRelationship": "SUPPLIER",
    "address": {
      "streetName": "10 Example Road",
      "city": "Makati",
      "country": "PH"
    },
    "destination": {
      "accountNumber": "1234567890",
      "currency": "PHP",
      "bank": {
        "bankName": "Example Bank",
        "address": {
          "country": "PH"
        },
        "swiftBic": "BNORPHMM",
        "clearingCode": "010000018"
      }
    }
  },
  "supportingDocuments": [
    {
      "documentType": "INVOICE",
      "name": "INV-1042.txt",
      "data": "aW52b2ljZQ=="
    }
  ]
}

These fictional examples illustrate the same rules applied twice. In the tool, you can test your own JSON and trace each output field back to its source. Local checks do not replace Sandbox testing against corridor requirements.

6

Review and save your map

The final screen shows your mappings on the left and their JSON definition on the right. Check the field rules, document connections, and value translations together.

Once the connections and translations are confirmed and the test passes, confirm your review. Download the definition or copy its JSON to keep your setup.

Store the definition with POST /payment-data-maps. For each payout, send the returned paymentDataMapId and your payment object to POST /payouts/mapped. The catalogue does not need to be sent again.

Your Payment Data Map

One definition containing the rules you reviewed

Field mappings

Where each part of the payment data comes from.

Document connections

How each file reaches the correct record.

Value translations

Which Axiym code each of your labels means.

Download or copy the JSON definition

The rules and agreed labels are included. Payment records and file content are supplied with each payment, not stored in the map.

What your integration does

Collect the required data, assemble each payment JSON, and handle authentication, retries, payout confirmation, and tracking. The map provides the field, document, and value rules you have agreed.

When to revise the map

New people, amounts, and document counts can use the same rules. If field paths or document links change, or you introduce labels needing new translations, review and test a replacement map.

Start with the data you already have

See how your records fit, find what is missing, and build a map you can test with more than one payment.

Try it with your structure