Отримання інформації про платежі
Після того, як платежі було проведено, ви можете отримати інформацію про них з таким рівнем конкретизації:
- Інформація про конкретну транзакцію в межах одного замовленням.
- Інформації про всі транзакції конкретного замовлення.
- Інформація про всі транзакції, що мали місце за певний період часу.
- Реєстр транзакцій у JSON-форматі.
Інформація щодо транзакції
Для отримання інформації про конкретну транзакцію в межах одного замовлення необхідно сформувати запит з HTTP-методом GET та таким набором параметрів:
| Parameter | Type | Required | Description | 
|---|---|---|---|
| POS_ID | UUID | ✅ | Merchant's identifier ( POS_ID) | 
| ORDER_ID | String | ✅ | Merchant's order identifier | 
| OPERATION | String | ✅ | Payment method, e.g. purchase,void, etc. | 
Приклад запиту на отримання інформації про транзакцію:
$ curl "https://cpay.tranzzo.com/api/v1/pos/${POS_ID}/orders/${ORDER_ID}/${OPERATION}" \
    -H "X-API-AUTH: CPAY ${API_KEY}:${API_SECRET}" \
    -H "X-API-KEY: ${ENDPOINTS_KEY}"
Інформація щодо замовлення або підписки на регулярні платежі
Якщо потрібно отримати  інформацію про всі транзакції в межах певного замовлення (ORDER_ID) необхідно сформувати запит з HTTP-методом GET та таким набором параметрів:
| Parameter | Type | Required | Description | 
|---|---|---|---|
| POS_ID | String | ✅ | Merchant's identifier ( POS_ID) | 
| ORDER_ID | String | ✅ | Merchant's order identifier | 
Приклад запиту на отримання інформації про всі транзакції замовлення:
$ curl "https://cpay.tranzzo.com/api/v1/pos/${POS_ID}/orders/${ORDER_ID}" \
    -H "X-API-AUTH: CPAY ${API_KEY}:${API_SECRET}" \
    -H "X-API-KEY: ${ENDPOINTS_KEY}"
