1. U4 ERPx
  2. API Reference
  3. Accounting
  4. Financial transaction batch

Financial transaction batch

This page provides a comprehensive reference for all parameters, endpoints, and behaviors of the Financial Transaction Batch API. Use this guide to understand request/response structures, validation rules, and integration best practices.

Purpose:
This API is used to import and manage batches of financial transactions within ERPx. It supports creating, updating, and deleting batches of financial transactions that can later be validated and imported using the import transactions (GL07) server process.

Base URL:
/v1/financial-transaction-batch

Authentication:
All APIs require Client ID and Client Secret. (Shared authentication details are documented globally.)

Supported Methods

HTTP MethodEndpoint PatternDescriptionUsage Notes / Limits
POST/v1/financial-transaction-batchCreates a new batch of financial transactionsOnly 1 batch per call. Max 10,000 transaction details per batch (hard limit).
PUT/v1/financial-transaction-batchModifies or adds transactions in existing batchesOnly 1 batch per call. Max 10,000 details per modification. Total batch cannot exceed 200,000 lines.
DELETE/v1/financial-transaction-batch/{batchId}/{interfaceId}Deletes entries from an existing batchOnly 1 batch per call. Max 500,000 details recommended. Uses URL parameters, not JSON payload.
   

Swagger / Schema

Version v1

   

Method Details

Sample Payloads

Request:
The example below posts a simple two line GL transaction only including the currency amount and a single posting dimension with no tax. Note that the majority of the values provided in the individual properties are dependent on the specific setup (accounts, tax codes, posting dimensions, etc).

[
    {
        "batchInformation": {
            "batchId": "246810",
            "interface": "BI"
        },
        "transactionInformation": {
            "companyId": "EN",
            "period": 202301,
            "transactionDate": "2023-01-06T00:00:00Z",
            "transactionDetailInformation": {
                "accountingInformation": {
                    "account": "1110",
                    "accountingDimension1": "100"
                },
                "amounts": {
                    "currencyAmount": -500.0,
                    "currencyCode": "EUR"
                },
                "lineType": "GL",
                "sequenceNumber": 1,
                "taxInformation": {
                    "taxCode": "ZZ"
                }
            },
            "transactionNumber": 1,
            "transactionType": "A1"
        }
    },
    {
        "batchInformation": {
            "batchId": "246810",
            "interface": "BI"
        },
        "transactionInformation": {
            "companyId": "EN",
            "period": 202301,
            "transactionDate": "2023-01-06T00:00:00Z",
            "transactionDetailInformation": {
                "accountingInformation": {
                    "account": "1115",
                    "accountingDimension1": "100"
                },
                "amounts": {
                    "currencyAmount": 500.0,
                    "currencyCode": "EUR"
                },
                "lineType": "GL",
                "sequenceNumber": 2,
                "taxInformation": {
                    "taxCode": "ZZ"
                }
            },
            "transactionNumber": 1,
            "transactionType": "A1"
        }
    }
]

   

Validation Rules for POST Method

