Sales API
ReconHub Sales API (v1)
The Sales API provides actions to upload, list and get sales transactions from/to ReconHub.
Here you can find some help on getting started before implementing this.
Test access
This route can be used to test the access to the Sales API. An emtpy response with status 200 (OK) will be provided when authenticated and authorized successfully.
Authorizations:
query Parameters
customerId | string <uuid> Id of the customer. Note: Must only be provided if the user has access to multiple customers. If the user cannot be determined without providing the customerId, the request will be denied with status 401 (Unauthorized). |
tenantId | string <uuid> Id of the tenant. Note: Must only be provided if the user has access to multiple tenants. If the user cannot be determined without providing the tenantId, the request will be denied with status 401 (Unauthorized). |
Responses
Response samples
- 400
{ "errors": { "transactions[0].businessDate": [ "Error converting value \"2023-01-16xx\" to type 'System.Nullable`1[System.DateOnly]'. Path 'transactions[0].businessDate', line 10, position 34." ] }, "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400 }
Upload transactions
Upload sales transactions which will be processed by ReconHub.
The uploaded transactions will be staged to be imported in ReconHub use
For more details, please refer to Additional information.
Note: It is recommended to send transactions in batches instead of sending every transaction in an own request. An example would be to send 1000 transactions per request every hour instead of sending a request with 1 transaction every second. If this is an issue for you, please contact our support team.
Authorizations:
query Parameters
importConfigurationId | string <uuid> Id of the import configuration to use for the staging process. Note: Generally, the importConfigurationId is not required and must only be provided if a specific import configuration for transactions of this kind must be used. If a specific configuration must be used, please contact our support team. |
customerId | string <uuid> Id of the customer to upload data to. Note: Must only be provided if the user has access to multiple customers. If the user cannot be determined without providing the customerId, the request will be denied with status 401 (Unauthorized). |
tenantId | string <uuid> Id of the tenant to upload data to. Note: Must only be provided if the user has access to multiple tenants. If the user cannot be determined without providing the tenantId, the request will be denied with status 401 (Unauthorized). |
Request Body schema: application/json
Transactions to upload.
A maximum of 1000 transactions can be uploaded per request. Use multiple requests if you need to send more than 1000 transactions.
required | Array of objects (TransactionUpload) A list of transactions to upload. | ||||||||||||||||||||||||||||||||||||
Array
|
Responses
Request samples
- Payload
{- "transactions": [
- {
- "acquirerId": "WorldLine",
- "amount": 123.45,
- "applicationId": "A0000000041010",
- "authorisationCode": "XYZ123456789",
- "brandId": "MasterCard",
- "businessDate": "2023-09-19",
- "cardNumberMasked": "1234XXXXXXXXXXXX",
- "currency": "CHF",
- "eftTransactionDate": "2023-09-19T08:42:05+02:00",
- "locationId": "100900901",
- "orderId": "987654",
- "panEncrypted": "7823-1264-7835-9424",
- "terminalId": "90010001",
- "transactionDate": "2023-09-19T08:45:00+02:00",
- "transactionReference": "abcd1234",
- "transactionSequenceCounter": "1234567890",
- "transactionTypes": [
- "Chargeback",
- "Credit"
], - "additionalData": [
- {
- "key": "ExternalId",
- "value": "XXX000111"
}, - {
- "key": "AdditionalAmount",
- "value": "5.2",
- "type": "Decimal"
}
]
}, - {
- "acquirerId": "Concardis",
- "amount": 334.45,
- "applicationId": "A0000000042020",
- "authorisationCode": "XYZ123456789",
- "brandId": "Visa",
- "businessDate": "2023-09-20",
- "cardNumberMasked": "3241XXXXXXXXXXXX",
- "currency": "EUR",
- "eftTransactionDate": "2023-09-20T12:30:11+02:00",
- "locationId": "100900901",
- "orderId": "987655",
- "panEncrypted": "7823-1264-7835-9424",
- "terminalId": "90010001",
- "transactionDate": "2023-09-20T12:28:10+02:00",
- "transactionReference": "abcd1234",
- "transactionSequenceCounter": "1234567891",
- "transactionTypes": [
- "Chargeback",
- "Credit"
], - "additionalData": [
- {
- "key": "ExternalId",
- "value": "XXX000112"
}, - {
- "key": "AdditionalAmount",
- "value": "3.7",
- "type": "Decimal"
}
]
}
]
}
Response samples
- 200
- 400
- 404
{- "uploadId": "722fd2e4-caaf-462c-937f-7756caf3772f"
}
Get upload state
Get the state of a specific upload by providing the uploadId obtained by the
Authorizations:
path Parameters
uploadId required | string Id of the transaction upload. Is obtained when uploading transactions using the |
query Parameters
customerId | string <uuid> Id of the customer to retrieve the data from. Note: Must only be provided if the user has access to multiple customers. If the user cannot be determined without providing the customerId, the request will be denied with status 401 (Unauthorized). |
tenantId | string <uuid> Id of the tenant to retrieve the data from. Note: Must only be provided if the user has access to multiple tenants. If the user cannot be determined without providing the tenantId, the request will be denied with status 401 (Unauthorized). |
Responses
Response samples
- 200
- 400
- 404
{- "date": "2023-09-19T11:23:58+02:00",
- "status": "Processing",
- "summary": "string",
- "errors": [
- "string"
]
}
Get transactions
Query transactions in ReconHub. Provide filter, sorting and paging criterias in the request.
Authorizations:
query Parameters
customerId | string <uuid> Id of the customer to retrieve the data from. Note: Must only be provided if the user has access to multiple customers. If the user cannot be determined without providing the customerId, the request will be denied with status 401 (Unauthorized). |
tenantId | string <uuid> Id of the tenant to retrieve the data from. Note: Must only be provided if the user has access to multiple tenants. If the user cannot be determined without providing the tenantId, the request will be denied with status 401 (Unauthorized). |
terminalId | string Filters transactions by terminal id. |
brandId | string Filters transactions by brand id. |
currency | string Filters transactions by currency. |
amountFrom | number <double> Excludes transactions below the specified amount. |
amountTo | number <double> Excludes transactions above the specified amount. |
transactionDateFrom | string <date-time> yyyy-MM-ddTHH:mm:ssK Example: transactionDateFrom=2023-09-19T11:23:58+02:00 Excludes transactions created before the specified date. |
transactionDateTo | string <date-time> yyyy-MM-ddTHH:mm:ssK Example: transactionDateTo=2023-09-19T11:23:58+02:00 Excludes transactions created after the specified date. |
transactionState | string (TransactionState) Enum: "Unprocessed" "Processed" Filters transactions by the transaction state. |
transactionMatchState | string (TransactionMatchState) Enum: "NotApplicable" "Unmatched" "Match" "Skip" Filters transactions by the transaction match state. |
uploadId | string Filters transactions by the operation id. |
pageSize | integer <int32> [ 1 .. 500 ] Default: 30 Limits the maximum number of items that can be returned. The value can range between 1 and 500. |
pageNumber | integer <int32> [ 1 .. 2147483647 ] Page number. |
sorting.key | string (TransactionListSortKey) Enum: "TransactionDate" "Amount" Sorting key. |
sorting.direction | string (ListSortDirection) Enum: "Ascending" "Descending" Sorting direction. |
Responses
Response samples
- 200
- 400
{- "items": [
- {
- "transactionId": "e88e0db7-4fd9-47b4-b2e9-1a7f81ea980d",
- "transactionState": "Processed",
- "transactionMatchState": "Match",
- "transactionTypes": [
- "Chargeback",
- "Credit"
], - "acquirerId": "WorldLine",
- "amount": 123.45,
- "applicationId": "A0000000041010",
- "authorisationCode": "XYZ123456789",
- "brandId": "Visa",
- "businessDate": "2023-09-19",
- "cardNumberMasked": "1234XXXXXXXXXXXX",
- "currency": "CHF",
- "eftTransactionDate": "2023-09-19T08:42:05+02:00",
- "locationId": "100900901",
- "orderId": "987654",
- "panEncrypted": "7823-1264-7835-9424",
- "terminalId": "90010001",
- "transactionDate": "2023-09-19T08:45:00+02:00",
- "transactionReference": "abcd1234",
- "transactionSequenceCounter": "1234567890"
}
], - "hasMore": true
}
Get transaction by id
Get the details of a specific transaction.
Authorizations:
path Parameters
id required | string <uuid> Id of transaction. |
query Parameters
customerId | string <uuid> Id of the customer to retrieve the data from. Note: Must only be provided if the user has access to multiple customers. If the user cannot be determined without providing the customerId, the request will be denied with status 401 (Unauthorized). |
tenantId | string <uuid> Id of the tenant to retrieve the data from. Note: Must only be provided if the user has access to multiple tenants. If the user cannot be determined without providing the tenantId, the request will be denied with status 401 (Unauthorized). |
Responses
Response samples
- 200
- 400
- 404
{- "additionalData": [
- {
- "key": "ExternalId",
- "value": "XXX000111"
}, - {
- "key": "AdditionalAmount",
- "value": "5.2",
- "type": "Decimal"
}
], - "comment": "This is a comment",
- "transactionId": "e88e0db7-4fd9-47b4-b2e9-1a7f81ea980d",
- "transactionState": "Processed",
- "transactionMatchState": "Match",
- "transactionTypes": [
- "Chargeback",
- "Credit"
], - "acquirerId": "WorldLine",
- "amount": 123.45,
- "applicationId": "A0000000041010",
- "authorisationCode": "XYZ123456789",
- "brandId": "MasterCard",
- "businessDate": "2023-09-19",
- "cardNumberMasked": "1234XXXXXXXXXXXX",
- "currency": "CHF",
- "eftTransactionDate": "2023-09-19T08:42:05+02:00",
- "locationId": "100900901",
- "orderId": "987654",
- "panEncrypted": "7823-1264-7835-9424",
- "terminalId": "90010001",
- "transactionDate": "2023-09-19T08:45:00+02:00",
- "transactionReference": "abcd1234",
- "transactionSequenceCounter": "1234567890"
}