Відповідь на такий запит буде містити масив транзакцій, що пов’язані з відповідним замовленням.
Приклад відповіді за двостадійними платежами:
[
  {
    "payment_id":          "c4939398-1dad-4b92-1c34-7f6802379180",
    "order_id":            "111999991",
    "gateway_order_id":    "6320ac9a-aaaa-4912-adb3-5bca2dd560fe",
    "billing_order_id":    "123",
    "transaction_id":      "4f98dc46-ffff-4ba7-a267-286fe7669894",
    "pos_id":              "6eb070d5-7fbe-1176-9488-c152b60dd346",
    "mode":                "direct",
    "method":              "auth",
    "amount":              0.28,
    "currency":            "UAH",
    "payway":              "privat24",
    "eci":                 "7",
    "status":              "success",
    "status_code":         "1000",
    "status_description":  "Transaction is successful.",
    "cc_mask":             "424242******4242",
    "cc_token":            "N2U0ZWExZjU5ZDEzNDqkZjg2YjBaOGYdN2VgZWFcOTYaT2FBaFBUekt6R3hzeDBPU2hO",
    "cc_token_expiration": "2020-10-10T10:10:22",
    "customer_id":         "123",
    "customer_phone":      "+380999999999",
    "created_at":          "2018-10-10T10:10:10.100",
    "processing_time":     "2018-10-10T10:10:22.100",
    "payload":             "",
    "bank_short_name":     "Bank name"
  },
  {
    "operation_id":          "edf7605c-99a8-43be-a1a5-2e96ebac8512",
    "payment_id":          "c4939398-1dad-4b92-1c34-7f6802379180",
    "order_id":              "123",
    "transaction_id":      "4f98dc46-ffff-4ba7-a267-286fe7669894",
    "pos_id":                "6eb070d5-7fbe-1176-9488-c152b60dd346",
    "mode":                  "direct",
    "method":                "capture",
    "amount":                100,
    "currency":              "UAH",
    "status":                "success",
    "status_code":         "1000",
    "status_description":  "Transaction is successful.",
    "created_at":          "2018-10-10T10:11:11.100",
    "processing_time":     "2018-10-10T10:11:12.000"
  }
]
Приклад відповіді за регулярними платежами:
{
  "payment_id":           "9b1392a5-d030-4e85-b02d-9b7191ea2a5e",
  "order_id":             "123",
  "gateway_order_id":     "9B39A076243EB3EBB0925EAA981763AC:158545961",
  "billing_order_id":     "11231231231",
  "transaction_id":       "a8d80c86-0c7b-41bc-b63d-1e78f80edcd9",
  "pos_id":               "dc728de1-51ef-4ef1-80f7-3b44b07b5667",
  "mode":                 "direct",
  "method":               "purchase",
  "amount":               1,
  "currency":             "UAH",
  "description":          "Order description",
  "status":               "success",
  "status_code":          "1000",
  "status_description":   "Transaction is successful",
  "user_action_required": true,
  "user_action_url":      "http://secure.secure3d.net/s3st?a=start_3ds&tid=a8d81c860c7b41bcb65d1e78f80edcd923ac18d5dd1d4a37e6c7df7d5e4bec74ab5d790b",
  "eci":                  "7",
  "mcc":                  "4900",
  "options_3ds":          "supported",
  "cc_mask":              "424242******4242",
  "cc_token":             "ODJkZjBhNmY2OTMyNDJlN2wjMjFjfTQzOXU3ZDFhYzI6cWJmWHFmMHlzM3hYaXJMWEZv",
  "cc_token_expiration":  "2020-10-10T10:10:22",
  "customer_id":          "123",
  "customer_ip":          "194.183.171.239",
  "customer_fname":       "Tom",
  "customer_lname":       "Hanks",
  "customer_email":       "[email protected]",
  "customer_phone":       "+380999999999",
  "customer_country":     "UA",
  "recurring": {
     "id": "r7dAMIRmS~3nCiHVFpSC8",
     "status": "init"
  },
  "result_url":           "https://example.com/result",
  "created_at":           "2023-09-14T14:08:13.509",
  "processed_at":         "2023-09-14T14:08:16.112",
  "payload":              "sale=true",
  "bank_short_name":      "Bank name"
}
Аналогічно можна отримати інформацію про транзакції за підпискою на регулярні платежі. Для цього треба відправити GET-запит до ендпоїнту /api/v1/pos/:posId/recurring/:recurringId, де recurringId - унікальний ID підписки.
До запиту також можуть входити такі query-параметри:
| Parameter | Required | Description | 
|---|---|---|
| method | ✅ | Payment methods (only purchaseorrefundvalue is accepted) | 
| status | ✅ | Transaction status | 
Інформація про транзакції за певний період
Для отримання інформації про всі транзакції, що було проведено за певний період часу, необхідно сформувати запит з HTTP-методом GET та таким набором параметрів:
Path-параметри:
| Parameter | Type | Required | Description | 
|---|---|---|---|
| POS_ID | UUID | ✅ | Merchant's identifier ( POS_ID) | 
Query-параметри:
| Parameter | Type | Required | Description | 
|---|---|---|---|
| startDate | Number | ✅ | Time from - UNIX timestamp | 
| enddate | Number | ✅ | Time to - UNIX timestamp | 
Приклад запиту:
$ curl "https://cpay.tranzzo.com/api/v1/pos/${POS_ID}/transactions?startDate=${startDate}&enddate=${enddate}" \
    -H "X-API-AUTH: CPAY ${API_KEY}:${API_SECRET}" \
    -H "X-API-KEY: ${ENDPOINTS_KEY}"