Scenario_001 - User not authorised
ElementDetails
Scenario IDPOST_001
Scenario NameUser not authorised
HTTP Code403
GIVENA batch of transactions needs to be imported
WHENCalling the POST method
BUTUser does NOT have permissions
THENAPI is not reached; 403 Forbidden response is returned
Example Error Message“User is not authorised.”
Scenario_002 - Missing mandatory fields
ElementDetails
Scenario IDPOST_002
Scenario NameMissing mandatory fields
HTTP Code422
GIVENA batch of transactions needs to be imported
WHENCalling the POST method
BUTA mandatory field is missing
THENBatch is not posted; 422 response is returned
Example Error Message“The {0} field is required.”
Scenario_003 - Invalid format of fields
ElementDetails
Scenario IDPOST_003
Scenario NameInvalid format of fields
HTTP Code422
GIVENA batch of transactions needs to be imported
WHENCalling the POST method
BUTField format is invalid
THENBatch is not posted; 422 response is returned
Example Error Message“Invalid date time format…” / “Error converting value {0} to type ‘{1}’…”
Scenario_004 - Unsatisfied model restrictions
ElementDetails
Scenario IDPOST_004
Scenario NameUnsatisfied model restrictions
HTTP Code422
GIVENA batch of transactions needs to be imported
WHENCalling the POST method
BUTField format violates model restrictions (length, range, numeric limits)
THENBatch is not posted; 422 response is returned
Example Error Message“The date must be between {0} and {1}” / “The field {0} must be a string with max length {1}”
Scenario_005 - Unknown companyID
ElementDetails
Scenario IDPOST_005
Scenario NameUnknown companyID
HTTP Code422
GIVENA batch of transactions needs to be imported
WHENCalling the POST method
BUTInvalid companyID
THENBatch is not posted; 422 response is returned
Example Error Message“Unknown {0}.”
Scenario_006 - Duplicate batchId / interface
ElementDetails
Scenario IDPOST_006
Scenario NameDuplicate batchId / interface
HTTP Code422
GIVENA batch of transactions needs to be imported
WHENCalling the POST method
BUTbatchId / interface combination already exists
THENBatch is not posted; 422 response is returned
Example Error Message“Invalid {0}. Already exists with combination {1}, {2} ({3}, {4}).”
Scenario_007 - Duplicated key values
ElementDetails
Scenario IDPOST_007
Scenario NameDuplicated key values
HTTP Code422
GIVENA batch of transactions needs to be imported
WHENCalling the POST method
BUTDuplicate keys in batch (client, batchId, interface, transactionNumber, sequenceNumber)
THENBatch is not posted; 422 response is returned
Example Error Message“There is already a line within the batch with combination {0}, {1}, {2}, {3}, {4} ({5}, {6}, {7}, {8}, {9}).”
Scenario_008 - Mixed batchId / interface
ElementDetails
Scenario IDPOST_008
Scenario NameMixed batchId / interface
HTTP Code422
GIVENA batch of transactions needs to be imported
WHENCalling the POST method
BUTNot all lines share same batchId / interface
THENBatch is not posted; 422 response is returned
Example Error Message“All imported lines in the batch must have the same values in {0}.”
Scenario_009 - Exceeded 10,000 details
ElementDetails
Scenario IDPOST_009
Scenario NameExceeded 10,000 details
HTTP Code422
GIVENA batch of transactions needs to be imported
WHENCalling the POST method
BUTJSON contains more than 10,000 details
THENBatch is not posted; 422 response is returned
Example Error Message“This batch contains {0} details which exceeds the maximum allowed {1}.”

Sample Payloads

Request:
The example below works based on the assumption that the example in the POST section of this document was already run. In this example, the transaction that was already posted is modified, distributing the amount that was posted to account 1115 to two different accounting dimensions. In addition a second transaction was also introduced to the batch.

