{"info":{"_postman_id":"35bca5ca-f5f0-47bd-ac9f-e78d0a5a0946","name":"(Kyrrex Pay)old","description":"<html><head></head><body><p>Learn how to integrate Kyrrex pay products. Here you can explore our guides and examples.</p>\n<h3 id=\"authentication\">Authentication</h3>\n<p>Our API uses token-based authentication to ensure secure access. Each request must include a valid token in the header.</p>\n<h3 id=\"request-format\">Request Format</h3>\n<p>Requests to our API should be made using standard HTTP methods, such as GET, POST, and DELETE. Each endpoint details the required method, parameters, and possible responses.</p>\n<h3 id=\"response-format\">Response Format</h3>\n<p>Our API responses are formatted in JSON, providing a clear and consistent structure for handling data. Each endpoint's documentation includes examples of successful responses and potential error messages.</p>\n<h3 id=\"error-handling\">Error Handling</h3>\n<p>In case of errors, the API will return appropriate HTTP status codes along with a message describing the error. Common error codes include:</p>\n<ul>\n<li><p>400 Bad Request: The request was invalid or cannot be served.</p>\n</li>\n<li><p>401 Unauthorized: Authentication failed or user does not have permissions for the desired action.</p>\n</li>\n<li><p>404 Not Found: The requested resource could not be found.</p>\n</li>\n<li><p>500 Internal Server Error: An error occurred on the server.</p>\n</li>\n</ul>\n<h3 id=\"getting-help\">Getting help</h3>\n<p>If you have any problems or questions, feel free to write to <a href=\"https://mailto:kpay@kyrrex.com\">kpay@kyrrex.com</a>. We will answer all your questions as quickly as possible.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"42711896","collectionId":"35bca5ca-f5f0-47bd-ac9f-e78d0a5a0946","publishedId":"2sAYdkJUnX","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-08-01T09:09:06.000Z"},"item":[{"name":"High Level User Flow","item":[],"id":"e5b7b97b-07d6-4e7a-b433-d9bd22cbc19c","description":"<ol>\n<li><p>Merchant registers in KyrrexPay-system</p>\n</li>\n<li><p>Merchant reaches \"Advanced\" verification status by KyrrexPay security checks passing</p>\n</li>\n<li><p>Merchant configurates business-account (receiving assets, auto-сonvertion settings, underpayment limits, default asset, auto-witdhrawals (API only) and default fee-payee)</p>\n</li>\n<li><p>Merchant creates an invoice</p>\n</li>\n<li><p>Merchant gives invoice-link to client</p>\n</li>\n<li><p>Client fills invoice with client's email and selects asset to be used for payment (if it's not pre-defined by a merchant)</p>\n</li>\n<li><p>Client sees the payment amount, fees and deposit address</p>\n</li>\n<li><p>Client pays the invoice from a 3-rd party side (Binance, Bybit, blockchain-transaction, etc.)</p>\n</li>\n<li><p>Merchant receives payment with correct amount or lower than expected but in range of underpayment limit<br /> - (invoice is \"Done\")<br /> 9.1.1 Merchant receives payment with amount lower than expected<br /> - (invoice is \"Wrong\")<br /> 9.1.2 Merchant accepts payment for a \"Wrong\"-status invoice<br /> - (invoice is \"Done\")<br /> 9.1.3 Merchant declines payment for a \"Wrong\"-status invoice<br /> - (webhook \"Refunded\")<br /> 9.2.1 Merchant receives payment with amount higher than expected<br /> - (invoice is \"Done\" with \"Overpayment\" mark)</p>\n</li>\n<li><p><em>(optionally) Merchant swaps received amount to any supported asset</em></p>\n</li>\n<li><p>Merchant withdwars assets to desirable 3-rd party side (Binance, Bybit, blockchain-transaction, etc.)</p>\n</li>\n<li><p><em>(optionally) Merchant reaches \"Enhanced\" verification status by SumSub KYB checks passing</em></p>\n</li>\n<li><p><em>(optionally) Merchant adds his fiat-requisites into the system</em></p>\n</li>\n<li><p><em>(optionally) Merchant withdraws assets to his added fiat-requisites with crypto-fiat swapping on the backend-side</em></p>\n</li>\n</ol>\n","_postman_id":"e5b7b97b-07d6-4e7a-b433-d9bd22cbc19c"},{"name":"Merchant Platform Overview","item":[{"name":"\"Dashboard\" page","item":[],"id":"b8da3a60-b504-4e01-bdf7-290c1d96b2f2","description":"<p>On the dashboard page user can see the primary operable information about his company and personal account operations functionality.<br />There will be the following:</p>\n<ul>\n<li><p>Revenue amounts and Transactions quantity charts</p>\n</li>\n<li><p>Total company balance</p>\n</li>\n<li><p>Invoice creation button</p>\n</li>\n<li><p>\"Exchange\"-button for assets swapping</p>\n</li>\n<li><p>\"Withdraw\"-button for assets withdrawing</p>\n</li>\n<li><p>Account settings link</p>\n</li>\n<li><p>API Keys link</p>\n</li>\n<li><p>LIst of company assets with available balances</p>\n</li>\n</ul>\n<p>User can select what chat should be displayed by using \"Revenue\"/\"Transactions\" selector.</p>\n<p>\"Revenue\" chart will display total company revenue for selected period, asset and invoice-type and will display it's via graphical view in more detail.</p>\n<p>\"Transactions\" chart will display total company invoices quantity for selected period and invoice-type and will display it via graphical view in more detail.</p>\n<p>User also can proceed to swapping functionality page and assets withdrawal funcitonality page by clicking on the corresponding buttons.<br />User can proceed to invoice creation options by clicking on the invoice cretaion button and see ivnoice-types dropdown expanded.<br />User can proceed to account settings and retrieve API Keys in a fast way by clicking on the corresponding buttons.<br />User can see the list of company assets, their balances and their USDT-equivalent as well.<br />User also can execute the desirable asset swaping or withdrawal by clicking on it's corresponding buttons.</p>\n","_postman_id":"b8da3a60-b504-4e01-bdf7-290c1d96b2f2"},{"name":"\"Invoices\" page","item":[],"id":"b954b421-beb1-4d79-b2ed-e4ee0192559d","description":"<p>Users with admin and accountant rights have full-access to 'Invoices' page functionality and can see, filter and export invoice history into CSV-reports. They also can create new invoices.</p>\n<p>Users with manager and support rights have access to see all invoices history, create new invoices and filter them. They also cannot export invoices into CSV-report</p>\n<p>User also can see the invoices list and the their following information on the page:</p>\n<ul>\n<li><p>invoices quantity</p>\n</li>\n<li><p>payment ID (internal ID for invoice tracking)</p>\n</li>\n<li><p>Client Email (invoice's payee email)</p>\n</li>\n<li><p>Invoice amount (amount that is expected for invoice ot be received)</p>\n</li>\n<li><p>Received amount (amount that was actually received for invoice from a client)</p>\n</li>\n<li><p>Date and time (invoice creation date and time)</p>\n</li>\n<li><p>Status</p>\n</li>\n</ul>\n<p>Status can be the following:</p>\n<p>-'Created' - for invoices that were created, but client's email is not provided (<em>optionally: and payment method is not selected)</em></p>\n<p>-'Pending' - for created invoices with alreadyentered client's email and assigned payment method</p>\n<p>-‘Processing’ - for invoices that has started deposit receiving and blockchain transaction completion is waiting</p>\n<p>-'Done' - for fully paid invoices, for invoices with payment lower than expected but in range of underpayment-limit, for invoices with overpayment, for previously \"Wrong\"-invoices that were accepted</p>\n<p>-'Wrong' - for invoices paid with amount lower than expected and/or lower than underpayment-limit</p>\n<p>-'Refunded' - for previously \"Wrong\"-invoices that were declined</p>\n<p>-'Closed' - for expired invoices</p>\n<p>User can also open invoice's additional info page and see the following elements there:</p>\n<ul>\n<li><p>Invoice expected amount/received amount comparison display</p>\n</li>\n<li><p>Client's email-address</p>\n</li>\n<li><p>Invoice status</p>\n</li>\n<li><p>Invoice ID</p>\n</li>\n<li><p>Invoice content (list of items with their prices)</p>\n</li>\n<li><p>Invoice amount (expected)</p>\n</li>\n<li><p>Received amount (net)</p>\n</li>\n<li><p>Invoice transactions list with their details:</p>\n<ul>\n<li><p>Type (Deposit, Fees, Autoswap)</p>\n</li>\n<li><p>Amount (transaction's volume)</p>\n</li>\n<li><p>Transaction's date and time</p>\n</li>\n<li><p>Transaction's status</p>\n</li>\n</ul>\n</li>\n<li><p>Invoice transactions table</p>\n</li>\n<li><p>Invoice details:</p>\n<ul>\n<li><p>Invoice creation date and time</p>\n</li>\n<li><p>Invoice completion date and time</p>\n</li>\n<li><p>Invoice Type</p>\n</li>\n</ul>\n</li>\n<li><p>Button for client-oriented invoice-link copying</p>\n</li>\n</ul>\n<p>User can copy the invoice's URL and use it to resend to the end-user client.</p>\n<p>User is able to see the invoice's transaciton details by expanding it's details-section. The following information will be provided:</p>\n<ul>\n<li><p>For \"Deposit\" type:</p>\n<ul>\n<li><p>Invoice currency amount (to bring the understanding of invoice currency transaction volume regarding the payment currency)</p>\n</li>\n<li><p>Rate (to understand the calculation rate for the \"Invoice currency amount\")</p>\n</li>\n<li><p>Service transaction ID (if smth will go wrong with your deposit - we'll have ability to help you)</p>\n</li>\n<li><p>Hash (to track deposit on blockchain-side)</p>\n</li>\n<li><p>Receiver (your invoice address)</p>\n</li>\n</ul>\n</li>\n<li><p>For \"Fees\" type:</p>\n<ul>\n<li><p>Invoice currency amount (to bring the understanding of invoice currency transaction volume regarding the payment currency)</p>\n</li>\n<li><p>Rate (to understand the calculation rate for the \"Invoice currency amount\")</p>\n</li>\n</ul>\n</li>\n<li><p>For \"Autoswap\" type:</p>\n<ul>\n<li><p>Rate (to understand the swapping rate)</p>\n</li>\n<li><p>Service transaction ID (if smth will go wrong with your swap - we'll have ability to help you)</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Invoices filtering and CSV-export</strong></p>\n<p>User can also see the filtering and export buttons above the invoices list.</p>\n<p>User can filter invoices list by clicking on the filters-button.<br />Filtering is available by the following points:</p>\n<ul>\n<li><p>Searching by Invoice ID or client's email</p>\n</li>\n<li><p>Date-range (\"from\" datepicker - \"to\" datepicker)</p>\n</li>\n<li><p>Currency</p>\n</li>\n<li><p>Status</p>\n</li>\n</ul>\n<p>User can export invoices history by clicking on the export-button and will be redirected to export's modal window to select the date-frames for which transactions should be exported. Date-frames can be entered manually or via datepicker.<br />Datepicker has both calendar-view date-picker and pre-defined timeframe presets.</p>\n<p>Data will be exported into the CSV-formatted file and will contain the following info:</p>\n<ul>\n<li><p>Invoice ID</p>\n</li>\n<li><p>Client email</p>\n</li>\n<li><p>Invoice Currency</p>\n</li>\n<li><p>Payment Currency</p>\n</li>\n<li><p>Invoice Amount</p>\n</li>\n<li><p>Payment Amount</p>\n</li>\n<li><p>Status</p>\n</li>\n<li><p>Type</p>\n</li>\n<li><p>Date</p>\n</li>\n<li><p>Link</p>\n</li>\n<li><p>Items &amp; prices.</p>\n</li>\n</ul>\n","_postman_id":"b954b421-beb1-4d79-b2ed-e4ee0192559d"},{"name":"\"Transactions\" page","item":[],"id":"079bd5e3-d24f-442c-885e-d5aaac0eff91","description":"<p><strong>Outcoming transactions</strong></p>\n<p>User with full-access rights can see the info abount outcoming transactions by proceeding on the Transactions page. The following information can be seen:</p>\n<ul>\n<li><p>transactions quantity</p>\n</li>\n<li><p>transaction ID</p>\n</li>\n<li><p>Type (Withdrawal, swap, autoswap)</p>\n</li>\n<li><p>Currency (for swaps it's from-currency)</p>\n</li>\n<li><p>Amount (for swaps it's from-amount)</p>\n</li>\n<li><p>Date and time</p>\n</li>\n<li><p>Status</p>\n</li>\n<li><p>Status can be the following:<br />  - 'Processing' for transaction that is in progress<br />  - 'Done' for finished transactions<br />  - 'Expired' for transaction that is stucked on blockchain-side</p>\n</li>\n</ul>\n<p>User can also expand additional info section and see the following elements there:</p>\n<ul>\n<li><p>For withdrawals:</p>\n<ul>\n<li><p>link to hash on the blockscan-side</p>\n</li>\n<li><p>Sender wallet address</p>\n</li>\n<li><p>Receiver wallet address</p>\n</li>\n</ul>\n</li>\n<li><p>For swaps:</p>\n<ul>\n<li><p>Swap to currency</p>\n</li>\n<li><p>Swap amount (amount received after the swap-operation)</p>\n</li>\n<li><p>Average swap rate</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>User can also see the \"Repeat transaction\" button for each transaction details section. With it's click user can proceed to withdrawal or swap page regarding to transaction type and see asset(s) and amount are predefined with previous transaction data.</p>\n","_postman_id":"079bd5e3-d24f-442c-885e-d5aaac0eff91"},{"name":"\"Settings\" page","item":[{"name":"\"Profile\" tab","item":[],"id":"c70a1b1f-76fe-45ca-9b49-473cee6a9bed","description":"<p>- current admin's account info<br />- beneficial owner info<br />- company's Contact person info<br />- Business company's info<br />- Business address company's info</p>\n<p>User can edit info on the 'Profile' tab (TBD) by clicking on the corresponding sub-section pencil-button. After that user will see the form with seb-section fields. After edits entering and form submitting updated info will be applied for company.<br />User also can copy his own account ID by clicking on the corresponding button in the 'Account' sub-section</p>\n<p>User can set what assets should be available for clients to set as payment asset for their invoice.<br />To do that user just need to activate/deactivate checkboxes on the 'Accept Tokens' sub-section on the 'Project' tab.<br />Income payments auto-convertation into USDT can also be enabled by activating/deactivating toggle-buttons.</p>\n<p>User can copy public and private tokens to use them for system integration with client's services. (e.g. invoice creation procedure.<br />Tokens can be seen/hide as needed by clicking on the corresponding eye-buttons near them.</p>\n<p>User can also set webhook URL by entering it into the 'Webhook URL' field and confirming it's adding via 'Save' button.</p>\n<p>User can see all company's employees on the 'Permisions' tab.<br />All users corresponding roles are displayed in the 'Role' column:<br />- Manager<br />- Accountant<br />All users statuses are displayed in the 'Status' column:<br />- 'Active' for invited user who acivated his account<br />- 'Inactive' for invited user who hasn't acivated his account<br />- (other statuses TBD...)<br />User can copy any company user's ID by clicking on the corresponding button near desired ID.<br />User also can create new user for his company.</p>\n","_postman_id":"c70a1b1f-76fe-45ca-9b49-473cee6a9bed"},{"name":"\"Tokens\" tab","item":[],"id":"a90d4232-6d21-46b2-bdf9-6bde31fa345d","description":"<p>Users with Admin rights can access the API-settings page by clicking on the \"Tokens\" tab ot the Settings page.<br />They also can access this page by clicking on the 'API Key' button on the Dashboard page.</p>\n","_postman_id":"a90d4232-6d21-46b2-bdf9-6bde31fa345d"},{"name":"\"Payment\" tab","item":[],"id":"dcc750a2-ab3c-476a-b5ae-85fbe8e17b62","description":"<p>Users with Admin rights can access the payment-settings page by clicking on the corresponding tab ot the Settings page.<br />They also can access this page by clicking on the 'Account Settings' button on the Dashboard page.</p>\n<p>- tokens accepted by company via invoices<br />- tokens convertation into USDT for invoice incoming payments<br />- public and private tokens<br />- invoice-logs receiving webhook settings</p>\n","_postman_id":"dcc750a2-ab3c-476a-b5ae-85fbe8e17b62"},{"name":"\"Security\" tab","item":[],"id":"d586361f-f4fd-4ad1-8fbc-2377628afdb9","_postman_id":"d586361f-f4fd-4ad1-8fbc-2377628afdb9","description":""},{"name":"\"Employees\" tab","item":[],"id":"f5e9dc1c-2407-4ab7-8100-eea9282fc85a","_postman_id":"f5e9dc1c-2407-4ab7-8100-eea9282fc85a","description":""},{"name":"\"Notifications\" tab","item":[],"id":"7084dec5-5cd6-446d-bc42-16ece896fadb","_postman_id":"7084dec5-5cd6-446d-bc42-16ece896fadb","description":""}],"id":"661fa7c2-c1a0-4adc-9a2c-f63bb30cd483","description":"<p>Users with Admin rights can access the company Settings page by clicking on the corresponding button at the page header.</p>\n<p>Page allows to see and manage settings for company Profile, company users Permissions and tools for company interaction with other services. These settings can be found in corresponding tabs on the Settings page:</p>\n<ul>\n<li><p>'Profile' tab - company appearance, contacts and legal status settings.</p>\n</li>\n<li><p>'Tokens' tab - tools for company interaction with other services by API.</p>\n</li>\n<li><p>'Payment' tab - company incoming financial operations settings</p>\n</li>\n<li><p>'Security' tab - tools for current user's account protection</p>\n</li>\n<li><p>'Employees' tab - functionality for company employees adding and management</p>\n</li>\n<li><p>'Notifications' tab - operational email-notifications settings</p>\n</li>\n</ul>\n","_postman_id":"661fa7c2-c1a0-4adc-9a2c-f63bb30cd483"}],"id":"018341c3-c738-472b-b0f2-ab74b6a51ce8","_postman_id":"018341c3-c738-472b-b0f2-ab74b6a51ce8","description":""},{"name":"Invoice Creation and Processing","item":[{"name":"Regular invoice creation","item":[],"id":"a7d9b93c-3792-4ed6-a9bc-0b16595db72c","description":"<p>After merchant side user selected \"Regular invoice\" as invoice type to be created, the corresponding page is opened.<br />Here user can see the following elements:</p>\n<ul>\n<li><p>Invoice currency selection dropdown field - to selet in what currency your invoice items are offered</p>\n</li>\n<li><p>invoice content form:</p>\n<ul>\n<li><p>Description - for item name or service description</p>\n</li>\n<li><p>Price - separate for each item. You can set positive numbers with different precisions depending on selected Invoice currency (eur 2, usd 2, btc 6, eth 6, usdt 2, usdc 2, ton 4, sol 4, ltc 8, bnb 8, bch 8, trx 6).<br />  You also can set item's price as 0 (e.g. for promo or gifted items) or negative price (e.g. to display discount), but the final sum of all item prices should be &gt;0.00 and equal to minimal deposit amount of the cheapest possible Payment Currency (no need to worry about this right now - we’ve built in validation messages that will guide you along the way)</p>\n</li>\n<li><p>Items adding button - add as much as you need</p>\n</li>\n<li><p>Items deletion button near already added ones - but leave at least 1 item in the list</p>\n</li>\n</ul>\n</li>\n<li><p>Payment currency dropdown field - to select in what currency you want to receive invoince payment.<br />  You can predefine any asset that is enabled for accepting by your company on the \"Settings/Payment\" page.<br />  You can also select the ‘All available’ option to leave the decision to the client, however, he won’t be able to select assets whose minimum deposit amounts exceed the total sum of all invoice item prices (at least one will be available - otherwise merchant will be unable to create invoice at all)</p>\n</li>\n<li><p>Who Pays Transaction Fees - for buyer selected: buyer will have to pay invoice amount + fees, merchant will receive 100% of invoice amount as a NET.<br />  For merchant selected: buyer will have to pay invoice amount only, merchant will receive 100% of invoice amount as a GROSS and fees will be paid from this amount.</p>\n</li>\n<li><p>Receive display - pre-calculation to understand what NET-amount will be received by merchant according to selected invoice currency and fees payee</p>\n</li>\n<li><p>Redirect URL - for the link you want a client to be redirected after the successfully invoice payment and it's transition to \"Done\" status. To use entered link you need to turn the switcher into \"Enable for this invoice\" on invoice creation page.<br />  You can also use a default link set on the \"Settings/Payment\" page by turning the switcher into \"Disable for this invoice\" on invoice creation page.<br />  If no redirection link is provided on the \"Settings/Payment\" page and switcher value is \"Disable for this invoice\" on invoice creation page - no redirection will be performed for \"Done\"-invoices.</p>\n</li>\n</ul>\n","_postman_id":"a7d9b93c-3792-4ed6-a9bc-0b16595db72c"},{"name":"Any Amount invoice creation","item":[],"id":"da1a4abc-968c-442a-90fc-5081ecaf530e","description":"<p>After merchant-side user selected \"Any Amount invoice\" as invoice type to be created, the corresponding page is opened.<br />Here user can see the following elements:</p>\n<ul>\n<li><p>Payment currency dropdown field - to select in what currency you want to receive invoince payment.<br />  You can predefine any asset that is enabled for accepting by your company on the \"Settings/Payment\" page.<br />  You can also select the ‘All available’ option to leave the decision to the client, however, he won’t be able to select assets whose minimum deposit amounts exceed the total sum of all invoice item prices (at least one will be available - otherwise merchant will be unable to create invoice at all)</p>\n</li>\n<li><p>invoice content form:</p>\n<ul>\n<li>Description - for item name or service description</li>\n</ul>\n</li>\n<li><p>Who Pays Transaction Fees - for buyer selected: buyer will have to pay invoice amount + fees, merchant will receive 100% of invoice amount as a NET.<br />  For merchant selected: buyer will have to pay invoice amount only, merchant will receive 100% of invoice amount as a GROSS and fees will be paid from this amount.</p>\n</li>\n<li><p>Redirect URL - for the link you want a client to be redirected after the successfully invoice payment and it's transition to \"Done\" status. To use entered link you need to turn the switcher into \"Enable for this invoice\" on invoice creation page.<br />  You can also use a default link set on the \"Settings/Payment\" page by turning the switcher into \"Disable for this invoice\" on invoice creation page.<br />  If no redirection link is provided on the \"Settings/Payment\" page and switcher value is \"Disable for this invoice\" on invoice creation page - no redirection will be performed for \"Done\"-invoices.</p>\n</li>\n</ul>\n","_postman_id":"da1a4abc-968c-442a-90fc-5081ecaf530e"},{"name":"Business invoice creation","item":[],"id":"6351b505-7572-4625-b807-dcf807db7141","description":"<p>After merchant side user selected \"Business invoice\" as invoice type to be created, the corresponding page is opened.<br />Here user can see the following elements:</p>\n<ul>\n<li><p>invoice content form:</p>\n<ul>\n<li><p>Seller info section with it's info adding button:</p>\n<ul>\n<li><p>Company name</p>\n</li>\n<li><p>Address</p>\n</li>\n<li><p>Phone number</p>\n</li>\n<li><p>Website</p>\n</li>\n<li><p>Tax ID</p>\n</li>\n</ul>\n</li>\n<li><p>Buyer info section with it's info adding button:</p>\n<ul>\n<li><p>Full Name</p>\n</li>\n<li><p>Company Name</p>\n</li>\n<li><p>Address</p>\n</li>\n<li><p>Phone Number</p>\n</li>\n<li><p>Email</p>\n</li>\n<li><p>Tax ID</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p>Details section</p>\n<ul>\n<li><p>Description - for item name or service description</p>\n</li>\n<li><p>Price - separate for each item. You can set positive numbers with different precisions depending on selected Invoice currency (eur 2, usd 2, btc 6, eth 6, usdt 2, usdc 2, ton 4, sol 4, ltc 8, bnb 8, bch 8, trx 6).<br />  You also can set item's price as 0 (e.g. for promo or gifted items) or negative price (e.g. to display discount), but the final sum of all item prices should be &gt;0.00 and equal to minimal deposit amount of the cheapest possible Payment Currency (no need to worry about this right now - we’ve built in validation messages that will guide you along the way)</p>\n</li>\n<li><p>Items adding button - add as much as you need</p>\n</li>\n<li><p>Items deletion button near already added ones - but leave at least 1 item in the list</p>\n</li>\n<li><p>Subtotal - sum of all items prices</p>\n</li>\n<li><p>taxes adding button - to add any tax-items into the invoice items list. Add as much as you need</p>\n<ul>\n<li><p>Description - for tax purpose description</p>\n</li>\n<li><p>tax volume- separate for each tax</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p>Notes to Buyer - optional field that allows you to provide any information for a client. It's value will be displayed for a client on invoice payment page and on invoice's billing summary PDF-document.</p>\n</li>\n<li><p>Internal Notes - optional field to mark invoice with any merchant-side required data. It's value will be displayed on internal invoice details page for a merchant only.</p>\n</li>\n<li><p>Invoice Number - legal invoice number provided by a merchant for invoice's billing summary document. Can contain any symbol(s) but should be unique within merchant account invoices.</p>\n</li>\n<li><p>Issue Date - legal info for invoice's billing summary document.</p>\n</li>\n<li><p>Due Date - another legal info for invoice's billing summary document.</p>\n</li>\n<li><p>Invoice currency selection dropdown field - to selet in what currency your invoice items are offered.</p>\n</li>\n<li><p>Payment currency dropdown field - to select in what currency you want to receive invoince payment.<br />  You can predefine any asset that is enabled for accepting by your company on the \"Settings/Payment\" page.<br />  You can also select the ‘All available’ option to leave the decision to the client, however, he won’t be able to select assets whose minimum deposit amounts exceed the total sum of all invoice item prices (at least one will be available - otherwise merchant will be unable to create invoice at all)</p>\n</li>\n<li><p>Who Pays Transaction Fees - for buyer selected: buyer will have to pay invoice amount + fees, merchant will receive 100% of invoice amount as a NET.<br />  For merchant selected: buyer will have to pay invoice amount only, merchant will receive 100% of invoice amount as a GROSS and fees will be paid from this amount.</p>\n</li>\n<li><p>Receive display - pre-calculation to understand what NET-amount will be received by merchant according to selected invoice currency and fees payee</p>\n</li>\n<li><p>Redirect URL - for the link you want a client to be redirected after the successfully invoice payment and it's transition to \"Done\" status. To use entered link you need to turn the switcher into \"Enable for this invoice\" on invoice creation page.<br />  You can also use a default link set on the \"Settings/Payment\" page by turning the switcher into \"Disable for this invoice\" on invoice creation page.<br />  If no redirection link is provided on the \"Settings/Payment\" page and switcher value is \"Disable for this invoice\" on invoice creation page - no redirection will be performed for \"Done\"-invoices.</p>\n</li>\n</ul>\n<p>Business invoice has also the following unique features:</p>\n<ul>\n<li><p>Invoice's billing summary document PDF export - merchant can export billing summary document PDF with all the information that is provided at the moment of the export.</p>\n</li>\n<li><p>Preview - merchant can review current version of billing summary document with all the information that is provided at the moment of the export.</p>\n</li>\n<li><p>Save Draft - merchant can fill business-invoice form with any data that is common for his routine operations and re-use it later as a template. Draft saving is available if at least one business-invoice creation form field is customized.</p>\n</li>\n</ul>\n","_postman_id":"6351b505-7572-4625-b807-dcf807db7141"}],"id":"da0f8aa7-ec26-43b0-ae49-0d5f79245314","description":"<h4 id=\"full-flow\">Full Flow:</h4>\n<ol>\n<li><p>Invoice has been created (POST-request executed, invoice status: \"Created\")</p>\n</li>\n<li><p>Invoice url-address is transfered to a client</p>\n</li>\n<li><p>Client opens invoice (GET-request, invoice status: \"Created\")</p>\n</li>\n<li><p>Client fills invoice with his <code>email</code> and optionally <code>payment currency</code> (PATCH-request, invoice status: \"Pending\")</p>\n</li>\n<li><p>Payment <code>address</code> is assigning to invoice (invoice status: \"Pending\")</p>\n</li>\n<li><p>Client sends payment for invoice</p>\n</li>\n<li><p>Payment receiving is initiated by a blockchain (invoice status: \"Processing\")</p>\n</li>\n<li><p>Payment is received (invoice status: \"Done\", \"Wrong\", \"Refunded\" according to received amount)<br /> 8a. Payment is not received in time (invoice status: \"Expired\")</p>\n</li>\n</ol>\n<p>In more details:</p>\n<p>When invoice has been created merchant can see it's details page opened. The newly created invoice also can be found in invoices list on the \"Invoices\" page.</p>\n<p>The next step is to copy invoice's link by the corresponding button on the invoice details page and send this link to a client.</p>\n<p>Client opens invoice by provided link, provides his email to identify him as an invoice payee and selects payment currency if it wasn't pre-defined by a merchant during the invoice creation.</p>\n<p>When it's done, invoice receives it's crypto-address regarding to selected payment currency, all invoiceCurrency-paymentCurrency rate based calculations are executed and client has all available info to start payment process.</p>\n<h3 id=\"invoice-creation-merchants-ui-side\"><strong>Invoice creation (merchant's UI side)</strong></h3>\n<p>Merchant's sided user is able to create invoice by clicking on corresponding button on \"Dashboard\" page. He also can create invoice by proceeding to 'Invoices' page and click the '+ Create Invoice' button.</p>\n<p>After that user will see invoice types dropdown expanded where he can select one of the following invoice types:</p>\n<ul>\n<li><p>Regular invoice - you know what service/item exactly will be offered and it has fixed price.<br />  (e.g. you need to sell a table or receive monthly subscription payment)</p>\n</li>\n<li><p>Any Amount invoice - you offer something without fixed price and it's name can be provided or not on your choice.<br />  (e.g. you want to allow client top-up his balance on your service or you need to receive donation)</p>\n</li>\n<li><p>Business Invoice - as a legal person you need to receive incoming transactions from a physical or legal-person.<br />  (invoice reporting number, date/time, full sender and received info, requisites, taxes description, currency, etc)</p>\n</li>\n</ul>\n<p>When invoice-type is selected and items list is filled user has ability to confirm invoice creation and will be redirected to the newly created invoice's additional info page.</p>\n<p>On the newly created invoice's additional info page user is able to copy the invoice's client-oriented link by a \"Copy link\" button and send it to the client's end user.</p>\n<h3 id=\"invoice-payment-clients-ui-side\"><strong>Invoice payment (client's UI side)</strong></h3>\n<p>Client's end user is able to open the invoice payment form by opening the invoice link.<br />Invoice payment form content depends on invoice-type.</p>\n<h4 id=\"regular-invoice-type\">Regular invoice-type</h4>\n<p>For Regular invoice-type client user is able to see the merhcant's company name, invoice items-list, invoice's total price, payment token selection field (or pre-defined token if it was set by merchant during the invoice creation), client's email field.<br />He can also see the merhcant's company logo, payment info-block and support-link to have a connection with merhcant in case of any concerns.</p>\n<p>Client user is able to select any desirable token to be set as an invoice payment currency (if it wasn't pre-defined by a merchant during the invoice creation) and enter his email for further invoice transactions updates to be received.<br />When the form is confirmed client user will be redirected to the second page of invoice payment form where client user is able to see the calculations of invoice currency convertation into payment currency, exchange-rate and fees-inclusion (if client was set as a fees-payee by a merchant during the invoice creation).</p>\n<p>Client user is also can see the crypto-address (and tag-field for required assets) for invoice payment to be made. Crypto-address is available both in text and QR-core formats.</p>\n<h4 id=\"any-amount-invoice-type\"><strong>Any Amount invoice-type</strong></h4>\n<p>For Any Amount invoice-type client user is able to see the invoice payment calculator to have ability to calculate payment currency amount to be paid to receive corresponding invoice currency's amount to it's account on merchant's service.</p>\n<p>User can select payment currency (if it's not predefined by a merchant during the invoice creation), enter desirable amount to be paid or leave it empty and enter his email for further invoice transactions updates to be received.<br />User also can see the pre-estimated invoice currency's amount to be received, exchange-rate and fees for selected payment currency and entered amount (if it's entered).<br />When form is confirmed client user will be redirected to the second page of invoice payment form where client user is able to see the invoice payment calculator to have ability to calculate payment currency amount to be paid to receive some desirable invoice currency's amount into it's account on merchant's service, but with previously defined and non-editable payment currency.</p>\n<h4 id=\"business-invoice-type\"><strong>Business invoice-type</strong></h4>\n<p>Business invoice-type client's UI has only minor differences from a Regular invoice. In particular, on the right-hand side, instead of the list of products, the user will see the billing summary document preview with all legal information that was provided by a merchant during the invoice creation. This document preview will be gradually updated with payment details as the client processes the invoice:</p>\n<ul>\n<li><p>user's selected payment currency OR previously predefined by a merchant during the invoice creation</p>\n</li>\n<li><p>payment currency's network</p>\n</li>\n<li><p>deposit address</p>\n</li>\n<li><p>tag (only for assets that require it)</p>\n</li>\n<li><p>invoice currency/payment currency exchange rate that was actual for the moment of invoice filling by a client</p>\n</li>\n<li><p>crypto-amount as a payment currency amount to be paid for invoice</p>\n</li>\n</ul>\n<p>User will also be able to see the \"Download PDF\" button above the billing summary document during the whole invoice client's-side flow to have ability to download the document for a legal purposes, accounting, etc.</p>\n<h4 id=\"payment-procedure-displaying-for-the-clients-invoice-page-all-invoice-types\">Payment procedure displaying for the client's invoice page (all invoice types).</h4>\n<p>When invoice transaction receiving process will be started by the KyrrexPay-service, invoice payment page will be changed with corresponding status pages.<br />It will also be changed to ‘You invoice has expired' page if invoice payment transaction won't be received within the invoice-payment period - 30 minutes for all asets (excluding BTC - 120 minutes)</p>\n","_postman_id":"da0f8aa7-ec26-43b0-ae49-0d5f79245314"},{"name":"API","item":[{"name":"Webhooks","item":[{"name":"Transactions","item":[{"name":"Withdrawal","item":[],"id":"37cb9df1-d2a5-453a-8e75-ee5c8e4117f8","description":"<p>Webhooks can have the following statuses:</p>\n<ul>\n<li><p>processing - 2x webhooks for initiated withdrawal and transaction received by blockchain</p>\n</li>\n<li><p>done - withdrawal completed on Paidlys side and blockchain side</p>\n</li>\n<li><p>rejected - withdrawal has been blocked by AML/TMS checks and/or failed on blockchain side</p>\n</li>\n</ul>\n<p>Webhook body for processing #1:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"withdrawal\", // webhook's type\n  \"status\": \"processing\", // webhook's status\n  \"asset\": \"usdt\", // withdrawn asset\n  \"dchain\": \"trc20usdt\", //withdrawn asset+network\n  \"amount\": 5, // withdrawn amount\n  \"fee\": \"3.0\", // withdawal fees\n  \"to\": \"TNyG6gPkBsF8S8Sy6deirNCVVydVFTFK7c\", // receiver address\n  \"txHash\": \"\", // blockchain-address, empty for procesing#1 webhook\n  \"uid\": \"156-77704488\" // internal uuid from withdrawal api-call response\n}\n\n</code></pre>\n<p>Webhook body for processing #2:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"withdrawal\", // webhook's type\n  \"status\": \"processing\", // webhook's status\n  \"asset\": \"usdt\", // withdrawn asset\n  \"dchain\": \"trc20usdt\", //withdrawn asset+network\n  \"amount\": 5, // withdrawn amount\n  \"fee\": \"3.0\", // withdawal fees\n  \"to\": \"TNyG6gPkBsF8S8Sy6deirNCVVydVFTFK7c\", // receiver address\n  \"txHash\": \"https://tronscan.org/#/transaction/\", // blockchain-address, available for procesing#2 webhook\n  \"uid\": \"156-77704488\" // internal uuid from withdrawal api-call response\n}\n\n</code></pre>\n<p>Webhook body for done:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"withdrawal\", // webhook's type\n  \"status\": \"done\", // webhook's status\n  \"asset\": \"usdt\", // withdrawn asset\n  \"dchain\": \"trc20usdt\", //withdrawn asset+network\n  \"amount\": 5, // withdrawn amount\n  \"fee\": \"3.0\", // withdawal fees\n  \"to\": \"TNyG6gPkBsF8S8Sy6deirNCVVydVFTFK7c\", // receiver address\n  \"txHash\": \"https://tronscan.org/#/transaction/1e4cc555a36ec5cc4bac0c54050b12d0b0c202baa3b952522b88cd32384104ae\", // blockchain-side transaction-ID\n  \"uid\": \"156-77704488\" // internal uuid from withdrawal api-call response\n}\n\n</code></pre>\n<p>Webhook body for rejected:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"type\": \"withdrawal\", // webhook's type\n  \"status\": \"rejected\", // webhook's status\n  \"asset\": \"usdt\", // withdrawn asset\n  \"dchain\": \"trc20usdt\", //withdrawn asset+network\n  \"amount\": 5, // withdrawn amount\n  \"fee\": \"3.0\", // withdawal fees\n  \"to\": \"TNyG6gPkBsF8S8Sy6deirNCVVydVFTFK7c\", // receiver address\n  \"uid\": \"156-77704488\" // internal uuid from withdrawal api-call response\n}\n\n</code></pre>\n<p>Webhooks authenticity check:</p>\n<p>Every webhook contains \"Signature\" header generated by the following function:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">private generateWebhookSignature(secretKey: string, payload: any): string {\n    const hmac = createHmac('sha512', secretKey.trim());\n    hmac.update(JSON.stringify(payload));\n    return hmac.digest('hex');\n  }\n\n</code></pre>\n<p>where secretKey: \"%merchant's secret key from Settings/Tokens page on UI-side%\"</p>\n","_postman_id":"37cb9df1-d2a5-453a-8e75-ee5c8e4117f8","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}}],"id":"7e896ada-f30f-4334-953f-d101427e3ccf","_postman_id":"7e896ada-f30f-4334-953f-d101427e3ccf","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"Invoices","item":[{"name":"Create Invoice","item":[],"id":"5f666e69-761f-47d8-ab24-fba11117a686","description":"<p>Invoice has been created  </p>\n<p>Body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceId\": \"96850db7-41dd-4ce7-bacd-10371f96100a\",\n  \"status\": \"created\",\n  \"message\": \"Invoice created\"\n}\n\n</code></pre>\n<p>Example:  </p>\n<img src=\"https://content.pstmn.io/610b0e51-9d89-42b9-953c-986b45832a4f/aW1hZ2UucG5n\" alt height=\"1122\" width=\"1230\" />","_postman_id":"5f666e69-761f-47d8-ab24-fba11117a686","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"Pending invoice","item":[],"id":"19ddab0a-08a9-4c99-aaa5-ad5cfefbe595","description":"<p>Invoice has been opened by a client, filled with client's email-address and payment currency is selected (only if invoice has been created without predefined payment currency).<br />Payment address is provided to a client. No deposits are received from a client.</p>\n<p>Body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceId\": \"96850db7-41dd-4ce7-bacd-10371f96100a\",\n  \"status\": \"pending\",\n  \"message\": \"User started payment process, but hasn't paid yet\"\n}\n\n</code></pre>\n<p>Example:</p>\n<img src=\"https://content.pstmn.io/f81b30db-83e2-4b65-87e0-b5d9b483f3b2/aW1hZ2UucG5n\" alt height=\"1117\" width=\"1215\" />","_postman_id":"19ddab0a-08a9-4c99-aaa5-ad5cfefbe595","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"Processing invoice","item":[],"id":"0d18104f-847c-4ed5-8bcf-763efcaaa824","description":"<p>Payment initiation information from blockchain has been received.<br />Invoice is waiting for transaction to be completed</p>\n<p>Body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceId\": \"96850db7-41dd-4ce7-bacd-10371f96100a\",\n  \"status\": \"processing\",\n  \"message\": \"The client has made a payment, transaction confirmation is pending\"\n}\n\n</code></pre>\n<p>Example:</p>\n<img src=\"https://content.pstmn.io/6a8956f7-1357-423f-a230-661a702b255a/aW1hZ2UucG5n\" alt height=\"1127\" width=\"1217\" />","_postman_id":"0d18104f-847c-4ed5-8bcf-763efcaaa824","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"\"Wrong\" status for invoice","item":[],"id":"17e5fcc8-8509-4c77-a0b6-b35e71314e9f","description":"<p>Transaction has been successfully received for invoice, but it's amount is lower than expected invoice amount to be received.</p>\n<p>Body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceId\": \"96850db7-41dd-4ce7-bacd-10371f96100a\",\n  \"status\": \"wrong\",\n  \"message\": \"The payment amount is lower than the amount stated on the invoice\"\n}\n\n</code></pre>\n<p>Example:</p>\n<img src=\"https://content.pstmn.io/f4f2f7a3-aec8-4c7a-a446-cf8202f2fe07/aW1hZ2UucG5n\" alt height=\"1133\" width=\"1220\" />","_postman_id":"17e5fcc8-8509-4c77-a0b6-b35e71314e9f","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"\"Refunded\" status for invoice","item":[],"id":"bc581769-6ddc-485e-a907-d4f05eb6f219","description":"<p>Previously \"Wrong\"-statused invoice has been marked as refunded by a merchant to cancel the invoice and return already received funds to a client</p>\n<p>Body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceId\": \"96850db7-41dd-4ce7-bacd-10371f96100a\",\n  \"status\": \"refunded\",\n  \"message\": \"Invoice refunded\"\n}\n\n</code></pre>\n<p>Example:</p>\n<img src=\"https://content.pstmn.io/3e59154f-dc4f-459a-9e5f-4ef2e74e8c1e/aW1hZ2UucG5n\" alt height=\"1130\" width=\"1219\" />","_postman_id":"bc581769-6ddc-485e-a907-d4f05eb6f219","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"\"Done\" status for invoice","item":[],"id":"735ddd17-04ff-46f6-86d3-feb1ac643d8a","description":"<p>Invoice payment has been successfully received. It's amount is equal or greater than expected invoice amount.</p>\n<p>Body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceId\": \"96850db7-41dd-4ce7-bacd-10371f96100a\",\n  \"status\": \"done\",\n  \"message\": \"Invoice paid\"\n}\n\n</code></pre>\n<p>Example:</p>\n<img src=\"https://content.pstmn.io/e4b87d91-54c3-4fba-9483-9c7a796a61bd/aW1hZ2UucG5n\" alt height=\"1136\" width=\"1217\" />","_postman_id":"735ddd17-04ff-46f6-86d3-feb1ac643d8a","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"\"Closed\" status for invoice","item":[],"id":"774d6f08-b554-4a36-a433-39bac04cb3f8","description":"<p>Invoice with \"Pending\"-status hasn't been paid within required time.<br />Also invoice with \"Processing\"-status didn't receive payment within required time.</p>\n<p>Body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceId\": \"96850db7-41dd-4ce7-bacd-10371f96100a\",\n  \"status\": \"closed\",\n  \"message\": \"Invoice closed\"\n}\n\n</code></pre>\n<p>Example:</p>\n<img src=\"https://content.pstmn.io/8bb3f084-c639-4ee0-87b2-3a590550939a/aW1hZ2UucG5n\" alt height=\"1059\" width=\"1284\" />","_postman_id":"774d6f08-b554-4a36-a433-39bac04cb3f8","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}}],"id":"1a9ba1f3-b55f-458b-b670-70794833f94a","description":"<p>All webhooks are sending via POST-method and contain JSON-body with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoiceId\": \"%invoice_id%\",\n  \"status\": \"%status_name%\",\n  \"message\": \"%user_readable_description%\"\n}\n\n</code></pre>\n<p>Webhooks authenticity check:</p>\n<p>Every webhook contains \"Signature\" header generated by the following function:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">private async sendWebhookNotification(\n    webhookUrl: string,\n    payload: any,\n    secretKey: string,\n  ): Promise&lt;void&gt; {\n    const signature = this.generateWebhookSignature(secretKey, payload);\n    await axios.post(webhookUrl, payload, {\n      headers: {\n        'Content-Type': 'application/json',\n        signature: signature,\n      },\n    });\n  }\n  private generateWebhookSignature(secretKey: string, payload: any): string {\n    const hmac = createHmac('sha512', secretKey.trim());\n    hmac.update(JSON.stringify(payload));\n    return hmac.digest('hex');\n  }\n\n</code></pre>\n<p>where secretKey: \"%merchant's secret key from Settings/Tokens page on UI-side%\"</p>\n","_postman_id":"1a9ba1f3-b55f-458b-b670-70794833f94a","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}}],"id":"e5df5a7a-fbbd-45e1-b6f6-53bb77a1bfd7","description":"<p>KyrrexPay Webhooks utilizes Signature Token for signing Requests which sends to Webhook Targets. Webhooks are divided into general and webhooks related to payment pages. You can get your Signature Token on Tokens Project page in page Settings for general webhook settings.</p>\n<h3 id=\"general-webhook-settings\">General webhook settings</h3>\n<p>In order to receive webhooks from our service, you need to insert the URL of your webhook-receiver into the \"Webhook URL\" field on the Settings/Tokens page or execute the following PUT-request:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">curl ^\"https://my.pay.kyrrex.com/api/company/settings/webhook-url^\" ^\n  -X ^\"PUT^\" ^\n  -H ^\"authorization: Bearer %merchant_public_token% (can be found in merchant's account/Settings/Tokens/Public_Token)\" ^\n  -H ^\"content-type: application/json^\" ^\n  --data-raw ^\"^{^\\^\"webHookUrl^\\^\":^\\^\"%webhook_url_value%^\\^\"^}^\"\n\n</code></pre>\n<p>Security Tip!!!</p>\n<p>We recommend using the function below to hash the payload using the private key from your personal account. For each request, compare it with the hash that came in 'x-kpay-sig', so that in case of hacking, attackers cannot steal your funds.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\"> private async sendWebhookNotification(\n    webhookUrl: string,\n    payload: any,\n    secretKey: string,\n  ): Promise&lt;void&gt; {\n    const signature = this.generateWebhookSignature(secretKey, payload);\n    await axios.post(webhookUrl, payload, {\n      headers: {\n        'Content-Type': 'application/json',\n        signature: signature,\n      },\n    });\n  }\n  private generateWebhookSignature(secretKey: string, payload: any): string {\n    const hmac = createHmac('sha512', secretKey.trim());\n    hmac.update(JSON.stringify(payload));\n    return hmac.digest('hex');\n  }\n\n</code></pre>\n","_postman_id":"e5df5a7a-fbbd-45e1-b6f6-53bb77a1bfd7","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"Withdrawals","item":[{"name":"Automatical crypto-withdrawals","item":[{"name":"Get crypto-autowithdrawals settings","id":"bd2a3a58-0535-47d4-af55-f1d843ac547b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://my.pay.kyrrex.com/api/company/auto-withdrawals","description":"<h3 id=\"api-endpoint-get-auto-withdrawals\">API Endpoint: Get Auto Withdrawals</h3>\n<p>This endpoint retrieves the list of auto withdrawal settings for crypto-assets. It is useful for companies to manage their automated withdrawal processes efficiently.</p>\n<h4 id=\"authorization\">Authorization</h4>\n<p>Authorization via public token</p>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/company/auto-withdrawals' \\\n--header 'Authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side' \\\n--header 'Content-Type: application/json'\n\n</code></pre>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>The response will include the following fields:</p>\n<ul>\n<li><p><code>autoWithdrawals</code>:</p>\n<ul>\n<li><p><code>assetId</code>: name of the asset to be withdrawn</p>\n</li>\n<li><p><code>amount</code>: The autowithdrawal treshold</p>\n</li>\n<li><p><code>isEnabled</code>: true - enabled, false - disabled</p>\n</li>\n<li><p><code>withdrawalTag</code>: tag for autoWithdrawal receiving address. Actual for tag consistent assets only. Can be null for non-required.</p>\n</li>\n<li><p><code>withdrawalAddress</code>: address for autoWithdrawal to be received</p>\n</li>\n</ul>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","company","auto-withdrawals"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"bd2a3a58-0535-47d4-af55-f1d843ac547b"},{"name":"Set autoWithdrawal rule for crypto-asset","id":"ac58c13c-67c9-4206-9952-23008563fccb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"assets\": {\n        \"ton\": {\n            \"amount\": %int_amount%, // number, required\n            \"isEnabled\": true, // boolean, required\n            \"withdrawalTag\": %tag%, // string, if asset is ton -> required, else -> non-required \n            \"withdrawalAddress\": \"%address%\" // string, required\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/company/auto-withdrawals","description":"<h1 id=\"patch-apicompanyauto-withdrawals\">PATCH /api/company/auto-withdrawals</h1>\n<p>This endpoint allows users to update the auto-withdrawal settings for specific assets in their account. It is particularly useful for enabling or disabling automatic withdrawals and specifying withdrawal addresses for different asset types.</p>\n<h3 id=\"parameters\">Parameters</h3>\n<ul>\n<li><p><strong>assets</strong>: An object that contains the settings for different assets.</p>\n<ul>\n<li><p>assetName: An object representing the specific asset (in this case, TON).</p>\n<ul>\n<li><p><strong>isEnabled</strong>: A boolean value indicating whether automatic withdrawals are enabled (<code>true</code>) or disabled (<code>false</code>).</p>\n</li>\n<li><p>withdrawalTag: tag for receiving address if it requires it. Can be \"null\" for non-required tag assets</p>\n</li>\n<li><p><strong>withdrawalAddress</strong>: A string that specifies the withdrawal address for the asset.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"curl\">cURL</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location --request PATCH 'https://my.pay.kyrrex.com/api/company/auto-withdrawals' \\\n--header 'Authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"assets\": {\n        \"ton\": {\n            \"amount\": %int_amount%, \n            \"isEnabled\": true, \n            \"withdrawalTag\": %tag%, \n            \"withdrawalAddress\": \"%address%\" \n        }\n    }\n}'\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","company","auto-withdrawals"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"ac58c13c-67c9-4206-9952-23008563fccb"},{"name":"autoWithdrawal execution request","id":"2a3ee20d-ac52-4e6c-bc05-7a109f986ab6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side","type":"text"},{"key":"content-type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"items\": [\r\n        {\r\n            \"amount\": %int_amount%, //  number, required\r\n            \"tag\": %receiver_tag%, // string, if asset == ton -> required, else -> non-required\r\n            \"to\": \"%receiver_address%\", // string, required\r\n            \"asset\": \"%asset_name%\" // string, required\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/transactions/withdraw","description":"<h2 id=\"withdraw-transaction-api\">Withdraw Transaction API</h2>\n<p>This endpoint is used to execute autoWithdrawals for crypto-assets</p>\n<p>cURL:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/transactions/withdraw' \\\n--header 'authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side' \\\n--header 'content-type: application/json' \\\n--data '{\n    \"items\": [\n        {\n            \"amount\": %int_amount%, \n            \"tag\": %receiver_tag%, \n            \"to\": \"%receiver_address%\", \n            \"asset\": \"%asset_name%\" \n        }\n    ]\n}'\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","transactions","withdraw"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"2a3ee20d-ac52-4e6c-bc05-7a109f986ab6"}],"id":"321c0a91-4a3f-4296-973b-cecadbba4da1","_postman_id":"321c0a91-4a3f-4296-973b-cecadbba4da1","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"Bulk withdrawals","id":"e26aeda9-b4b6-4aee-93bc-59d4107de13f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side"},{"key":"content-type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    \"items\": [\r\n        {\r\n            \"amount\": 12,\r\n            \"to\": \"THFH4F2B8NcRrfRzrHMqZ2pJihMmwcuzpF\",\r\n            \"asset\": \"trc20usdt\"\r\n        },\r\n        {\r\n            \"amount\": 15,\r\n            \"to\": \"TQqoPSppzKMdAYGcFVwdtJSDA67xsumGzG\",\r\n            \"tag\": \"\",\r\n            \"asset\": \"trc20usdt\"\r\n        },\r\n        {\r\n            \"amount\": 23.99,\r\n            \"to\": \"TMKCSXKTTZXTwSN5YRNFFHmMMXP8EkfDHU\",\r\n            \"tag\": \"\",\r\n            \"asset\": \"trc20usdt\"\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/transactions/withdraw","description":"<h4 id=\"bulk-withdrawal\">Bulk withdrawal</h4>\n<p>This request allows merchant to withdraw funds to multiple addresses within one API-call.</p>\n<h4 id=\"request\">Request</h4>\n<p>Headers:</p>\n<ul>\n<li>Authorization: Bearer %merchant_public_token% (can be found in merchant's account/Settings/Tokens/Public_Token)</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>\"<code>items</code>\" (array, required) - a list of single withdrawals that will be executed within the call. Add as much withdrawal-items as you need.</p>\n</li>\n<li><p>\"<code>asset</code>\" (string, required) - asset+network name in which withdrawal should be executed.<br />  Can be one of crypto-assets and networks supported by a system (currently: btc, eth, trc20usdt, usdterc20, solusdt, bep20usdt, sol, ton, usdc, solusdc, bep20usdc, bnb, ltc, trx, bch)</p>\n</li>\n<li><p>\"<code>to</code>\" (string, required) - receiver's address.<br />  (Warning: You will receive a validation error if the recipient's address format differs from the defined asset standard. However, if the address follows the same standard as the asset but belongs to a different network, a loss of funds may occur)</p>\n</li>\n<li><p>\"<code>amount</code>\" (number, required) - net-amount that will be sent and received by a receiver-address</p>\n</li>\n</ul>\n<p>Note 1: any item's amount should not be lower than minimal withdrawal amount for defined \"asset\"-parameter<br />Note 2: \"amount\"-parameter is net-amount. Network-fees will be applied for each withdrawal item separately<br />Note 3: all item-amounts sum together with network-fees should not be bigger than defined \"asset\"-parameter available balance<br />Note 4: if the only one withdrawal-item will be provided - single withdrawal will be executed</p>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/transactions/withdraw' \\\n--header 'authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side' \\\n--header 'content-type: application/json' \\\n--data '{\n    \"items\": [\n        {\n            \"amount\": 12,\n            \"to\": \"THFH4F2B8NcRrfRzrHMqZ2pJihMmwcuzpF\",\n            \"asset\": \"trc20usdt\"\n        },\n        {\n            \"amount\": 15,\n            \"to\": \"TQqoPSppzKMdAYGcFVwdtJSDA67xsumGzG\",\n            \"tag\": \"\",\n            \"asset\": \"trc20usdt\"\n        },\n        {\n            \"amount\": 23.99,\n            \"to\": \"TMKCSXKTTZXTwSN5YRNFFHmMMXP8EkfDHU\",\n            \"tag\": \"\",\n            \"asset\": \"trc20usdt\"\n        }\n    ]\n}'\n\n</code></pre>\n<h4 id=\"response\">Response:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"message\": \"Transaction was successfully accepted by WL.\",\n        \"success\": true,\n        \"uid\": \"XXX-XXXXXXXX\"\n    },\n    {\n        \"message\": \"Transaction was successfully accepted by WL.\",\n        \"success\": true,\n        \"uid\": \"XXX-XXXXXXXX\"\n    },\n    {\n        \"message\": \"Transaction was successfully accepted by WL.\",\n        \"success\": true,\n        \"uid\": \"XXX-XXXXXXXX\"\n    }\n]\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","transactions","withdraw"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"e26aeda9-b4b6-4aee-93bc-59d4107de13f"}],"id":"5c378e22-f92f-4979-882b-afc2f9c8ad89","_postman_id":"5c378e22-f92f-4979-882b-afc2f9c8ad89","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"Underpayment limits","item":[{"name":"Set Underpayment limits","id":"4afaa7dc-c4e5-4c0b-9a07-125fbb22b649","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side"},{"key":"content-type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    \"assets\": {\r\n        \"btc\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        },\r\n        \"eth\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        },\r\n        \"usdt\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        },\r\n        \"sol\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        },\r\n        \"ton\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        },\r\n        \"usdc\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        },\r\n        \"bnb\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        },\r\n        \"ltc\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        },\r\n        \"near\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        },\r\n        \"trx\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        },\r\n        \"bch\": {\r\n            \"static\": 0,\r\n            \"percentage\": 0\r\n        }\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/company/underpayment-limits","description":"<p>This endpoint allows to set underpayment limit value for invoices to be marked as \"Done\" when received amount is lower than expected on set value.<br />Value can be set as exact amount and/or as invoice expected amount's percentage</p>\n<h3 id=\"curl\">cURL:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location --request PATCH 'https://my.pay.kyrrex.com/api/company/underpayment-limits' \\\n--header 'authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side' \\\n--header 'content-type: application/json' \\\n--data '{\n    \"assets\": {\n        \"btc\": {\n            \"static\": 0,\n            \"percentage\": 0\n        },\n        \"eth\": {\n            \"static\": 0,\n            \"percentage\": 0\n        },\n        \"usdt\": {\n            \"static\": 0,\n            \"percentage\": 0\n        },\n        \"sol\": {\n            \"static\": 0,\n            \"percentage\": 0\n        },\n        \"ton\": {\n            \"static\": 0,\n            \"percentage\": 0\n        },\n        \"usdc\": {\n            \"static\": 0,\n            \"percentage\": 0\n        },\n        \"bnb\": {\n            \"static\": 0,\n            \"percentage\": 0\n        },\n        \"ltc\": {\n            \"static\": 0,\n            \"percentage\": 0\n        },\n        \"near\": {\n            \"static\": 0,\n            \"percentage\": 0\n        },\n        \"trx\": {\n            \"static\": 0,\n            \"percentage\": 0\n        },\n        \"bch\": {\n            \"static\": 0,\n            \"percentage\": 0\n        }\n    }\n}'\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","company","underpayment-limits"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"4afaa7dc-c4e5-4c0b-9a07-125fbb22b649"},{"name":"Get Underpayment limits","id":"4d499898-4a69-4fec-ae9c-979bd153383b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side"}],"url":"https://my.pay.kyrrex.com/api/company/underpayment-limits","description":"<p>This endpoint allows to get and review the current underpayment limits settings.</p>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>curl --location 'https://my.pay.kyrrex.com/api/company/underpayment-limits' \\\n--header 'authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side'\n\n</code></pre>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","company","underpayment-limits"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"4d499898-4a69-4fec-ae9c-979bd153383b"}],"id":"1ce7270c-2aec-47e0-8fa9-6ab32ac2629c","_postman_id":"1ce7270c-2aec-47e0-8fa9-6ab32ac2629c","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"Regular invoice creation, filling and info-receiving","item":[{"name":"Create new regular invoice","id":"935d53fd-bc97-439e-a628-2eea25ad960e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    \"invoiceCurrency\": \"eur\",\r\n     \"items\": [ \r\n        {\r\n            \"name\": \"Coffee\",\r\n            \"price\": 10.99\r\n        },\r\n        {\r\n            \"name\": \"Sugar\",\r\n            \"price\": 1\r\n        },\r\n        {\r\n            \"name\": \"Regular client discount\",\r\n            \"price\": -3\r\n        },\r\n        {\r\n            \"name\": \"Coffee gift (1+1 promo)\",\r\n            \"price\": 0\r\n        }\r\n    ], \r\n    \"isMerchantPaysFee\": false,\r\n    \"paymentCurrency\": \"usdc\",\r\n    \"redirectURL\": \"%url_for_DONE_statused_invoices_redirection%\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/invoices/v1/regular","description":"<h3 id=\"create-new-regular-invoice\">Create new regular invoice</h3>\n<p>This endpoint creates a new invoice under merchant's account</p>\n<h4 id=\"request\">Request</h4>\n<p>Headers:</p>\n<ul>\n<li>Authorization: Bearer %merchant_public_token% (can be found in merchant's account/Settings/Tokens/Public_Token)</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>\"<code>invoiceCurrency</code>\" (string,required) - invoice items price currency.<br />  Can be eur, usd, one of crypto-assets supported by a system (currently: usdt, usdc, btc, eth, ton, sol, bnb, bch, ltc, trx)</p>\n</li>\n<li><p>\"<code>items</code>\" (object, required) - list of invoce items, each item should contain name and price. \"items\" object can contain as much items as needed</p>\n</li>\n<li><p>\"<code>name</code>\" (string, required) - any desirable item name</p>\n</li>\n<li><p>\"<code>price</code>\" (number, required) - any desirable item price specified in invoiceCurrency.<br />  Can have any precision, but will be standartized or rounded to the following values:<br />  - usd (2)<br />  - eur (2)<br />  - usdt (2)<br />  - usdc (2)<br />  - btc (6)<br />  - eth (6)<br />  - ton (4)<br />  - sol (4)<br />  - bnb (8)<br />  - bch (8)<br />  - ltc (8)<br />  - trx (6)<br />  Price of any item(s) can be zero or negative if total price of all invoice items is greater than 0</p>\n</li>\n<li><p>\"<code>isMerchantPaysFee</code>\" (boolean, non-required) - fee payee selector.<br />  - <code>false</code> - client pays invoice total invoice amount + fees, merchant receives full total invoice amount<br />  - <code>true</code> - client pays invoice total amount only, merchant receives total invoice amount excluding fee-amount</p>\n</li>\n<li><p>\"<code>paymentCurrency</code>\" (string, non-required) - currency that merchant want to receive from a client. Can be one of crypto-assets that are enabled by a merchant for accepting on Settings/Payment/Accept_Assets page.<br />  If parameter is not provided or null-value is received - payment currency choice will be left to a client</p>\n</li>\n<li><p>\"redirectURL\" (string, non-required) - URL that will be automatically opened after invoice's \"Done\"-status reaching. If string-value is provided - this value will be used for redirection. If \"null\"-value is provided or parameter is absent - default value from Settings/Payment page will be used.</p>\n</li>\n</ul>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/invoices/v1/regular' \\\n--header 'Authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"invoiceCurrency\": \"eur\",\n     \"items\": [ \n        {\n            \"name\": \"Coffee\",\n            \"price\": 10.99\n        },\n        {\n            \"name\": \"Sugar\",\n            \"price\": 1\n        },\n        {\n            \"name\": \"Regular client discount\",\n            \"price\": -3\n        },\n        {\n            \"name\": \"Coffee gift (1+1 promo)\",\n            \"price\": 0\n        }\n    ], \n    \"isMerchantPaysFee\": false,\n    \"paymentCurrency\": \"usdc\",\n    \"redirectURL\": \"%url_for_DONE_statused_invoices_redirection%\"\n}'\n\n</code></pre>\n<h4 id=\"response\">Response:</h4>\n<ul>\n<li><p><code>\"id\"</code> - invoice identifier. Can be used to open invoice on frontend-side by the following link: <code>https://pay.kyrrex.com/%invoice_id%</code></p>\n</li>\n<li><p><code>\"status\"</code>- dispalys current invoice state. Can be the following:</p>\n<ul>\n<li><p>created - invoice has been created by a merchant but hasn't been filled with client's info (email, payment currency and it's network)</p>\n</li>\n<li><p>pending - client has filled invoice with his info and received the payment address for deposit to be made. Deposit is still not received by invoice</p>\n</li>\n<li><p>processing - deposit receving procedure has started and in progress</p>\n</li>\n<li><p>wrong - deposit is successfully received, but it's amount is lower than expected (lower than invoice total amount)</p>\n</li>\n<li><p>done - deposit is successfully received. One of the following statements has been reached:</p>\n<ul>\n<li><p>deposit amount equals or is greater than expected</p>\n</li>\n<li><p>previously \"wrong\"-statused invoice has been accepted by merchant</p>\n</li>\n<li><p>deposit amount is lower that expected by a sum, covered by underpayment limit</p>\n</li>\n</ul>\n</li>\n<li><p>refunded - previously \"wrong\"-statused invoice has been rejected by merchant</p>\n</li>\n<li><p>failed - deposit receiving is failed by the system due to techical issues</p>\n</li>\n<li><p>expired - previously \"pending\"-statused invoice hasn't received payment till expiration time</p>\n</li>\n</ul>\n</li>\n<li><p><code>\"createdAt\"</code> - invoice creation date and time</p>\n</li>\n<li><p><code>\"company\"</code> - merchant's company information</p>\n<ul>\n<li><p>name</p>\n</li>\n<li><p>logourl - link to company's logo location</p>\n</li>\n<li><p>assets - list of assets settings applied for merchant's company. Displays whether asset is acceptable by a company and can be used as a <code>paymentCurrency</code> parameter value or not</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>invoiceContent</code>\" - list of primary invoice information like items list, prices, fees payee, invoice currency and payment currency (can be null for \"created\"-statuses invoices)</p>\n</li>\n<li><p>\"<code>redirectURL</code>\" - URL that will be automatically opened after invoice's \"Done\"-status reaching.<br />  \"null\"-value means that redirect won't be executed (because if \"null\" was provided only by invoice creation POST-endpoint, default value should have been used).</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"invoice_id\",\n    \"status\": \"created\",\n    \"createdAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\",\n    \"company\": {\n        \"name\": \"%company_name\",\n        \"logoUrl\": \"%logo_url%\",\n        \"assets\": [\n            {\n                \"asset\": \"btc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"eth\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdt\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"sol\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ton\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bnb\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ltc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"near\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"trx\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bch\",\n                \"isAllowed\": false\n            }\n        ]\n    },\n    \"invoiceContent\": {\n        \"invoiceCurrency\": \"eur\",\n        \"items\": [\n            {\n                \"name\": \"Coffee\",\n                \"price\": \"10\"\n            },\n            {\n                \"name\": \"Sugar\",\n                \"price\": \"1\"\n            },\n            {\n                \"name\": \"Regular client discount\",\n                \"price\": \"-3\"\n            }\n        ],\n        \"paymentCurrency\": \"usdc\",\n        \"isMerchantPaysFee\": false,\n        \"redirectURL\": \"%url_for_DONE_statused_invoices_redirection%\"\n    }\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","invoices","v1","regular"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"935d53fd-bc97-439e-a628-2eea25ad960e"},{"name":"Fill invoice with client info","id":"0d827164-1ecf-406c-a627-99aec86dc3e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"paymentCurrency\": \"sol\",\n    \"clientEmail\": \"client@example.com\"\n}","options":{"raw":{"language":"json"}}},"url":"https://pay.my.kyrrex.com/api/invoices/v1/regular/%invoice_id%/proceed","description":"<h3 id=\"fill-regular-invoice-with-clients-info\">Fill regular invoice with client's info</h3>\n<p>This endpoint fills regular invoice with client's info, like email-address and paymentAsset (if it's not pre-defined by a merchant during the invoice creation)</p>\n<h4 id=\"request\">Request</h4>\n<p>Headers:</p>\n<p>Authorization is not-required as invoice-info is provided to a non-registered client and uses it's email to identify his person as an invoice-payee</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>\"<code>email</code>\" (string, required) - client's email. Should meet the standard email-format as <a href=\"https://mailto:clientemail@service.domain\">clientemail@service.domain</a></p>\n</li>\n<li><p>\"<code>asset</code>\" (string, required) - asset's name+network (temporary combined) in which client want to pay invoice. Will be set as \"<code>paymentCurrency</code>\" parameter value.<br />  Should be one of the following values: btc, eth, trc20usdt, usdterc20, sol, ton, usdc, bnb, ltc, trx, bch.<br />  Parameter is ignored if paymentCurrency parameter was previously provided during the invoice creation or it's value was null</p>\n</li>\n</ul>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://pay.my.kyrrex.com/api/invoices/v1/regular/%invoice_id%/proceed' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"paymentCurrency\": \"sol\",\n    \"clientEmail\": \"client@example.com\"\n}'\n\n</code></pre>\n<h4 id=\"response\">Response:</h4>\n<ul>\n<li><p><code>\"id\"</code> - invoice identifier. Can be used to open invoice on frontend-side by the following link:<br />  <code>https://pay.my.kyrrex.com/%invoice_id%</code></p>\n</li>\n<li><p><code>\"status\"</code>- dispalys current invoice state. Can be the following:</p>\n<ul>\n<li><p>created - invoice has been created by a merchant but hasn't been filled with client's info (email, payment currency and it's network)</p>\n</li>\n<li><p>pending - client has filled invoice with his info and received the payment address for deposit to be made. Deposit is still not received by invoice</p>\n</li>\n<li><p>processing - deposit receving procedure has started and in progress</p>\n</li>\n<li><p>wrong - deposit is successfully received, but it's amount is lower than expected (lower than invoice total amount)</p>\n</li>\n<li><p>done - deposit is successfully received. One of the following statements has been reached:</p>\n<ul>\n<li><p>deposit amount equals or is greater than expected</p>\n</li>\n<li><p>previously \"wrong\"-statused invoice has been accepted by merchant</p>\n</li>\n<li><p>deposit amount is lower that expected by a sum, covered by underpayment limit</p>\n</li>\n</ul>\n</li>\n<li><p>refunded - previously \"wrong\"-statused invoice has been rejected by merchant</p>\n</li>\n<li><p>failed - deposit receiving is failed by the system due to techical issues</p>\n</li>\n<li><p>expired - previously \"pending\"-statused invoice hasn't received payment till expiration time</p>\n</li>\n</ul>\n</li>\n<li><p><code>\"createdAt\"</code> - invoice creation date and time</p>\n</li>\n<li><p><code>\"company\"</code> - merchant's company information</p>\n<ul>\n<li><p>name</p>\n</li>\n<li><p>logourl - link to company's logo location</p>\n</li>\n<li><p>assets - list of assets settings applied for merchant's company. Displays whether asset is acceptable by a company and can be used as a <code>paymentCurrency</code> parameter value or not</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>invoiceContent</code>\" - list of primary invoice information like items list, prices, fees payee, invoice currency and payment currency (can be null for \"created\"-statuses invoices)</p>\n</li>\n<li><p>\"<code>redirectURL</code>\" - URL that will be automatically opened after invoice's \"Done\"-status reaching.<br />  \"null\"-value means that redirect won't be executed (because if \"null\" was provided only by invoice creation POST-endpoint, default value should have been used).</p>\n</li>\n<li><p>\"<code>clientEmail</code>\" - client's email, provided with PATCH-request.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status.</p>\n</li>\n<li><p>\"<code>address</code>\" - payment address according to merchant pre-definition during the invoice cretaion POST-request execution OR client choice during the invoice filling with PATCH-request.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status.</p>\n</li>\n<li><p><code>id</code> - our address internal id</p>\n</li>\n<li><p><code>address</code> - address itself in text-format</p>\n</li>\n<li><p><code>tag</code> - address-related tag. If <code>asset</code> is not \"ton\" -&gt; tag should be \"null\"</p>\n</li>\n<li><p><code>asset</code> - asset name</p>\n</li>\n<li><p>\"<code>paymentDetails</code>\" - rate-based calculations of invoice fees in paymentCurrency. Used to calculate gross-amount that should be received for invoice.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status.</p>\n<ul>\n<li><p><code>rate</code> - invoiceCurrency -&gt; paymentCurrency rate</p>\n</li>\n<li><p><code>invoiceFee</code> - fees in paymentCurrency</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>expiredAt</code>\" - date and time for invoice expected expiration-time.<br />  Should have 30 minutes delay with \"<code>createdAt</code>\" parameter value for all assets except BTC - it's deilay is 120 minutes.<br />  if expiredAt time is reached and no deposits were received - invoice receives \"Expired\"-status.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status as expiration applies for payment window only that requires <code>address</code> to be assigned for invoice</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"%invoice_id%\",\n    \"status\": \"%invoice_status%\",\n    \"createdAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\",\n    \"company\": {\n        \"name\": \"%company_name%\",\n        \"logoUrl\": \"%logo_url%\",\n        \"assets\": [\n            {\n                \"asset\": \"btc\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"eth\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdt\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"sol\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ton\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bnb\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ltc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"near\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"trx\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bch\",\n                \"isAllowed\": false\n            }\n        ]\n    },\n    \"invoiceContent\": {\n        \"invoiceCurrency\": \"eur\",\n        \"items\": [\n            {\n                \"name\": \"Coffee\",\n                \"price\": \"1000\"\n            },\n            {\n                \"name\": \"Sugar\",\n                \"price\": \"1\"\n            },\n            {\n                \"name\": \"Regular client discount\",\n                \"price\": \"-3\"\n            }\n        ],\n        \"paymentCurrency\": \"trc20usdt\",\n        \"isMerchantPaysFee\": false\n    },\n    \"redirectURL\": \"%url_for_DONE_statused_invoices_redirection%\",\n    \"clientEmail\": \"client_mail@service.domain\",\n    \"address\": {\n        \"id\": \"%payment_address_id%\",\n        \"address\": \"%payment_address%\",\n        \"tag\": null,\n        \"asset\": \"trc20usdt\"\n    },\n    \"paymentDetails\": {\n        \"rate\": \"1.16843920\",\n        \"invoiceFee\": \"12.728032\"\n    },\n    \"expiredAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\"\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","invoices","v1","regular","%invoice_id%","proceed"],"host":["pay","my","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"0d827164-1ecf-406c-a627-99aec86dc3e4"},{"name":"Get invoice info","id":"6bc1834c-15a1-4d5f-8bde-99ae6041199a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":"https://my.pay.kyrrex.com/api/invoices/v1/regular/%invoice_id%","description":"<p>This endpoint allows to receive invoice info. For client it's necessary to see his invoice. For merchant it's necessary to have invoice info on his \"Invoices\" page</p>\n<h4 id=\"request\">Request</h4>\n<p>Headers:</p>\n<p>Authorization is not-required as invoice-info is provided to a non-registered client and uses it's email to identify his person as an invoice-payee</p>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/invoices/v1/regular/%invoice_id%' \\\n--header 'Content-Type: application/json'\n\n</code></pre>\n<h4 id=\"response\">Response:</h4>\n<p>Response for invoice's GET-request will differ regarding to invoice's status and his body's corresponding content.</p>\n<p>Full invoice body framework is the following:</p>\n<ul>\n<li><p><code>\"id\"</code> - invoice identifier. Can be used to open invoice on frontend-side by the following link: <code>https://pay.kyrrex.com/%invoice_id%</code></p>\n</li>\n<li><p><code>\"status\"</code>- dispalys current invoice state. Can be the following:</p>\n<ul>\n<li><p>created - invoice has been created by a merchant but hasn't been filled with client's info (email, payment currency and it's network)</p>\n</li>\n<li><p>pending - client has filled invoice with his info and received the payment address for deposit to be made. Deposit is still not received by invoice</p>\n</li>\n<li><p>processing - deposit receving procedure has started and in progress</p>\n</li>\n<li><p>wrong - deposit is successfully received, but it's amount is lower than expected (lower than invoice total amount)</p>\n</li>\n<li><p>done - deposit is successfully received. One of the following statements has been reached:</p>\n<ul>\n<li><p>deposit amount equals or is greater than expected</p>\n</li>\n<li><p>previously \"wrong\"-statused invoice has been accepted by merchant</p>\n</li>\n<li><p>deposit amount is lower that expected by a sum, covered by underpayment limit</p>\n</li>\n</ul>\n</li>\n<li><p>refunded - previously \"wrong\"-statused invoice has been rejected by merchant</p>\n</li>\n<li><p>failed - deposit receiving is failed by the system due to techical issues</p>\n</li>\n<li><p>expired - previously \"pending\"-statused invoice hasn't received payment till expiration time</p>\n</li>\n</ul>\n</li>\n<li><p><code>\"createdAt\"</code> - invoice creation date and time</p>\n</li>\n<li><p><code>\"company\"</code> - merchant's company information</p>\n<ul>\n<li><p>name</p>\n</li>\n<li><p>logourl - link to company's logo location</p>\n</li>\n<li><p>assets - list of assets settings applied for merchant's company. Displays whether asset is acceptable by a company and can be used as a <code>paymentCurrency</code> parameter value or not</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>invoiceContent</code>\" - list of primary invoice information like items list, prices, fees payee, invoice currency and payment currency (can be null for \"created\"-statuses invoices)</p>\n</li>\n<li><p>\"<code>redirectURL</code>\" - URL that will be automatically opened after invoice's \"Done\"-status reaching.<br />  \"null\"-value means that redirect won't be executed (because if \"null\" was provided only by invoice creation POST-endpoint, default value should have been used).</p>\n</li>\n<li><p>\"<code>clientEmail</code>\" - client's email, provided with PATCH-request.<br />  Parameter is unavailable for invoices with \"Created\"-status.</p>\n</li>\n<li><p>\"<code>address</code>\" - payment address according to merchant pre-definition during the invoice cretaion POST-request execution OR client choice during the invoice filling with PATCH-request.<br />  Parameter is unavailable for invoices with \"Created\"-status.</p>\n<ul>\n<li><p><code>id</code> - our address internal id</p>\n</li>\n<li><p><code>address</code> - address itself in text-format</p>\n</li>\n<li><p><code>tag</code> - address-related tag. If <code>asset</code> is not \"ton\" -&gt; tag should be \"null\"</p>\n</li>\n<li><p><code>asset</code> - asset name</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>paymentDetails</code>\" - rate-based calculations of invoice fees in paymentCurrency. Used to calculate gross-amount that should be received for invoice.<br />  Parameter is unavailable for invoices with \"Created\"-status.</p>\n<ul>\n<li><p><code>rate</code> - invoiceCurrency -&gt; paymentCurrency rate</p>\n</li>\n<li><p><code>invoiceFee</code> - fees in paymentCurrency</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>invoiceTransactions</code>\" - list of invoice transactions.<br />  Parameter is unavailable until at least one transaction has occurred in the system for this invoice.<br />  Content for invoiceTransactions can be dynamically added as new transactions are created: deposits, autoswaps.<br />  <em>Objects content TBD</em></p>\n</li>\n<li><p>\"<code>expiredAt</code>\" - date and time for invoice expected expiration-time.<br />  Should have 30 minutes delay with \"<code>createdAt</code>\" parameter value for all assets except BTC - it's deilay is 120 minutes.<br />  if expiredAt time is reached and \"<code>invoiceTransactions</code>\" has zero deposits or absent - invoice receives \"Expired\"-status.<br />  Parameter is unavailable for invoices with \"Created\"-status as expiration applies for payment window only that requires <code>address</code> to be assigned for invoice</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"%invoice_id%\",\n    \"status\": \"%invoice_status%\",\n    \"createdAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\",\n    \"company\": {\n        \"name\": \"%company_name%\",\n        \"logoUrl\": \"%logo_url%\",\n        \"assets\": [\n            {\n                \"asset\": \"btc\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"eth\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdt\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"sol\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ton\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bnb\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ltc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"near\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"trx\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bch\",\n                \"isAllowed\": false\n            }\n        ]\n    },\n    \"invoiceContent\": {\n        \"invoiceCurrency\": \"eur\",\n        \"items\": [\n            {\n                \"name\": \"Coffee\",\n                \"price\": \"1000\"\n            },\n            {\n                \"name\": \"Sugar\",\n                \"price\": \"1\"\n            },\n            {\n                \"name\": \"Regular client discount\",\n                \"price\": \"-3\"\n            }\n        ],\n        \"paymentCurrency\": \"trc20usdt\",\n        \"isMerchantPaysFee\": false\n    },\n    \"redirectURL\": \"%url_for_DONE_statused_invoices_redirection%\",\n    \"clientEmail\": \"client_mail@service.domain\",\n    \"address\": {\n        \"id\": \"%payment_address_id%\",\n        \"address\": \"%payment_address%\",\n        \"tag\": null,\n        \"asset\": \"trc20usdt\"\n    },\n    \"paymentDetails\": {\n        \"rate\": \"1.16843920\",\n        \"invoiceFee\": \"12.728032\"\n    },\n     \"invoiceTransactions\": [\n        {\n            \"id\": \"%transaction_id%\",\n            \"amount\": \"34.1054\",\n            \"from\": \"usdt\",\n            \"txHash\": \"https://tronscan.org/#/transaction/%tx_id%\",\n            \"companyId\": \"%company_id%\",\n            \"invoiceId\": \"%invoice_id%\",\n            \"addressId\": \"%payment_address_id%\",\n            \"createdAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\"\n        }\n    ],\n    \"expiredAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\"\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","invoices","v1","regular","%invoice_id%"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"6bc1834c-15a1-4d5f-8bde-99ae6041199a"}],"id":"0b6478de-9ed0-4508-a82d-d609f263f76c","_postman_id":"0b6478de-9ed0-4508-a82d-d609f263f76c","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"AnyAmount invoice creation, filling and info-receiving","item":[{"name":"Create new AnyAmount invoice","id":"87d34fae-a4e4-481c-86a4-0b7522c46ff3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side"}],"body":{"mode":"raw","raw":"{\n    \"items\": [\n      {\n        \"name\": \"Product 1\"\n      }\n    ],\n    \"isMerchantPaysFee\": null,\n    \"paymentCurrency\": null,\n    \"redirectURL\": \"https://google.com\"\n  }","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/invoices/v1/unlimited","description":"<h3 id=\"create-new-any-amount-invoice\">Create new Any Amount invoice</h3>\n<p>This endpoint creates a new AnyAmount invoice under merchant's account</p>\n<h4 id=\"request\">Request</h4>\n<p>Headers:</p>\n<ul>\n<li>Authorization: Bearer %merchant_public_token% (can be found in merchant's account/Settings/Tokens/Public_Token)</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>\"<code>items</code>\" (object, required) - item or service provided by invoice.<br />  \"items\" object can contain as much items as needed (but best practice for AnyAmount invoice is the only one item,service or purpose)</p>\n</li>\n<li><p>\"<code>name</code>\" (string, required) - any desirable item name<br />  (Note: items don't require <code>\"price\"</code> for AnyAmount invoices as their concent is to let client decide what price should be paid by himself)</p>\n</li>\n<li><p>\"<code>isMerchantPaysFee</code>\" (boolean, non-required) - fee payee selector.<br />  - <code>false</code> - client pays invoice total invoice amount + fees, merchant receives full total invoice amount<br />  - <code>true</code> - client pays invoice total amount only, merchant receives total invoice amount excluding fee-amount</p>\n</li>\n<li><p>\"<code>paymentCurrency</code>\" (string, non-required) - currency that merchant want to receive from a client. Can be one of crypto-assets that are enabled by a merchant for accepting on Settings/Payment/Accept_Assets page.<br />  If parameter is not provided or null-value is received - payment currency choice will be left to a client</p>\n</li>\n<li><p>\"<code>redirectURL</code>\" (string, non-required) - URL that will be automatically opened after invoice's \"Done\"-status reaching. If string-value is provided - this value will be used for redirection. If \"null\"-value is provided or parameter is absent - default value from Settings/Payment page will be used.</p>\n</li>\n</ul>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/invoices/v1/unlimited' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side' \\\n--data '{\n    \"items\": [\n      {\n        \"name\": \"Product 1\"\n      }\n    ],\n    \"isMerchantPaysFee\": null,\n    \"paymentCurrency\": null,\n    \"redirectURL\": \"https://google.com\"\n  }'\n\n</code></pre>\n<h4 id=\"response\">Response:</h4>\n<ul>\n<li><p><code>\"id\"</code> - invoice identifier. Can be used to open invoice on frontend-side by the following link: <code>https://pay.kyrrex.com/%invoice_id%</code></p>\n</li>\n<li><p><code>\"status\"</code>- dispalys current invoice state. Can be the following:</p>\n<ul>\n<li><p>created - invoice has been created by a merchant but hasn't been filled with client's info (email, payment currency and it's network)</p>\n</li>\n<li><p>pending - client has filled invoice with his info and received the payment address for deposit to be made. Deposit is still not received by invoice</p>\n</li>\n<li><p>processing - deposit receving procedure has started and in progress</p>\n</li>\n<li><p>done - deposit is successfully received. One of the following statements has been reached:</p>\n<ul>\n<li><p>deposit amount equals or is greater than expected</p>\n</li>\n<li><p>previously \"wrong\"-statused invoice has been accepted by merchant</p>\n</li>\n<li><p>deposit amount is lower that expected by a sum, covered by underpayment limit</p>\n</li>\n</ul>\n</li>\n<li><p>failed - deposit receiving is failed by the system due to techical issues</p>\n</li>\n<li><p>expired - previously \"pending\"-statused invoice hasn't received payment till expiration time<br />  (Note: \"Wrong\" and \"Refunded\" statues are not appliable for AnyAmount-invoices as such invoices don't have defined expected amount to be received, what means that underpayment and it's refunding are impossible)</p>\n</li>\n</ul>\n</li>\n<li><p><code>\"createdAt\"</code> - invoice creation date and time</p>\n</li>\n<li><p>\"<code>type</code>\" - invoice type. Can be regular, unlimited or business</p>\n</li>\n<li><p><code>\"company\"</code> - merchant's company information</p>\n<ul>\n<li><p>name</p>\n</li>\n<li><p>logourl - link to company's logo location</p>\n</li>\n<li><p>assets - list of assets settings applied for merchant's company. Displays whether asset is acceptable by a company and can be used as a <code>paymentCurrency</code> parameter value or not</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>invoiceContent</code>\" - list of primary invoice information like items list, fees payee, invoice currency and payment currency (can be null for \"created\"-statuses invoices)</p>\n</li>\n<li><p>\"<code>redirectURL</code>\" - URL that will be automatically opened after invoice's \"Done\"-status reaching.<br />  \"null\"-value means that redirect won't be executed (because if \"null\" was provided only by invoice creation POST-endpoint, default value should have been used).</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"invoice_id\",\n    \"status\": \"created\",\n    \"createdAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\",\n    \"type\": \"unlimited\",\n    \"company\": {\n        \"name\": \"%company_name\",\n        \"logoUrl\": \"%logo_url%\",\n        \"assets\": [\n            {\n                \"asset\": \"btc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"eth\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdt\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"sol\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ton\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bnb\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ltc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"near\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"trx\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bch\",\n                \"isAllowed\": false\n            }\n        ]\n    },\n    \"invoiceContent\": {\n        \"invoiceCurrency\": \"eur\",\n        \"items\": [\n            {\n                \"name\": \"Product 1\"\n            }\n        ],\n        \"paymentCurrency\": \"usdc\",\n        \"isMerchantPaysFee\": false,\n        \"redirectURL\": \"%url_for_DONE_statused_invoices_redirection%\"\n    }\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","invoices","v1","unlimited"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"87d34fae-a4e4-481c-86a4-0b7522c46ff3"},{"name":"Fill AnyAmount invoice with client info","id":"966b4cf2-2631-403d-b90b-8fb518a23e90","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"paymentCurrency\": \"usdc\",\n    \"clientEmail\": \"client@example.com\",\n    \"paymentAmount\": 100,\n    \"invoiceCurrency\": \"eur\"\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/invoices/v1/unlimited/%invoice_id%/proceed","description":"<h3 id=\"fill-anyamount-invoice-with-clients-info\">Fill AnyAmount invoice with client's info</h3>\n<p>This endpoint fills AnyAmount invoice with client's info, like email-address and paymentAsset (if it's not pre-defined by a merchant during the invoice creation)</p>\n<h4 id=\"request\">Request</h4>\n<p>Headers:</p>\n<p>Authorization is not-required as invoice-info is provided to a non-registered client and uses it's email to identify his person as an invoice-payee</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>\"<code>clientEmail</code>\" (string, required) - client's email. Should meet the standard email-format as <a href=\"https://mailto:clientemail@service.domain\">clientemail@service.domain</a></p>\n</li>\n<li><p>\"<code>paymentCurrency</code>\" (string, required) - asset's name+network (temporary combined) in which client want to pay invoice. Will be set as \"<code>paymentCurrency</code>\" parameter value.<br />  Should be one of the following values: btc, eth, trc20usdt, usdterc20, sol, ton, usdc, bnb, ltc, trx, bch.<br />  Parameter is ignored if paymentCurrency parameter was previously provided during the invoice creation</p>\n</li>\n<li><p>\"<code>paymentAmount</code>\" (number, required) - amount that is entered by a client to receive a reference of amount to be received in invoiceCurrency (required for FE-side correct work, can have any desirabe value for API-only invoice processing)</p>\n</li>\n<li><p>\"<code>invoiceCurrency</code>\" (string, non-required) - invoice currency for payment amount reference to be calculated (required for FE-side correct work, can be ignored for API-only invoice processing)</p>\n</li>\n</ul>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/invoices/v1/unlimited/%invoice_id%/proceed' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"paymentCurrency\": \"usdc\",\n    \"clientEmail\": \"client@example.com\",\n    \"paymentAmount\": 100,\n    \"invoiceCurrency\": \"eur\"\n}'\n\n</code></pre>\n<h4 id=\"response\">Response:</h4>\n<ul>\n<li><p><code>\"id\"</code> - invoice identifier. Can be used to open invoice on frontend-side by the following link: <code>https://pay.kyrrex.com/%invoice_id%</code></p>\n</li>\n<li><p><code>\"status\"</code>- dispalys current invoice state. Can be the following:</p>\n<ul>\n<li><p>created - invoice has been created by a merchant but hasn't been filled with client's info (email, payment currency and it's network)</p>\n</li>\n<li><p>pending - client has filled invoice with his info and received the payment address for deposit to be made. Deposit is still not received by invoice</p>\n</li>\n<li><p>processing - deposit receving procedure has started and in progress</p>\n</li>\n<li><p>done - deposit is successfully received. One of the following statements has been reached:</p>\n<ul>\n<li><p>deposit amount equals or is greater than expected</p>\n</li>\n<li><p>deposit amount is lower that expected by a sum, covered by underpayment limit</p>\n</li>\n</ul>\n</li>\n<li><p>failed - deposit receiving is failed by the system due to techical issues</p>\n</li>\n<li><p>expired - previously \"pending\"-statused invoice hasn't received payment till expiration time</p>\n</li>\n</ul>\n</li>\n<li><p><code>\"createdAt\"</code> - invoice creation date and time</p>\n</li>\n<li><p>\"<code>type</code>\" - invoice type. Can be regular, unlimited or business</p>\n</li>\n<li><p><code>\"company\"</code> - merchant's company information</p>\n<ul>\n<li><p>name</p>\n</li>\n<li><p>logourl - link to company's logo location</p>\n</li>\n<li><p>assets - list of assets settings applied for merchant's company. Displays whether asset is acceptable by a company and can be used as a <code>paymentCurrency</code> parameter value or not</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>invoiceContent</code>\" - list of primary invoice information like items list, fees payee, invoice currency and payment currency (can be null for \"created\"-statuses invoices)</p>\n</li>\n<li><p>\"<code>redirectURL</code>\" - URL that will be automatically opened after invoice's \"Done\"-status reaching.<br />  \"null\"-value means that redirect won't be executed (because if \"null\" was provided only by invoice creation POST-endpoint, default value should have been used).</p>\n</li>\n<li><p>\"<code>clientEmail</code>\" - client's email, provided with PATCH-request.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status.</p>\n</li>\n<li><p>\"<code>address</code>\" - payment address according to merchant pre-definition during the invoice cretaion POST-request execution OR client choice during the invoice filling with PATCH-request.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status.</p>\n<ul>\n<li><p><code>id</code> - our address internal id</p>\n</li>\n<li><p><code>address</code> - address itself in text-format</p>\n</li>\n<li><p><code>tag</code> - address-related tag. If <code>asset</code> is not \"ton\" -&gt; tag should be \"null\"</p>\n</li>\n<li><p><code>asset</code> - asset name</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>paymentDetails</code>\" - rate-based calculations of invoice fees in paymentCurrency. Used to calculate gross-amount that should be received for invoice.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status.</p>\n<ul>\n<li><p><code>rate</code> - invoiceCurrency -&gt; paymentCurrency rate</p>\n</li>\n<li><p><code>invoiceFee</code> - fees in paymentCurrency</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>expiredAt</code>\" - date and time for invoice expected expiration-time.<br />  Should have 30 minutes delay with \"<code>createdAt</code>\" parameter value for all assets except BTC - it's deilay is 120 minutes.<br />  if expiredAt time is reached and no deposits were received - invoice receives \"Expired\"-status.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status as expiration applies for payment window only that requires <code>address</code> to be assigned for invoice</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"%invoice_id%\",\n    \"status\": \"%invoice_status%\",\n    \"createdAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\",\n    \"type\": \"unlimited\",\n    \"company\": {\n        \"name\": \"%company_name%\",\n        \"logoUrl\": \"%logo_url%\",\n        \"assets\": [\n            {\n                \"asset\": \"btc\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"eth\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdt\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"sol\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ton\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bnb\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ltc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"near\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"trx\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bch\",\n                \"isAllowed\": false\n            }\n        ]\n    },\n    \"invoiceContent\": {\n        \"items\": [\n            {\n                \"name\": \"Product 1\"\n            }\n        ],\n        \"paymentCurrency\": \"trc20usdt\",\n        \"isMerchantPaysFee\": false,\n        \"paymentAmount\": \"100\"\n    },\n    \"redirectURL\": \"%url_for_DONE_statused_invoices_redirection%\",\n    \"clientEmail\": \"client_mail@service.domain\",\n    \"address\": {\n        \"id\": \"%payment_address_id%\",\n        \"address\": \"%payment_address%\",\n        \"tag\": null,\n        \"asset\": \"trc20usdt\",\n        \"qrCodeURL\": \"string link to address QR-code generated\",\n        \"qrCodeBase64\": \"string link to address QR-code generated in Base64\"\n    },\n    \"paymentDetails\": {\n        \"rate\": \"1.16843920\",\n        \"invoiceFee\": \"12.728032\"\n    },\n    \"expiredAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\"\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","invoices","v1","unlimited","%invoice_id%","proceed"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"966b4cf2-2631-403d-b90b-8fb518a23e90"}],"id":"666647bb-72c9-4a9b-b690-3cf7c089d943","_postman_id":"666647bb-72c9-4a9b-b690-3cf7c089d943","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"Business invoice creation, filling and info-receiving","item":[{"name":"Create new Business invoice","id":"aa6fb71e-455a-48d6-9f44-d834a7b3396f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side"}],"body":{"mode":"raw","raw":"{\n    \"invoiceCurrency\": \"eur\",\n    \"items\": [\n      {\n        \"description\": \"Product 1\",\n        \"price\": 100.50\n      },\n      {\n        \"description\": \"Product 2\",\n        \"price\": 1.00\n      }\n    ],\n    \"isMerchantPaysFee\": true,\n    \"paymentCurrency\": \"usdt\",\n    \"invoiceNumber\": \"INV-123\",\n    \"seller\": {\n      \"name\": \"Company Name\",\n      \"address\": \"123 Business St, City, Country\",\n      \"phone\": \"+1234567890\",\n      \"taxId\": \"TAX123456\"\n    },\n    \"buyer\": {\n      \"name\": \"Customer Name\",\n      \"email\": \"customer@example.com\",\n      \"address\": \"456 Customer Ave, City, Country\",\n      \"phone\": \"+0987654321\",\n      \"taxId\": \"CUST789012\"\n    },\n    \"taxes\": [\n      {\n        \"name\": \"VAT\",\n        \"amount\": 21.00\n    }\n    ],\n    \"notesToBuyer\": \"Thank you for your business!\",\n    \"internalNotes\": \"Internal notes for accounting\",\n    \"issueDate\": \"2024-01-15\",\n    \"dueDate\": \"2024-02-15\",\n    \"redirectURL\": \"https://google.com\"\n  }","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/invoices/v1/business","description":"<h3 id=\"create-new-business-invoice\">Create new business invoice</h3>\n<p>This endpoint creates a new business invoice under merchant's account</p>\n<h4 id=\"request\">Request</h4>\n<p>Headers:</p>\n<ul>\n<li>Authorization: Bearer %merchant_public_token% (can be found in merchant's account/Settings/Tokens/Public_Token)</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>\"<code>invoiceCurrency</code>\" (string,required) - invoice items price currency.<br />  Can be eur, usd, one of crypto-assets supported by a system (currently: usdt, usdc, btc, eth, ton, sol, bnb, bch, ltc, trx)</p>\n</li>\n<li><p>\"<code>items</code>\" (object, required) - list of invoce items, each item should contain name and price. \"items\" object can contain as much items as needed</p>\n</li>\n<li><p>\"<code>description</code>\" (string, required) - any desirable item name</p>\n</li>\n<li><p>\"<code>price</code>\" (number, required) - any desirable item price specified in invoiceCurrency.<br />  Can have any precision, but will be standartized or rounded to the following values:<br />  - usd (2)<br />  - eur (2)<br />  - usdt (2)<br />  - usdc (2)<br />  - btc (6)<br />  - eth (6)<br />  - ton (4)<br />  - sol (4)<br />  - bnb (8)<br />  - bch (8)<br />  - ltc (8)<br />  - trx (6)<br />  Price of any item(s) can be zero or negative if total price of all invoice items is greater than 0</p>\n</li>\n<li><p>\"<code>isMerchantPaysFee</code>\" (boolean, non-required) - fee payee selector.<br />  - <code>false</code> - client pays invoice total invoice amount + fees, merchant receives full total invoice amount<br />  - <code>true</code> - client pays invoice total amount only, merchant receives total invoice amount excluding fee-amount</p>\n</li>\n<li><p>\"<code>paymentCurrency</code>\" (string, non-required) - currency that merchant want to receive from a client. Can be one of crypto-assets that are enabled by a merchant for accepting on Settings/Payment/Accept_Assets page.<br />  If parameter is not provided or null-value is received - payment currency choice will be left to a client</p>\n</li>\n<li><p>\"<code>invoiceNumber</code>\" (string,required) - invoice legal number. Can contain any symbols and should be unique for each business invoice.</p>\n</li>\n<li><p>\"<code>seller</code>\" (array, required) - seller's info legal block:</p>\n<ul>\n<li><p><code>name</code> (string, required) - company name</p>\n</li>\n<li><p><code>address</code> (string,required) - company address</p>\n</li>\n<li><p><code>phone</code> (string, required) - company phone</p>\n</li>\n<li><p><code>taxId</code> (string, non-required) - company tax payee id</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>buyer</code>\" (string, required) - buyer's info legal block:</p>\n<ul>\n<li><p><code>name</code> (string, required) - client's name</p>\n</li>\n<li><p><code>email</code> (string, required) - client's email (legal entity, doesn't replace emailAddress from a client during the invoice filling witl client's data)</p>\n</li>\n<li><p><code>address</code> (string, required) - client's address</p>\n</li>\n<li><p><code>phone</code> (string, required) - client's phone</p>\n</li>\n<li><p><code>taxid</code> (string, non-required) - client's tax payee id</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>taxes</code>\" (object, non-required) - additional taxs included into invoice:</p>\n<ul>\n<li><p><code>name</code> (string, required) - tax name</p>\n</li>\n<li><p><code>amount</code> (number, required) - tax amount</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>notesToBuyer</code>\" (string, ) - notes that will be provided to a client (buyer) during his invoice processing</p>\n</li>\n<li><p>\"<code>internalNotes</code>\" (string, non-required) - internal invoice-related information. Will be available for merchant on \"Invoices\"/invoice details page</p>\n</li>\n<li><p>\"<code>issueDate</code>\" (string, non-required) - invoice subject creation legal date</p>\n</li>\n<li><p>\"<code>dueDate</code>\" (string, non-required) - invoice subject expiration legal date</p>\n</li>\n<li><p>\"<code>redirectURL</code>\" (string, non-required) - URL that will be automatically opened after invoice's \"Done\"-status reaching. If string-value is provided - this value will be used for redirection. If \"null\"-value is provided or parameter is absent - default value from Settings/Payment page will be used.</p>\n</li>\n</ul>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/invoices/v1/business' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side' \\\n--data-raw '{\n    \"invoiceCurrency\": \"eur\",\n    \"items\": [\n      {\n        \"description\": \"Product 1\",\n        \"price\": 100.50\n      },\n      {\n        \"description\": \"Product 2\",\n        \"price\": 1.00\n      }\n    ],\n    \"isMerchantPaysFee\": true,\n    \"paymentCurrency\": \"usdt\",\n    \"invoiceNumber\": \"INV-123\",\n    \"seller\": {\n      \"name\": \"Company Name\",\n      \"address\": \"123 Business St, City, Country\",\n      \"phone\": \"+1234567890\",\n      \"taxId\": \"TAX123456\"\n    },\n    \"buyer\": {\n      \"name\": \"Customer Name\",\n      \"email\": \"customer@example.com\",\n      \"address\": \"456 Customer Ave, City, Country\",\n      \"phone\": \"+0987654321\",\n      \"taxId\": \"CUST789012\"\n    },\n    \"taxes\": [\n      {\n        \"name\": \"VAT\",\n        \"amount\": 21.00\n    }\n    ],\n    \"notesToBuyer\": \"Thank you for your business!\",\n    \"internalNotes\": \"Internal notes for accounting\",\n    \"issueDate\": \"2024-01-15\",\n    \"dueDate\": \"2024-02-15\",\n    \"redirectURL\": \"https://google.com\"\n  }'\n\n</code></pre>\n<h4 id=\"response\">Response:</h4>\n<ul>\n<li><p><code>\"id\"</code> - invoice identifier. Can be used to open invoice on frontend-side by the following link: <code>https://pay.kyrrex.com/%invoice_id%</code></p>\n</li>\n<li><p><code>\"status\"</code>- dispalys current invoice state. Can be the following:</p>\n<ul>\n<li><p>created - invoice has been created by a merchant but hasn't been filled with client's info (email, payment currency and it's network)</p>\n</li>\n<li><p>pending - client has filled invoice with his info and received the payment address for deposit to be made. Deposit is still not received by invoice</p>\n</li>\n<li><p>processing - deposit receving procedure has started and in progress</p>\n</li>\n<li><p>wrong - deposit is successfully received, but it's amount is lower than expected (lower than invoice total amount)</p>\n</li>\n<li><p>done - deposit is successfully received. One of the following statements has been reached:</p>\n<ul>\n<li><p>deposit amount equals or is greater than expected</p>\n</li>\n<li><p>previously \"wrong\"-statused invoice has been accepted by merchant</p>\n</li>\n<li><p>deposit amount is lower that expected by a sum, covered by underpayment limit</p>\n</li>\n</ul>\n</li>\n<li><p>refunded - previously \"wrong\"-statused invoice has been rejected by merchant</p>\n</li>\n<li><p>failed - deposit receiving is failed by the system due to techical issues</p>\n</li>\n<li><p>expired - previously \"pending\"-statused invoice hasn't received payment till expiration time</p>\n</li>\n</ul>\n</li>\n<li><p><code>\"createdAt\"</code> - invoice creation date and time</p>\n</li>\n<li><p>\"<code>type</code>\" - invoice type. Can be regular, unlimited or business</p>\n</li>\n<li><p><code>\"company\"</code> - merchant's company information</p>\n<ul>\n<li><p>name</p>\n</li>\n<li><p>logourl - link to company's logo location</p>\n</li>\n<li><p>assets - list of assets settings applied for merchant's company. Displays whether asset is acceptable by a company and can be used as a <code>paymentCurrency</code> parameter value or not</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>invoiceContent</code>\" - list of primary invoice information like items list, prices, fees payee, invoice currency and payment currency (can be null for \"created\"-statuses invoices)</p>\n</li>\n<li><p>\"<code>invoiceNumber</code>\" - invoice's legal number</p>\n</li>\n<li><p>\"<code>seller</code>\" - invoice's seller info block</p>\n</li>\n<li><p>\"<code>buyer</code>\" - invoice's buyer info block</p>\n</li>\n<li><p>\"<code>taxes</code>\" - invoice's taxes</p>\n</li>\n<li><p>\"<code>notesToBuyer</code>\" - info that will be provided for a client during the invoice processing</p>\n</li>\n<li><p>\"<code>internalNotes</code>\" - info that will be displayed ofr merchant on invoice details page via \"Invoices\" page</p>\n</li>\n<li><p>\"<code>issueDate</code>\" - invoice legal subject issue date</p>\n</li>\n<li><p><code>dueDate</code>\" - invoice legal subject expiration date</p>\n</li>\n<li><p>\"<code>redirectURL</code>\" - URL that will be automatically opened after invoice's \"Done\"-status reaching.<br />  \"null\"-value means that redirect won't be executed (because if \"null\" was provided only by invoice creation POST-endpoint, default value should have been used).</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"%invoice_id%\",\n    \"status\": \"created\",\n    \"createdAt\": \"2026-02-16T13:23:26.816Z\",\n    \"type\": \"Business\",\n    \"company\": {\n        \"name\": \"%company_name%\",\n        \"logoUrl\": \"%logo_url%\",\n        \"assets\": [\n            {\n                \"asset\": \"btc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"eth\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"usdt\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"sol\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"ton\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"usdc\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"bnb\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ltc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"near\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"trx\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bch\",\n                \"isAllowed\": false\n            }\n        ]\n    },\n    \"invoiceContent\": {\n        \"invoiceCurrency\": \"eur\",\n        \"items\": [\n            {\n                \"name\": \"Product 1\",\n                \"price\": \"1000.5\"\n            },\n            {\n                \"name\": \"Product 2\",\n                \"price\": \"1\"\n            }\n        ],\n        \"paymentCurrency\": \"usdt\",\n        \"isMerchantPaysFee\": true\n    },\n    \"invoiceNumber\": \"INV-123\",\n    \"seller\": {\n        \"name\": \"Company Name\",\n        \"address\": \"123 Business St, City, Country\",\n        \"phone\": \"+1234567890\",\n        \"taxId\": \"TAX123456\"\n    },\n    \"buyer\": {\n        \"name\": \"Customer Name\",\n        \"email\": \"customer@example.com\",\n        \"address\": \"456 Customer Ave, City, Country\",\n        \"phone\": \"+0987654321\",\n        \"taxId\": \"CUST789012\"\n    },\n    \"taxes\": [\n        {\n            \"name\": \"VAT\",\n            \"amount\": 21\n        }\n    ],\n    \"notesToBuyer\": \"Thank you for your business!\",\n    \"internalNotes\": \"Internal notes for accounting\",\n    \"issueDate\": \"2024-01-15\",\n    \"dueDate\": \"2024-02-15\",\n    \"redirectURL\": \"https://google.com\"\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","invoices","v1","business"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"aa6fb71e-455a-48d6-9f44-d834a7b3396f"},{"name":"Fill Business invoice with client info","id":"75de24e6-6a5b-4584-bb6d-6c4bbea221d8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"paymentCurrency\": \"trc20usdt\",\n    \"clientEmail\": \"client@example.com\"\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/invoices/v1/business/%invoice_id%/proceed","description":"<h3 id=\"fill-business-invoice-with-clients-info\">Fill business invoice with client's info</h3>\n<p>This endpoint fills business invoice with client's info, like email-address and paymentAsset (if it's not pre-defined by a merchant during the invoice creation)</p>\n<h4 id=\"request\">Request</h4>\n<p>Headers:</p>\n<p>Authorization is not-required as invoice-info is provided to a non-registered client and uses it's email to identify his person as an invoice-payee</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>\"<code>clientEmail</code>\" (string, required) - client's email. Should meet the standard email-format as <a href=\"https://mailto:clientemail@service.domain\">clientemail@service.domain</a></p>\n</li>\n<li><p>\"<code>paymentCurrency</code>\" (string, required) - asset's name+network (temporary combined) in which client want to pay invoice. Will be set as \"<code>paymentCurrency</code>\" parameter value.<br />  Should be one of the following values: btc, eth, trc20usdt, usdterc20, sol, ton, usdc, bnb, ltc, trx, bch.<br />  Parameter is ignored if paymentCurrency parameter was previously provided during the invoice creation</p>\n</li>\n</ul>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/invoices/v1/business/%invoice_id%/proceed' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"paymentCurrency\": \"trc20usdt\",\n    \"clientEmail\": \"client@example.com\"\n}'\n\n</code></pre>\n<h4 id=\"response\">Response:</h4>\n<ul>\n<li><p><code>\"id\"</code> - invoice identifier. Can be used to open invoice on frontend-side by the following link: <code>https://pay.kyrrex.com/%invoice_id%</code></p>\n</li>\n<li><p><code>\"status\"</code>- dispalys current invoice state. Can be the following:</p>\n<ul>\n<li><p>created - invoice has been created by a merchant but hasn't been filled with client's info (email, payment currency and it's network)</p>\n</li>\n<li><p>pending - client has filled invoice with his info and received the payment address for deposit to be made. Deposit is still not received by invoice</p>\n</li>\n<li><p>processing - deposit receving procedure has started and in progress</p>\n</li>\n<li><p>wrong - deposit is successfully received, but it's amount is lower than expected (lower than invoice total amount)</p>\n</li>\n<li><p>done - deposit is successfully received. One of the following statements has been reached:</p>\n<ul>\n<li><p>deposit amount equals or is greater than expected</p>\n</li>\n<li><p>previously \"wrong\"-statused invoice has been accepted by merchant</p>\n</li>\n<li><p>deposit amount is lower that expected by a sum, covered by underpayment limit</p>\n</li>\n</ul>\n</li>\n<li><p>refunded - previously \"wrong\"-statused invoice has been rejected by merchant</p>\n</li>\n<li><p>failed - deposit receiving is failed by the system due to techical issues</p>\n</li>\n<li><p>expired - previously \"pending\"-statused invoice hasn't received payment till expiration time</p>\n</li>\n</ul>\n</li>\n<li><p><code>\"createdAt\"</code> - invoice creation date and time</p>\n</li>\n<li><p>\"<code>type</code>\" - invoice type. Can be regular, unlimited or business</p>\n</li>\n<li><p><code>\"company\"</code> - merchant's company information</p>\n<ul>\n<li><p>name</p>\n</li>\n<li><p>logourl - link to company's logo location</p>\n</li>\n<li><p>assets - list of assets settings applied for merchant's company. Displays whether asset is acceptable by a company and can be used as a <code>paymentCurrency</code> parameter value or not</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>invoiceContent</code>\" - list of primary invoice information like items list, prices, fees payee, invoice currency and payment currency (can be null for \"created\"-statuses invoices)</p>\n</li>\n<li><p>\"<code>invoiceNumber</code>\" - invoice's legal number</p>\n</li>\n<li><p>\"<code>seller</code>\" - invoice's seller info block</p>\n</li>\n<li><p>\"<code>buyer</code>\" - invoice's buyer info block</p>\n</li>\n<li><p>\"<code>taxes</code>\" - invoice's taxes</p>\n</li>\n<li><p>\"<code>notesToBuyer</code>\" - info that will be provided for a client during the invoice processing</p>\n</li>\n<li><p>\"<code>internalNotes</code>\" - info that will be displayed ofr merchant on invoice details page via \"Invoices\" page</p>\n</li>\n<li><p>\"<code>issueDate</code>\" - invoice legal subject issue date</p>\n</li>\n<li><p><code>dueDate</code>\" - invoice legal subject expiration date</p>\n</li>\n<li><p>\"<code>redirectURL</code>\" - URL that will be automatically opened after invoice's \"Done\"-status reaching.<br />  \"null\"-value means that redirect won't be executed (because if \"null\" was provided only by invoice creation POST-endpoint, default value should have been used).</p>\n</li>\n<li><p>\"<code>clientEmail</code>\" - client's email, provided with PATCH-request.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status.</p>\n</li>\n<li><p>\"<code>address</code>\" - payment address according to merchant pre-definition during the invoice cretaion POST-request execution OR client choice during the invoice filling with PATCH-request.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status.</p>\n<ul>\n<li><p><code>id</code> - our address internal id</p>\n</li>\n<li><p><code>address</code> - address itself in text-format</p>\n</li>\n<li><p><code>tag</code> - address-related tag. If <code>asset</code> is not \"ton\" -&gt; tag should be \"null\"</p>\n</li>\n<li><p><code>asset</code> - asset name</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>paymentDetails</code>\" - rate-based calculations of invoice fees in paymentCurrency. Used to calculate gross-amount that should be received for invoice.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status.</p>\n<ul>\n<li><p><code>rate</code> - invoiceCurrency -&gt; paymentCurrency rate</p>\n</li>\n<li><p><code>invoiceFee</code> - fees in paymentCurrency</p>\n</li>\n</ul>\n</li>\n<li><p>\"<code>expiredAt</code>\" - date and time for invoice expected expiration-time.<br />  Should have 30 minutes delay with \"<code>createdAt</code>\" parameter value for all assets except BTC - it's deilay is 120 minutes.<br />  if expiredAt time is reached and no deposits were received - invoice receives \"Expired\"-status.<br />  Note: parameter was previously unavailable for invoices with \"Created\"-status as expiration applies for payment window only that requires <code>address</code> to be assigned for invoice</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"%invoice_id%\",\n    \"status\": \"%invoice_status%\",\n    \"createdAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\",\n    \"type\": \"regular\",\n    \"company\": {\n        \"name\": \"%company_name%\",\n        \"logoUrl\": \"%logo_url%\",\n        \"assets\": [\n            {\n                \"asset\": \"btc\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"eth\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdt\",\n                \"isAllowed\": true\n            },\n            {\n                \"asset\": \"sol\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ton\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"usdc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bnb\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"ltc\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"near\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"trx\",\n                \"isAllowed\": false\n            },\n            {\n                \"asset\": \"bch\",\n                \"isAllowed\": false\n            }\n        ]\n    },\n    \"invoiceContent\": {\n        \"invoiceCurrency\": \"eur\",\n        \"items\": [\n            {\n                \"name\": \"Coffee\",\n                \"price\": \"1000\"\n            },\n            {\n                \"name\": \"Sugar\",\n                \"price\": \"1\"\n            },\n            {\n                \"name\": \"Regular client discount\",\n                \"price\": \"-3\"\n            }\n        ],\n        \"paymentCurrency\": \"trc20usdt\",\n        \"isMerchantPaysFee\": false\n    },\n    \"invoiceNumber\": \"hki,dw\",\n    \"seller\": {\n        \"name\": \"Company Name\",\n        \"phone\": \"+1234567890\",\n        \"taxId\": \"TAX123456\",\n        \"address\": \"123 Business St, City, Country\"\n    },\n    \"buyer\": {\n        \"name\": \"Customer Name\",\n        \"email\": \"customer@example.com\",\n        \"phone\": \"+0987654321\",\n        \"taxId\": \"CUST789012\",\n        \"address\": \"456 Customer Ave, City, Country\"\n    },\n    \"taxes\": [\n        {\n            \"name\": \"VAT\",\n            \"amount\": 21\n        }\n    ],\n    \"notesToBuyer\": \"Thank you for your business!\",\n    \"internalNotes\": \"Internal notes for accounting\",\n    \"issueDate\": \"2024-01-15\",\n    \"dueDate\": \"2024-02-15\",\n    \"redirectURL\": \"%url_for_DONE_statused_invoices_redirection%\",\n    \"clientEmail\": \"client_mail@service.domain\",\n    \"address\": {\n        \"id\": \"%payment_address_id%\",\n        \"address\": \"%payment_address%\",\n        \"tag\": null,\n        \"asset\": \"trc20usdt\",\n        \"qrCodeURL\": \"string link to address QR-code generated\",\n        \"qrCodeBase64\": \"string link to address QR-code generated in Base64\"\n    },\n    \"paymentDetails\": {\n        \"rate\": \"1.16843920\",\n        \"invoiceFee\": \"12.728032\"\n    },\n    \"expiredAt\": \"YYYY-MM-DDTHH:MM:SS.000Z\"\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","invoices","v1","business","%invoice_id%","proceed"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"75de24e6-6a5b-4584-bb6d-6c4bbea221d8"}],"id":"35c9cd3a-c5f1-479f-b018-a446c89d14de","_postman_id":"35c9cd3a-c5f1-479f-b018-a446c89d14de","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"old versions","item":[{"name":"Invoice","id":"86c37f90-16e8-4d5a-940d-df22d93de72a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer %merchant_public_token% (can be found in merchant's account/Settings/Tokens/Public_Token) on FE-side","type":"text"},{"key":"content-type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"fiatAmount\": 100,\n    \"fiatCurrency\": \"eur\",\n    \"items\": [\n        {\n            \"name\": \"Coffee\",\n            \"price\": 50\n        }, {\n            \"name\": \"Sugar\",\n            \"price\": 50\n        }\n    ],\n    \"isUnlimited\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/invoices","description":"<p>This endpoint is used to create a new invoice.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><p><code>fiatAmount</code> (number): The amount in fiat currency for the invoice.</p>\n</li>\n<li><p><code>fiatCurrency</code> (string): The fiat currency in which the invoice amount is specified. Available values: \"eur\", \"usd\"</p>\n</li>\n<li><p><code>items</code> (array, optional): An array of items included in the invoice, where each item has a <code>name</code> (string) and <code>price</code> (number).</p>\n</li>\n<li><p><code>isUnlimited</code> (boolean): Indicates whether the invoice is unlimited.</p>\n</li>\n</ul>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/invoices' \\\n--header 'Authorization: Bearer %merchant_public_token% (can be found in merchant'\\''s account/Settings/Tokens/Public_Token) on FE-side' \\\n--header 'content-type: application/json' \\\n--data '{\n    \"fiatAmount\": 100,\n    \"fiatCurrency\": \"eur\",\n    \"items\": [\n        {\n            \"name\": \"Coffee\",\n            \"price\": 50\n        }, {\n            \"name\": \"Sugar\",\n            \"price\": 50\n        }\n    ],\n    \"isUnlimited\": false\n}'\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>The response to this request will contain the details of the created invoice, including the invoice ID, status, and payment details.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"invoiceUrl\": \"https://pay.my.kyrrex.com/%invoice_id%\",\n    \"customInvoice\": {\n        \"id\": \"%invoice_id%\",\n        \"items\": [\n            {\n                \"name\": \"test\",\n                \"asset\": \"eur\",\n                \"price\": 100\n            }\n        ],\n        \"invoiceCurrency\": \"eur\",\n        \"fiatAmount\": 100,\n        \"cryptoAmount\": null,\n        \"paymentCurrency\": null,\n        \"isMerchantPaysFee\": false\n    }\n}\n\n</code></pre>\n<p>After client fills invoice with his email and selects an assset, the new invoice body updates appear with the customInvoice object:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": \"%invoice_id%\",\n    \"status\": \"pending\",\n    \"externalStatus\": null,\n    \"fee\": \"%fee-samount%\",\n    \"swapFee\": null,\n    \"fxRisksFee\": null,\n    \"depositFee\": null,\n    \"offRampFee\": null,\n    \"withdrawalFee\": null,\n    \"paymentScenario\": null,\n    \"email\": \"%client_emain@service.domain%\",\n    \"fiatAmount\": \"100\",\n    \"fiatCurrency\": \"eur\",\n    \"cryptoAmount\": \"117.630000\",\n    \"cryptoCurrency\": \"%selected_crypto_currency%\",\n    \"receivedAmount\": \"0\",\n    \"rate\": \"0.8501232678738417\",\n    \"items\": [\n        {\n            \"name\": \"test\",\n            \"asset\": \"eur\",\n            \"price\": 100\n        }\n    ],\n    \"isUnlimited\": false,\n    \"submerchantId\": null,\n    \"terminalId\": null,\n    \"createdAt\": \"2025-07-04T13:36:20.723Z\",\n    \"expiredAt\": \"2025-07-04T14:08:31.439Z\",\n    \"isMerchantPaysFee\": false,\n    \"priceIn\": \"eur\",\n    \"company\": {\n        \"id\": \"%comapny_id%\",\n        \"name\": \"companyName\",\n        \"assets\": [\n            {\n                \"asset\": \"btc\",\n                \"isAllowed\": true,\n                \"isAutoConversionAllowed\": false\n            },\n            {\n                \"asset\": \"eth\",\n                \"isAllowed\": true,\n                \"isAutoConversionAllowed\": false\n            },\n            {\n                \"asset\": \"usdt\",\n                \"isAllowed\": true,\n                \"isAutoConversionAllowed\": false\n            },\n            {\n                \"asset\": \"sol\",\n                \"isAllowed\": false,\n                \"isAutoConversionAllowed\": false\n            },\n            {\n                \"asset\": \"ton\",\n                \"isAllowed\": false,\n                \"isAutoConversionAllowed\": false\n            },\n            {\n                \"asset\": \"usdc\",\n                \"isAllowed\": false,\n                \"isAutoConversionAllowed\": false\n            }\n        ],\n        \"logoId\": null,\n        \"logoUrl\": null,\n        \"deletedAt\": null\n    },\n    \"address\": {\n        \"id\": \"%address_id%\",\n        \"address\": \"%address_value%\",\n        \"tag\": null,\n        \"asset\": \"%selected_asset%\",\n        \"companyId\": null,\n        \"externalId\": null,\n        \"isBlocked\": false,\n        \"isMerchant\": false,\n        \"isRotating\": false,\n        \"expiredAt\": null,\n        \"createdAt\": null,\n        \"updatedAt\": null,\n        \"deletedAt\": null\n    },\n    \"invoiceTransactions\": [],\n    \"minDeposit\": \"10.0\",\n    \"logoUrl\": null,\n    \"totalAmountWithFees\": \"119.828283\",\n    \"customInvoice\": {\n        \"id\": \"%invoice_id%\",\n        \"items\": [\n            {\n                \"name\": \"test\",\n                \"asset\": \"eur\",\n                \"price\": 100\n            }\n        ],\n        \"invoiceCurrency\": \"eur\",\n        \"fiatAmount\": \"100\",\n        \"cryptoAmount\": \"117.630000\",\n        \"paymentCurrency\": \"trc20usdt\",\n        \"isMerchantPaysFee\": false,\n        \"email\": \"client_email@service.domain\",\n        \"fees\": \"2.198282828282828\",\n        \"rate\": \"0.8501232678738417\",\n        \"address\": {\n            \"address\": \"%address_value%\",\n            \"tag\": null,\n            \"asset\": \"%selected_asset%\"\n        },\n        \"totalAmountGross\": \"119.828283\"\n    }\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","invoices"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[{"id":"e421d15a-53aa-4299-be68-a57a125f33d2","name":"Invoice","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"fiatAmount\": 100,\n    \"fiatCurrency\": \"eur\",\n    \"items\": [\n        {\n            \"name\": \"Coffee\",\n            \"price\": 50\n        }, {\n            \"name\": \"Sugar\",\n            \"price\": 50\n        }\n    ],\n    \"isUnlimited\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/invoices"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"invoiceUrl\":\"https://pay.kyrrex.com/genereted_invoice\"\n    }"}],"_postman_id":"86c37f90-16e8-4d5a-940d-df22d93de72a"},{"name":"Crypto Invoice","id":"8abb01fc-63ab-4105-9eb5-8be60f5aac28","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer %merchant_public_token% (can be found in merchant's account/Settings/Tokens/Public_Token)","type":"text"},{"key":"content-type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"cryptoAmount\": 100,\r\n    \"fiatCurrency\": \"eur\",\r\n    \"cryptoCurrency\": \"usdt\",\r\n    \"priceIn\": \"usdt\",\r\n    \"items\": [\r\n        {\r\n            \"name\": \"awd100\",\r\n            \"price\": 100,\r\n            \"asset\": \"usdt\"\r\n        }\r\n    ],\r\n    \"isMerchantPaysFee\": false,\r\n    \"isUnlimited\": false\r\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/invoices","description":"<h3 id=\"crypro-invoice\">Crypro Invoice</h3>\n<p>This endpoint creates invoice priced in crypto</p>\n<h4 id=\"request\">Request</h4>\n<p>Headers:</p>\n<ul>\n<li>Authorization: Bearer %merchant_public_token% (can be found in merchant's account/Settings/Tokens/Public_Token)</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p>\"fiatAmount\" parameter IS ABSENT</p>\n</li>\n<li><p>\"cryptoAmount\" parameter IS PRESENT</p>\n</li>\n<li><p>\"priceIn\" parameter has crypto-asset ticker-value (e.g. \"usdt\", \"btc\", \"eth\")</p>\n</li>\n</ul>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location 'https://my.pay.kyrrex.com/api/invoices' \\\n--header 'Authorization: Bearer %merchant_public_token% (can be found in merchant'\\''s account/Settings/Tokens/Public_Token)' \\\n--header 'content-type: application/json' \\\n--data '{\n    \"cryptoAmount\": 100,\n    \"fiatCurrency\": \"eur\",\n    \"cryptoCurrency\": \"usdt\",\n    \"priceIn\": \"usdt\",\n    \"items\": [\n        {\n            \"name\": \"awd100\",\n            \"price\": 100,\n            \"asset\": \"usdt\"\n        }\n    ],\n    \"isMerchantPaysFee\": false,\n    \"isUnlimited\": false\n}'\n\n</code></pre>\n<h4 id=\"response\">Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"invoiceUrl\": \"https://pay.my.kyrrex.com/%invoice_id%\"\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","invoices"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[{"id":"e44bcd73-ebf7-4abc-ba99-c7d94e6d68e3","name":"New Request","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer %merchant_public_token% (can be found in merchant's account/Settings/Tokens/Public_Token)","type":"text","disabled":true}],"body":{"mode":"raw","raw":"{\r\n    \"cryptoAmount\": 100,\r\n    \"fiatCurrency\": \"eur\",\r\n    \"cryptoCurrency\": \"usdt\",\r\n    \"priceIn\": \"usdt\",\r\n    \"items\": [\r\n        {\r\n            \"name\": \"фцв100\",\r\n            \"price\": 100,\r\n            \"asset\": \"usdt\"\r\n        }\r\n    ],\r\n    \"isMerchantPaysFee\": false,\r\n    \"isUnlimited\": false\r\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/invoices"},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":""}],"_postman_id":"8abb01fc-63ab-4105-9eb5-8be60f5aac28"},{"name":"Refresh token receiving","id":"0f8fe9d1-376d-46b3-8d8c-0325f3875ffb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer <accessToken>","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/auth/refresh-token","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","auth","refresh-token"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"0f8fe9d1-376d-46b3-8d8c-0325f3875ffb"}],"id":"0c6f4dba-f3d9-494e-b506-142ffaa4662a","_postman_id":"0c6f4dba-f3d9-494e-b506-142ffaa4662a","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}},{"name":"Settings API","item":[{"name":"Update email notifications settings","id":"91793d6b-0a8f-479b-92ce-0bb56bd704ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side"},{"key":"content-type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    \"notification\": {\r\n        \"merchantPaymentReceived\": false,\r\n        \"merchantTransactionFailed\": true,\r\n        \"customerPaymentReceived\": false,\r\n        \"customerTransactionFailed\": true\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/company","description":"<h2 id=\"update-company-notification-settings\">Update Company Notification Settings</h2>\n<p>This endpoint updates the notification settings for a company.</p>\n<h3 id=\"authorization\">Authorization:</h3>\n<p>\"Authorization\": StartFragmentBearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-sideEndFragment</p>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><p><strong>merchantPaymentReceived</strong> (boolean): true - to receive emails by merchant about payment receiving, false - to not receive them</p>\n</li>\n<li><p><strong>merchantTransactionFailed</strong> (boolean): true - to receive emails by merchant about payment failure , false - to not receive them</p>\n</li>\n<li><p><strong>customerPaymentReceived</strong> (boolean): true - to receive emails by customer about payment receiving, false - to not receive them</p>\n</li>\n<li><p><strong>customerTransactionFailed</strong> (boolean): true - to receive emails by customer about payment failure , false - to not receive them</p>\n</li>\n</ul>\n<h3 id=\"curl\">cURL:</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location --request PATCH 'https://my.pay.kyrrex.com/api/company' \\\n--header 'authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side' \\\n--header 'content-type: application/json' \\\n--data '{\n    \"notification\": {\n        \"merchantPaymentReceived\": false,\n        \"merchantTransactionFailed\": true,\n        \"customerPaymentReceived\": false,\n        \"customerTransactionFailed\": true\n    }\n}'\n\n</code></pre>\n<h3 id=\"expected-response-format\">Expected Response Format</h3>\n<p>The response from this endpoint will include current merchant's company info with the following \"notifications\" block:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    //different company's info before the notifications block...\n    \"notification\": {\n        \"merchantPaymentReceived\": false,\n        \"merchantTransactionFailed\": true,\n        \"customerPaymentReceived\": false,\n        \"customerTransactionFailed\": true\n    },\n     //different company's info after the notifications block...\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","company"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"91793d6b-0a8f-479b-92ce-0bb56bd704ac"},{"name":"Redirection URL adding","id":"1242cdd4-3cff-48e5-95ce-b690ae0ad055","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"authorization","value":"Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side"},{"key":"content-type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n    \"redirectURL\": \"%url_for_DONE_statused_invoices_redirection%\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://my.pay.kyrrex.com/api/company/settings/redirect-url","description":"<p>This enpoint allows to set the default redirection URL that will make \"Done\"-statused invoice be redirected to provided link.</p>\n<p>That setting will be applied for newly created invoices with absent \"redirectURL\" parameter or parameter value is null within the invoice creation POST-request.</p>\n<h4 id=\"request\">Request:</h4>\n<p>\"<code>redirectURL</code>\" (string, required) - URL-formatted link-address.<br />If null value is provided - redirection will be executed using \"redirectURL\" parameter provided for the invoice creation POST-request.<br />Note: if no link provided for the invoice creation POST-request and Settings \"redirectURL\" value is null - redirection won't be executed, client will see \"Done\"-statues invoice details page permanently.</p>\n<h4 id=\"curl\">cURL:</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location --request PUT 'https://my.pay.kyrrex.com/api/company/settings/redirect-url' \\\n--header 'authorization: Bearer %merchant_public_key%\" //can be found on the Settings/Tokens page on the FE-side' \\\n--header 'content-type: application/json' \\\n--data '{\n    \"redirectURL\": \"%url_for_DONE_statused_invoices_redirection%\"\n}'\n\n</code></pre>\n<h4 id=\"response\">Response:</h4>\n<p>All the company payment settings wil be returned with \"redirectURL\" parameter's actual value</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}},"urlObject":{"protocol":"https","path":["api","company","settings","redirect-url"],"host":["my","pay","kyrrex","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"1242cdd4-3cff-48e5-95ce-b690ae0ad055"}],"id":"d22ae750-9b5f-4924-9c63-bae9b06af3c4","_postman_id":"d22ae750-9b5f-4924-9c63-bae9b06af3c4","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","id":"266b567c-8006-47e8-8474-d0f111870972","name":"API","type":"folder"}}}],"id":"266b567c-8006-47e8-8474-d0f111870972","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"bfcf5f0c-cd36-4c34-a846-41db185156cd","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"a1233a58-6968-42f7-ab57-5a7bc1f31e98","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"266b567c-8006-47e8-8474-d0f111870972","description":""}],"variable":[{"key":"publicToken","value":"","type":"default"}]}