# Overview of Qashio's ERP Transactions API ## 1. Introduction This document provides the technical documentation for the `/erp-transactions` endpoint of the Qashio ERP API, designed for client-side integration into ERP systems for automated transaction retrieval, categorization, and synchronization. The endpoint supports retrieval of transaction data related to employee spend using Qashio VISA corporate cards, and includes enriched fields for ERP mapping and audit tracking. ## 2. Overview ### SWAGGER **API Swagger:** [https://erp.qashio.com/api/docs](https://erp.qashio.com/api/docs) ### AUTHENTICATION The system uses headers containing the company ID and x-api-key provided by Qashio support to authorize requests. All API calls require authentication via HTTP headers. The following headers must be passed with each request: * **companyId:** Unique company identifier. Required for identifying the client account. * **x-api-key:** API key issued by Qashio for the client. Must be kept secure. IP whitelisting is required for enhanced security. The customer's public IPs must be provided and configured in the API infrastructure's whitelist. These authentication settings will be visible to Company Admins under the ***[ERP Integrations] > [ERP Settings]*** in your Qashio Web portal. > **NOTE:** Access to the APIs, and therefore the authentication settings is enabled from Qashio's side. In case the settings are not visible/availble, please contact your Qashio Customer Success Manager. ### RATE LIMITS & PAGINATION * Maximum 30 requests per minute per companyId. * Pagination is supported using `page` and `limit` query parameters. * The default page size is 10 if not specified. * The maximum limit allowed is 500 items per page. ## 3. Endpoint Summary ### GET /erp-transactions Returns a paginated list of all transactions linked to the authenticated company ID. ```shell curl -X 'GET' \ 'https://erp.qashio.com/erp-transactions' \ -H 'accept: application/json' \ -H 'companyId: f251bf0****************3b0a6a37b' \ -H 'x-api-key: aX5p9D5ue0*********** **KUKA=' ``` ### TRANSACTION FIELDS AND FILTERS The following is a list of available fields returned by the `/erp-transactions` endpoint: * **Field:** `id` * **Type:** GUID * **Notes:** Internal to Qashio - Ignore for Integrations. * **Sample:** `f5b948e5-20ed-4e4a-baed-eb1856e71c17` * **Field:** `qashioId` * **Type:** String * **Notes:** Immutable Transaction Reference Number - Used to uniquely identify each transaction. Found on Qashio Web Dashboard as well. * **Sample:** `CTp7y9e4iyfmu6kx` * **Field:** `transactionAmount` * **Type:** Decimal * **Notes:** Transaction amount in original transaction currency - see `transactionCurrency`. * **Sample:** `21` * **Field:** `transactionCurrency` * **Type:** String * **Notes:** ISO 3-char Currency Code for original currency in which the transaction was made. * **Sample:** `USD` * **Field:** `transactionTime` * **Type:** DateTimeOffset * **Notes:** ISO8601 DateTime with Time Zone - always in UTC time - When the transaction was done. * **Sample:** `2025-07-01T08:28:51.524Z` * **Field:** `billingAmount` * **Type:** Decimal * **Notes:** Amount charged to card in Local (Card Account) Currency. * **Sample:** `77.14` * **Field:** `billingCurrency` * **Type:** String * **Notes:** ISO 3-char Currency Code - Local (Card Account) Currency. * **Sample:** `AED` * **Field:** `memo` * **Type:** String * **Notes:** User input description for the transaction. * **Field:** `vatAmount` * **Type:** Decimal * **Notes:** VAT amount based on the tax rate as selected on the transaction. * **Sample:** `4.30` * **Field:** `rrn` * **Type:** String * **Notes:** Transaction Id from the network. * **Sample:** `518208763425` * **Field:** `statusCode` * **Type:** String * **Notes:** always `0000` - indicates the transaction was successful. Unsuccessful transactions are already filtered out. * **Sample:** `0000` * **Field:** `transactionCategory` * **Type:** String * **Notes:** This should be used to determine the transaction type. * **Sample:** `purchase` | Transaction Type | Description | | --- | --- | | **CARD_LOADING** | Money being added on card from company's Qashio main account. | | **PURCHASE** | Purchase transaction. | | **CARD_UNLOADING** | Money being removed from card to company's Qashio main account. | | **DEPOSIT** | Money being deposited into company's Qashio account from another corporate bank account (via bank transfer). | | **REVERSAL** | Reversal of a purchase. | | **ACCOUNT_VERIFICATION** | A verification transaction done to verify the card when added to a payment platform/website; these are reversed in a short time. | | **BALANCE_INQUIRY** | Another type of card verification transaction; these are reversed in a short time. | | **CASH_WITHDRAWAL** | ATM Cash Withdrawal. | | **REFUND** | Money is refunded by the merchant (may be with or without reference to original transaction - see `parentId`). | | **FORCED DEBIT** | A rare purchase transaction where the merchant/network claims an amount without an authorization. | | **AFT** | Another type of purchase/reversal transaction depending on the messageType. | | **ACCOUNT_LOADING** | Money being added to a pool account from the company's Qashio main account. | | **CASHBACK** | Incomes from redeeming Qashio Points as Cashback. | | **ACCOUNT_UNLOADING** | Money being removed from a pool account to the company's Qashio main account. | | **ACCOUNT_TRANSFER** | Money transfer to/from the company's Qashio account to/from any subsidiary companies. | * **Field:** `vendorTrn` * **Type:** String * **Notes:** Vendor's VAT Registration number as captured from the user-uploaded invoice or manually entered. * **Field:** `purchaseOrderNumber` * **Type:** String * **Notes:** Free text field for users to associate other data (e.g., Invoice number, PO number). * **Sample:** `PO Num 001` * **Field:** `parentId` * **Type:** GUID/UUID * **Notes:** Qashio unique reference to the related transaction that parented this transaction (in cases of reversals, etc.). * **Sample:** `7370c48a-2a48-4d06-bca9-0a2219cdd54e` * **Field:** `excludeFromSync` * **Type:** Boolean * **Notes:** Used to indicate if the transaction should be excluded from sync. Primarily used with Qashio's direct integrations. * **Default:** `FALSE` * **Sample:** `False` * **Field:** `approvalStatus` * **Type:** String * **Notes:** Indicates the status of the post-transaction approval. * **Field:** `merchantName` * **Type:** String * **Notes:** Merchant Name as received from the network. * **Sample:** `OPENΑΙ *CHATGPT SUBSCR` * **Field:** `erpSupplierName` * **Type:** String * **Notes:** Name of ERP supplier selected on the transaction. * **Sample:** `OpenAl *Chatgpt Subscr` * **Field:** `erpSupplierRemoteId` * **Type:** String * **Notes:** Code/ERP Internal Id of the ERP supplier selected on the transaction. * **Sample:** `cc4e6a6a-95c5-4e3b-be29-36672dfd84a5` * **Field:** `expenseCategoryName` * **Type:** String * **Notes:** Qashio Expense Category based on the Merchant classifications in the Visa network. * **Sample:** `Electronics & Computer` * **Field:** `segments` * **Type:** Array of Objects * **Notes:** Details on the accounting segments associated with the transaction, including default and custom segments. * **Field:** `cardName` * **Type:** String * **Notes:** Nickname of the card associated with this transaction. * **Sample:** `ChatGPT Card` * **Field:** `cardLastFour` * **Type:** String * **Notes:** Last four digits of the card associated with this transaction. * **Sample:** `3688` * **Field:** `cardHolderName` * **Type:** String * **Notes:** Name of the Card Holder. * **Sample:** `John Smith` * **Field:** `cardHolderEmail` * **Type:** String * **Notes:** Email of the Card Holder. * **Sample:** `john.smith@qashio.com` * **Field:** `receipts` * **Type:** Array of Strings * **Notes:** Array of URLs to the user-uploaded receipt/invoice attachments against the transaction. * **Field:** `lineItems` * **Type:** Array * **Notes:** Used when a transaction is split into different accounting segments. ## 4. Suggested ERP Integration Scenarios The following scenarios illustrate how clients can integrate Qashio transaction data into their ERP systems. These examples assume usage of the `/erp-transactions` endpoint. **Integration-Critical Notes:** * `billingCurrency` should be used for all integrations as it represents the actual card account currency charged. * `billingAmount` is the amount initially authorized on the card. * `transactionCategory` should be included. * `account_transfer` represents transfers to subsidiaries. #### 1. Card-Level and Cardholder Reconciliation Group transactions by `cardHolderEmail`, `cardName`, or `cardLastFour` for reconciliation against individual card statements or limits. #### 2. Approved-Only Sync Restrict ERP posting to transactions where `approvalStatus` is 'approved' for finance-reviewed entries only. #### 3. Excluded Transactions for System-Based Logic Respect the `excludeFromSync` flag to skip transactions intentionally left out of ERP integration by admins or automation. #### 4. Account Transfer (Inter-Company Entries) Include `transactionCategory: account_transfer` entries to post inter-company transactions between subsidiaries as ERP journal entries. #### 5. Line-Level Allocation (Advanced) Where users have created `lineItems`, use them to break a transaction into multiple ERP line entries, mapping different GL codes and tax treatments.