[
    {
        "batchInformation": {
            "batchId": "246810",
            "interface": "BI"
        },
        "transactionInformation": {
            "companyId": "EN",
            "period": 202301,
            "transactionDate": "2023-01-06T00:00:00Z",
            "transactionDetailInformation": {
                "accountingInformation": {
                    "account": "1110",
                    "accountingDimension1": "100"
                },
                "amounts": {
                    "currencyAmount": -500.0,
                    "currencyCode": "EUR"
                },
                "lineType": "GL",
                "sequenceNumber": 1,
                "taxInformation": {
                    "taxCode": "ZZ"
                }
            },
            "transactionNumber": 1,
            "transactionType": "A1"
        }
    },
    {
        "batchInformation": {
            "batchId": "246810",
            "interface": "BI"
        },
        "transactionInformation": {
            "companyId": "EN",
            "period": 202301,
            "transactionDate": "2023-01-06T00:00:00Z",
            "transactionDetailInformation": {
                "accountingInformation": {
                    "account": "1115",
                    "accountingDimension1": "100"
                },
                "amounts": {
                    "currencyAmount": 300.0,
                    "currencyCode": "EUR"
                },
                "lineType": "GL",
                "sequenceNumber": 2,
                "taxInformation": {
                    "taxCode": "ZZ"
                }
            },
            "transactionNumber": 1,
            "transactionType": "A1"
        }
    },
    {
        "batchInformation": {
            "batchId": "246810",
            "interface": "BI"
        },
        "transactionInformation": {
            "companyId": "EN",
            "period": 202301,
            "transactionDate": "2023-01-06T00:00:00Z",
            "transactionDetailInformation": {
                "accountingInformation": {
                    "account": "1115",
                    "accountingDimension1": "120"
                },
                "amounts": {
                    "currencyAmount": 200.0,
                    "currencyCode": "EUR"
                },
                "lineType": "GL",
                "sequenceNumber": 3,
                "taxInformation": {
                    "taxCode": "ZZ"
                }
            },
            "transactionNumber": 1,
            "transactionType": "A1"
        }
    },
    {
        "batchInformation": {
            "batchId": "246810",
            "interface": "BI"
        },
        "transactionInformation": {
            "companyId": "EN",
            "period": 202302,
            "transactionDate": "2023-02-15T00:00:00Z",
            "transactionDetailInformation": {
                "accountingInformation": {
                    "account": "1150",
                    "accountingDimension1": "100"
                },
                "amounts": {
                    "currencyAmount": -320.0,
                    "currencyCode": "EUR"
                },
                "lineType": "GL",
                "sequenceNumber": 1,
                "taxInformation": {
                    "taxCode": "ZZ"
                }
            },
            "transactionNumber": 2,
            "transactionType": "A1"
        }
    },
    {
        "batchInformation": {
            "batchId": "246810",
            "interface": "BI"
        },
        "transactionInformation": {
            "companyId": "EN",
            "period": 202302,
            "transactionDate": "2023-02-15T00:00:00Z",
            "transactionDetailInformation": {
                "accountingInformation": {
                    "account": "1140",
                    "accountingDimension1": "100"
                },
                "amounts": {
                    "currencyAmount": 320.0,
                    "currencyCode": "EUR"
                },
                "lineType": "GL",
                "sequenceNumber": 2,
                "taxInformation": {
                    "taxCode": "ZZ"
                }
            },
            "transactionNumber": 2,
            "transactionType": "A1"
        }
    }
]

   

Validation Rules for PUT Method

PUT_001 - User not authorised
ElementDetails
Scenario IDPUT_001
Scenario NameUser not authorised
HTTP Code403
GIVENWant to modify existing batch
WHENCalling the PUT method
BUTUser does NOT have permissions
THENAPI is not reached; 403 response is returned
Example Error Message“User is not authorised.”
PUT_002 - Missing mandatory fields
ElementDetails
Scenario IDPUT_002
Scenario NameMissing mandatory fields
HTTP Code422
GIVENWant to modify existing batch
WHENCalling the PUT method
BUTMandatory field is missing
THENData not updated; 422 response is returned
Example Error Message“The {0} field is required.”
PUT_003 - Invalid format of fields
ElementDetails
Scenario IDPUT_003
Scenario NameInvalid format of fields
HTTP Code422
GIVENWant to modify existing batch
WHENCalling the PUT method
BUTField format invalid
THENData not updated; 422 response is returned
Example Error Message“Invalid date time format…” / “Error converting value {0} to type ‘{1}’…”
PUT_004 - Unsatisfied model restrictions
ElementDetails
Scenario IDPUT_004
Scenario NameUnsatisfied model restrictions
HTTP Code422
GIVENWant to modify existing batch
WHENCalling the PUT method
BUTField format violates model restrictions
THENData not updated; 422 response is returned
Example Error Message“The date must be between {0} and {1}” / “The field {0} must be a string with max length {1}”
PUT_005 - Unknown companyID
ElementDetails
Scenario IDPUT_005
Scenario NameUnknown companyID
HTTP Code422
GIVENWant to modify existing batch
WHENCalling the PUT method
BUTInvalid companyID
THENData not updated; 422 response is returned
Example Error Message“Unknown {0}.”
PUT_006 - Non-existing batchId / interface
ElementDetails
Scenario IDPUT_006
Scenario NameNon-existing batchId / interface
HTTP Code422
GIVENWant to modify existing batch
WHENCalling the PUT method
BUTBatchId / interface not found
THENData not updated; 422 response is returned
Example Error Message“Invalid {0}. No batch in system with {1}, {2}.”
PUT_007 - Duplicated key values
ElementDetails
Scenario IDPUT_007
Scenario NameDuplicated key values
HTTP Code422
GIVENWant to modify existing batch
WHENCalling the PUT method
BUTDuplicate keys in batch
THENData not updated; 422 response is returned
Example Error Message“There is already a line within the batch with combination…”
PUT_008 - Modification exceeds 10,000 details
ElementDetails
Scenario IDPUT_008
Scenario NameModification exceeds 10,000 details
HTTP Code422
GIVENWant to modify existing batch
WHENCalling the PUT method
BUTMore than 10,000 details in request
THENData not updated; 422 response is returned
Example Error Message“This modification exceeds maximum 10,000 details.”
PUT_009 - Total batch limit exceeded 200,000
ElementDetails
Scenario IDPUT_009
Scenario NameTotal batch limit exceeded 200,000
HTTP Code422
GIVENWant to modify existing batch
WHENCalling the PUT method
BUTInserts push batch beyond 200,000
THENData not updated; 422 response is returned
Example Error Message“The batch id/interface {0}, {1} contains {2} new details which, added to {3}, exceeds the maximum allowed {4}.”

   