Дата у запиті має бути у форматі Unix time. Наприклад:
/api/v1/pos/${POS_ID}/transactions?startDate=1670120382000&enddate=1683721382000
Відповідь на такий запит буде містити масив транзакцій за вказаний період.
Приклад відповіді:
{"projectId":"2a810802-d3ac-4aad-b4c7-74c54cba628e","orderId":"630428489","paymentId":"84f32e8c-6919-49c5-8353-25f6f7c4f371","amount":"1.00","currency":"UAH","method":"purchase","status":"pending","dateTime":"","authCode":"","rrnCode":"","description":"test description","payload":"","customerFee":"0.00","merchantFee":"1.07","paymentSystem":"","recipientCardMask":""}
{"projectId":"2a810802-d3ac-4aad-b4c7-74c54cba628e","orderId":"288558688","paymentId":"620694b9-8e49-42b7-b3cb-950b80529861","amount":"1.00","currency":"UAH","method":"purchase","status":"failure","dateTime":1683646963767,"authCode":"","rrnCode":"","description":"test description","payload":"","customerFee":"0.00","merchantFee":"1.07","paymentSystem":"VISA","recipientCardMask":""}
{"projectId":"2a810802-d3ac-4aad-b4c7-74c54cba628e","orderId":"1369031473","paymentId":"5ee8fb17-f0ec-4e2f-823f-8ffa205f0d7b","amount":"1.00","currency":"UAH","method":"purchase","status":"success","dateTime":1683646725585,"authCode":"","rrnCode":"4428573","description":"test description","payload":"","customerFee":"0.00","merchantFee":"1.07","paymentSystem":"DISCOVER","recipientCardMask":""}
Реєстр транзакцій у JSON-форматі
За необхідності можна отримати реєстр JSON форматі з транзакціями, відфільтрованиим за часом, статусом та методом. Реєстр міститиме вказані у запиті деталі кожного платежу.
Для формування реєстру транзакцій необхідно сформувати запит з HTTP-методом POST та таким набором параметрів:
| Parameter | Required | Description | 
|---|---|---|
| project_id | ✅ | Merchant's identifier ( POS_ID) | 
| start_date | ✅ | The start date of the period for which the data is required | 
| end_date | ✅ | Period end date. The maximum period is 31 days | 
| statuses | Array of Transaction status | |
| methods | Payment methods ( auth,purchase,capture,void,p2p,credit,lookup,refund,dispute,recurrent) | |
| transaction_details | Array field with the parameters that are received for each of the transactions in report | 
Окрім того, для такого реєстру можна задати конкретний набір параметрів деталей платежу, які ви бажаєте отримати:
| Parameter | Default | Description | 
|---|---|---|
| orderId | ✅ | Merchant's order identifier to be captured | 
| paymentId | ✅ | Tranzzo payment identifier of primary operation | 
| amount | ✅ | Transaction amount with fees applied | 
| currency | ✅ | Transaction currency | 
| method | ✅ | Payment methods | 
| status | ✅ | Transaction status | 
| dateTime | ✅ | Transaction date | 
| cardMask | ✅ | Сard mask | 
| payway | ✅ | Payway name | 
| customerFee | ✅ | Customer fee | 
| merchantFee | ✅ | Merchant fee | 
| entityName | Entity name | |
| projectName | Project name | |
| originalAmount | Transaction amount with no fees applied | |
| exchangeAmount | Exchange amount | |
| exchangeCurrency | Exchange currency | |
| exchangeRate | Exchange rate | |
| tokenizationKind | Tokenization kind | |
| authCode | Transaction authentication code | |
| rrnCode | RRN code | |
| description | Transaction description | |
| payload | Field for custom data | |
| paymentSystem | Payment system | |
| recipientCardMask | Recipient's card mask | |
| reserveAmount | Rolling reserve amount | |
| receiverName | Name of sub merchant in split transaction | |
| receiverAmount | Amount paid to sub merchant in split transaction | |
| receiverFee | Fee amount paid by sub merchant in split transaction | 
Зверніть увагу, якщо ви не включите до запиту перелік параметрів, інформація за якими має бути в реєстрі транзакцій, то реєстр буде сформовано з тими параметрами, що відмічені за замовчуванням.
Отримання реєстру транзакцій відбувається у два етапи:
- Запит на отримання ідентифікатору згенерованого реєстру.
- Запит на отримання самого реєстру у форматі JSON з використанням попередньо отриманого ідентифікатора.
Приклад запиту на формування реєстру транзакцій:
$ curl --location --request POST 'https://api.tranzzo.com/streaming-report/start' \
--header 'X-API-Auth:CPAY 28e957dc-aff7-4575-bd0f-739ec9bc77ee:UnE2Tmc4N0FnVm1JMmxHcGRIdmJ4aHZq' \
--header 'Content-Type: application/json' \
--data-raw '{
    "project_id": "064ec3f8-8abb-414b-9eb3-49d977213967",
    "start_date": "2022-09-01T12:00:03.007+00:00",
    "end_date": "2022-09-30T23:58:03.007+00:00",
    "statuses": [ "success", "pending", "failure", "init" ],
    "methods": [
        "purchase",
        "auth",
        "capture",
        "void",
        "p2p",
        "credit",
        "lookup",
        "refund",
        "dispute"
        ],
    "transaction_details": [
       "projectId",
       "orderId",
       "paymentId",
       "amount",
       "currency",
       "method",
       "status",
       "dateTime",
       "cardMask",
       "payway",
       "entityName",
       "projectName",
       "originalAmount",
       "exchangeAmount",
       "exchangeCurrency",
       "exchangeRate",
       "tokenizationKind",
       "authCode",
       "rrnCode",
       "description",
       "payload",
       "customerFee",
       "merchantFee",
       "paymentSystem",
       "recipientCardMask"
    ]
}'
Параметри відповіді:
| Parameter | Description | 
|---|---|
| report_id | JSON file identifier | 
| count | number of records (transactions) | 
Приклад відповіді:
{"report_id":"57e79df2-b374-4998-9b0e-ac7848760bed","count":384}
Приклад відповіді у випадку, коли реєстр ще не сформовано:
{
  "message": "Report not ready",
  "code": "report_not_ready"
}
Для отримання сформованого реєстру транзакцій у JSON-форматі необхідно відправити запит з HTTP-методом GET з отриманим ідентифікатором реєстру report_id.
Приклад запиту:
$ curl --location --request GET 'https://api.tranzzo.com/streaming-report/fetch/57e79df2-b374-4998-9b0e-ac7848760bed'
--header 'X-API-Auth:CPAY 28e957dc-aff7-4575-bd0f-739ec9bc77ee:UnE2Tmc4N0FnVm1JMmxHcGRIdmJ4aHZq'
Відповідь на запит буде містити JSON з кількістю записів, що дорівнює отриманому у параметрі count значенню. Кожен запис містить набір параметрів, вказаних при формуванні реєстру транзакцій, або параметрів за замовчуванням.
Приклад відповіді:
{"projectId":"064ec3f8-8abb-414b-9eb1-49d977213999","orderId":"1456649508235","paymentId":"b2dc0fb9-2de4-4a30-9447-088ce415fb58","amount":"3","currency":"UAH","method":"void","status":"success","dateTime":1662033684016,"cardMask":"414141******2284","payway":"applepay","entityName":"","projectName":"Project","originalAmount":"3","exchangeAmount":"0.00","exchangeCurrency":"","exchangeRate":"0.00","tokenizationKind":"","authCode":"238530","rrnCode":"003561423521","description":"description","payload":"","customerFee":"0.00","merchantFee":"0.00","paymentSystem":"MASTERCARD","recipientCardMask":""}
{"projectId":"064ec3f8-8abb-414b-9eb1-49d977213988","orderId":"1456649508236","paymentId":"b2dc0fb9-2de4-4a30-9447-088ce415fb51","amount":"2","currency":"UAH","method":"auth","status":"success","dateTime":1662033684916,"cardMask":"537541******2284","payway":"gpay","entityName":"","projectName":"Project","originalAmount":"2","exchangeAmount":"0.00","exchangeCurrency":"","exchangeRate":"0.00","tokenizationKind":"","authCode":"238530","rrnCode":"003561423521","description":"description","payload":"","customerFee":"0.00","merchantFee":"0.00","paymentSystem":"MASTERCARD","recipientCardMask":""}
{"projectId":"064ec3f8-8abb-414b-9eb2-49d977213967","orderId":"1456649508238","paymentId":"b2dc0fb9-2de4-4a30-9447-088ce415fb50","amount":"1","currency":"UAH","method":"purchase","status":"success","dateTime":1662033680916,"cardMask":"537541******1184","payway":"cc","entityName":"","projectName":"Test Project","originalAmount":"1","exchangeAmount":"0.00","exchangeCurrency":"","exchangeRate":"0.00","tokenizationKind":"","authCode":"238530","rrnCode":"003561423521","description":"test qa","payload":"","customerFee":"0.00","merchantFee":"0.00","paymentSystem":"MASTERCARD","recipientCardMask":""}