Lets you add transactions with a different currency using the currency conversion ratio. The following are the prerequisites or checklists for the API.
Notes
- Enable
CONF_CURRENCY_CONVERSION_ENABLE
on the Billing Configuration page of InTouch Profile > Organization Settings > Systems & Deployment > InTouch POS Configurations>Billing.- Configure org’s base currency and supported currencies on the Organization Setup page of InTouch Profile > Organization Settings > Organization Setup > Organization Profile.
- If no currency code is provided, the system will use the store's default currency.
- All monetary values should be provided in the local currency format.
- The API automatically handles conversion between local and base currency.
- The response includes both local and base currency values for all monetary fields.
- Add relevant currency conversion ratios in the back-end either through /v2/currencyratio API or through Data Import.
- The issual of points/coupon or redemption is calculated automatically as per the destination currency.
Example request
curl --location 'https://eu.api.capillarytech.com/v1.1/transaction/add_with_local_currency?format=json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic dGpfY2FwaWxsYXJ5OjVjMTc3MDJlOTI5NjQ4MjUzZTY3ZDJiMGM2ZTk5ZjE5' \
--header 'Cookie: _cfuvid=vExzxUfM1yVs0RkX2QTpuwcO53_TtBBvj4IQ3.2hA38-1739337355889-0.0.1.1-604800000; _cfuvid=TSCGvpdRkTXfEHaK7wh4GeeIIboDUZw.MFvq2rh0bhE-1739505014810-0.0.1.1-604800000; _cfuvid=Fa2ZZlikT6UXCljFwOpFWmmpr_ln0Nfz0KVEXjICAXM-1744170473439-0.0.1.1-604800000' \
--data-raw '{
"root": {
"transaction": [
{
"line_items": {
"line_item": [
{
"type": "Regular",
"serial": 1,
"value": 20,
"description": "Steel Bottle",
"item_code": "model_id_001",
"qty": 4,
"discount": 0,
"rate": 5,
"amount": 20,
"transaction_date": "2025-02-26 09:00:00",
"transaction_number": "test00transact064"
}
]
},
"type": "regular",
"currency_code": "USD",
"customer": {
"mobile": "919999988886",
"email": "[email protected]",
"firstname": "Tjuser",
"lastname": "Eightysix"
},
"credit_note": {
"amount": "60",
"notes": "Reason for credit",
"number": "test00transact064"
},
"number": "test00transact074",
"amount": 60,
"billing_time": "2025-04-08 17:30:00",
"notes": "Transaction Number 74",
"gross_amount": 60,
"discount": 0
}
]
}
}'
Rate Limit
Region | Default Limit (RPM) |
---|---|
Asia-2 (Singapore) | 1500 |
Asia-1 (N. Virginia) | 1500 |
EMEA (Ireland) | 700 |
Request Body Parameters
Parameter | Type | Description |
---|---|---|
type | Enum | Type of transaction. |
credit_note | obj | Details of credit note |
currency_code | string | Currency code applicable in ISO format. |
notes | string | Additional information about the transaction. |
qty | double | Quantity of the current line-item. |
rate | float | Price of each each line-item. |
value | float | Represents the pre-discount total for a single line item. Calculated as: value = rate × quantity. Example: If a line item has a rate of $10 and quantity of 2, value would be $20. |
amount | double | Net transaction amount. The actual transaction amount after discount. |
billing_time | date-time | Date and time of the transaction. By default, the current system date and time will be considered. |
gross_amount | double | Represents the total transaction amount before any discounts are applied. It's the sum of all line items' values before discounts. Used in calculations involving the total transaction value. |
discount | double | Discount availed for the transaction (discount amount). |
outlier_status | Enum | Pass the outlier status of the transaction at transaction level, and outlier status of the line-item at line-item level.
Values: |
source | Enum | Source from which the transaction is made.
Values: |
not_interested_reason | string | Reason why the customer is not interested to register. Applicable only for not-interested transactions. |
customer | obj | Pass customer information. Applicable for non-loyalty and not-interested transactions. |
extended_fields | obj | Valid transaction level extended field details in name and value pairs. You can also pass line-item level extended field details in |
customer object
Parameter | Type | Description |
---|---|---|
mobile/email/id/external_id | string | Pass any of the registered identifiers of the customer. Required for regular transaction. |
firstname | string | First name of the customer. |
lastname | string | Last name of the customer. |
credit_note object
Parameter | Type | Description |
---|---|---|
amount | double | Net transaction amount of the original bill. Represents the final amount after discounts are applied. For line items: amount = value - discount. For transactions: amount = gross_amount - total_discount |
notes | string | Additional information about the transaction. |
number* | string | Unique transaction number. The uniqueness depends on the configuration
|
Error Codes
Code | Description |
---|---|
400 | Bad Request - Invalid input parameters |
401 | Unauthorized - Invalid or missing authentication |
403 | Forbidden - Insufficient permissions |
404 | Not Found - Resource not found |
500 | Internal Server Error |