Sample Payloads

Request:

DELETE /v1/financial-transaction-batch/246810/BI

   

Validation Rules for DELETE Method

DEL_001 - User is not authorised
ElementDetails
Scenario IDDEL_001
Scenario NameUser is not authorised
HTTP Code403
GIVENEntries of the existing batch need deletion
WHENCalling the DELETE method
BUTUser not authorised
THENAPI not reached; 403 response is returned
Example Error Message“User is not authorised.”
DEL_002 - Missing required parameters
ElementDetails
Scenario IDDEL_002
Scenario NameMissing required parameters
HTTP Code404
GIVENEntries of the existing batch need deletion
WHENCalling the DELETE method
BUTRequired parameter is missing
THENAPI not reached; 404 response is returned
Example Error Message“No HTTP resource was found matching {0}”
DEL_003 - Non-existing batch
ElementDetails
Scenario IDDEL_003
Scenario NameNon-existing batch
HTTP Code404
GIVENThe whole batch needs deletion
WHENCalling the DELETE method
BUTbatchId / interface does not exist
THENNo deletion; 404 response is returned
Example Error Message“Entity with [{0}: ‘{1}’, {2}: ‘{3}’] was not found.”
DEL_004 - Non-existing transaction
ElementDetails
Scenario IDDEL_004
Scenario NameNon-existing transaction
HTTP Code404
GIVENTransaction within the batch needs deletion
WHENCalling the DELETE method
BUTTransaction does not exist
THENNo deletion; 404 response is returned
Example Error Message“Entity with parameters [{0}, {1}, {2}] was not found.”
DEL_005 - Non-existing transaction line
ElementDetails
Scenario IDDEL_005
Scenario NameNon-existing transaction line
HTTP Code404
GIVENLine within the transaction batch needs deletion
WHENCalling the DELETE method
BUTSequence number is not found
THENNo deletion; 404 response is returned
Example Error Message“Entity with parameters [{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}] was not found.”
DEL_006 - Unprocessable entity
ElementDetails
Scenario IDDEL_006
Scenario NameUnprocessable entity
HTTP Code400
GIVENEntries need deletion
WHENCalling the DELETE method
BUTIncomplete parameters
THENNo deletion; 400 response is returned
Example Error Message“The following parameters: {0} must be entered together.”
   

Best Practices

  • Only send one batch per call to avoid partial failures.
  • Respect hard limits:
    • POST/PUT: Maximum 10,000 details per call
    • PUT: Total batch maximum 200,000 details
    • DELETE: Recommended maximum 500,000 details
  • Use Swagger UI for testing and schema validation before production calls.
  • Handle error codes gracefully; implement retry/backoff according to global rate limits.
  • Always check for deprecation alerts on this endpoint version.
  • Validate IDs and payloads before sending DELETE requests to avoid unintentional data loss.    

Action APIs


Query APIs (Read-Only)