• Integrations · Nova Poshta API

Integration of Nova Poshta into the site

Novaya Poshta integration means choosing a branch, post office or address for the courier right at the checkout and creating an express waybill from the admin area, without going to the carrier's office. We do it through the API of the carrier on OpenCart, WooCommerce and Next.js. We start not with the code, but with the measurement: in the store of irrigation systems, the real guest registration gave 6 methods of delivery from two carriers - the "Delivery and payment" page does not prove this. The term is 3–10 working days.
See how it works
Price
after a free audit
Guarantee
30 days after project sign-off
Term of works
3–10 working days, five stages
after a free audit
Price
30
Guarantee

days after project sign-off

3–10
Term of works

working days, five stages

branch, courier at the address, post office
Scripts in checkout
6
Measurement of the checkout of the watering shop

delivery methods from 2 carriers, 3 payment methods (08/01/2026)

confirmed at checkout or on the delivery page in 16 stores, measurement 07/31/2026
Nova Poshta in our projects
checkout check, 1-2 business days, free
Before the estimate
30
Guarantee

calendar days for completed work

What's included

Complete list of work and what you get as a result

  • Selecting a branch from a list with a city search — the manager receives the branch ID instead of a string of text
  • Courier delivery to an address with verification of the service area - the buyer does not choose an option that does not exist for him
  • Mail in a separate way with your own directory — a scenario for small shipments without queuing at the branch
  • Approximate delivery cost calculation at checkout based on weight and declared value — instead of zero or empty space in the cart
  • Scheduled updating of the directory of cities, branches and post offices - new branches appear without your participation
  • Creating an express invoice from the admin account and printing the declaration - the manager does not go to the carrier's office and does not enter data a second time
  • The declaration number is returned in the order and in the letter to the buyer - the question "where is my parcel" is closed before it is delivered
  • Verification of the order form: surname, phone number in the correct format, weight, declared value - without these fields, the declaration will not be created
  • Check on a live order from the cart to the printing of the TTN with your manager - the script is accepted by the person who will use it
  • Written instructions for your processes and a 30-calendar-day guarantee for completed work
When this service isn't right

What's not included — so there are no surprises at delivery

  • Agreement with the carrier and obtaining API keys - they are issued to you, not to the contractor
  • Logistics: tariffs, calculation of the cost of delivery, agreements on discounts
  • Processing of returns and registration of return shipments in the carrier's office
  • Work with claims to the carrier
  • The connection of other delivery services is calculated separately
Who it's for

Situations where this service delivers results

Scenario 1 of 5

The manager specifies the city and department in each order

The order has arrived - then a call or message to find out where to take it. Integration transfers this issue to the checkout: the buyer chooses a department from the directory himself, and the same entry goes to the declaration. The mechanism here is about the cost of order processing, not traffic: you remove a few minutes of manual work from each sale.

We'll review your situation in a free audit

Free checkout check before integration

We don't judge delivery from words: we order a test item in your cart, get to choosing a delivery method, and see what the site actually delivers. It takes hours and gives an accurate scope of work.

What we measure

  • What delivery methods are actually available in the checkoutWe go through guest registration and request a list of methods. At the measured store, this gave 6 ways from two carriers — a figure from the actual checkout, not the Shipping & Payments page.
  • Is the branch selection a listManually entering the branch address in text is the main cause of errors in TTN. Let's see if the branch directory is pulled up and if it is updated automatically.
  • Is the shipping cost shown?At the measured store, Nova Poshta was shown in the checkout without a price at all, and the other carrier - as "0 UAH", although the information page called 35-80 UAH. The buyer sees zero and then learns the real amount at the branch.
  • What happens to the order after registrationIs TTN created and where. If the manager transfers the data to the carrier's office by hand every time, this means a few minutes per order and regular errors in the address.
  • Does the order have all the declaration fields?Surname, phone number in correct format, weight and declared value. Without them, TTN will not be created automatically, no matter how many APIs are connected.

What you get

  • Real checkout report: what delivery methods does the site offer and at what prices.
  • A list of what is missing from the order for the automatic creation of the declaration.
  • Evaluation of works with a division into mandatory and desirable.
  • A 20-30 minute conversation with you or your order manager.

Timeline: 1-2 working days

Why is it free

Because checking the checkout is several hours of work, and without it the assessment would be a guess. The report remains with you in any case.

What's next

After the inspection, we give an estimate and a deadline. If on your platform it is enough to configure an existing module instead of writing an integration, we will say so.

Short form: your contact and site URL

  • Contract, act and 30-day warranty

    Every project gets a written contract: scope, deadlines, amount, acceptance procedure. After delivery — act and invoice, then 30 calendar days of warranty.

  • Sole proprietor & bank transfer

    The contractor is a registered sole proprietor. Payment by invoice with closing documents.

  • Rights & access — yours

    Code, design and materials transfer to you after full payment. Domain, hosting, repository and analytics are registered to you.

  • Client portal instead of email chains

    During the project you get access to a portal: contracts, invoices, acts and project status in one place.

  • European clients

    Among our work — projects for Norway, Bulgaria, Moldova and Spain.

  • Verifiable numbers

    Every case in the portfolio comes with a link to a live site and a technical measurement.

  • Audit first, then pricing

    There is no price list on the site intentionally: the scope of the same work differs multiples between clients.

  • We say "no" when unsure

    If the task isn't ours or the deadline is unrealistic — we tell you upfront.

What affects the price

Why two seemingly identical tasks are priced differently

  • How many delivery scenarios do we enable?Only the branch is one directory and one field in the checkout. Branch plus courier plus post office - three different data sets, a separate service area check for the courier and three branches in the cost calculation. Each added script is a separate test block, not a check box in the settings.
  • Is it necessary to create declarations from adminThe most expensive part after the checkout itself, and at the same time the one that saves the most time. If you continue to create a TTN in the carrier's office, the stage falls out of the estimate completely - so to speak, instead of selling it for stock.
  • Status of the order formThe declaration requires a surname, phone number in the correct format, weight and declared value. If these fields are not present or the phone number is stored as an arbitrary string, the form must be redone together with the integration. This is where the difference between the lower and upper limit of the term is hidden.
  • PlatformUnder OpenCart 3 and WooCommerce there are ready-made assemblies, and the work is reduced to customization and improvements. Some of the Ukrainian modules have not yet been released for OpenCart 4. Next.js has its own checkout, so every step is written by hand.
  • Where do the weight and dimensions come from?If the weight is a separate field in the price, the calculation is per day. If it should be derived by rule from the category, name or set of items in the basket, this is a separate logic that is also checked on real orders.
Cases

Tasks and results in numbers — all metrics measured by us

shop of automatic and drip irrigation systems

Task
Allow the buyer to place an order with delivery to the branch, courier or to the post office and not lose the speed of returning pages.
Solution
OpenCart 3 under nginx with HTTP/2 and brotli compression. There are three Nova Poshta scenarios in the checkout — branch, courier and post office — plus a second carrier with three of its own options. Payment on delivery, bank transfer and card through the payment gateway.
Result
Measure 08/01/2026 through real checkout — product in cart, guest checkout, request list of methods: 2 carriers, 6 delivery methods and 3 payment methods. The first response from the server is 235 ms (median of five measurements), the main HTML is 143.6 KB, the brotli is 22.5 KB. The catalog of 300 products in 40 categories was confirmed by two independent methods with a 0% discrepancy. Defects found: /sitemap.xml gives 200 and zero bytes, JSON-LD does not have a single block, analytics is not installed at all.

official online store of garden tools

Task
Serve both an individual and a company at the checkout: different carriers, different payment methods, delivery to a site next to your own.
Solution
OpenCart 3 with four delivery services, including Nova Poshta, and eight payment methods on the terms page. Carrier logos with alt text filled, HSTS enabled, two language versions with hreflang.
Result
Measurement as of 07/31/2026: 8,690 unique addresses in the site map — about 8,600 cards and 81 category nodes. Four delivery services and eight payment methods. The first response from the server is 789.4 ms, and a 301 redirect to the language branch is included in these milliseconds. Defects found: the site map has 33,493 entries for the same 8,690 addresses, and the second language version, announced in hreflang, was not included in the map at all.

online store for the delivery of sweets, snacks and gift sets

Task
Make the delivery not a line in the conditions, but the lever of the middle check: the buyer must see the threshold of free shipping before the registration begins.
Solution
OpenCart 3 under nginx with HTTP/2. Four delivery methods, including Nova Poshta, and five online payment methods. The condition of free delivery to the Nova Poshta branch from UAH 2,500 is posted on the main page.
Result
Measured on 07/31/2026: first server response 402.9ms, full HTML load 532.4ms at 303.4KB. Defect found: it was not possible to calculate the volume of the directory from the outside - /sitemap.xml gives HTTP 200 with a body of zero bytes, and the sitemap feed 404.

Did not find your case?

Describe how it works on your side — we will tell you whether “Integration of Nova Poshta” fits and what it means in your situation. No brief and no call: one question, one answer.

Process steps

Transparent stages with approval at every step

Total duration:3–10 days

  1. Checkout and order fields

    1-2 working days

    We put the product in the basket, go through guest registration and ask for a list of delivery methods - what the site gives is the truth. In parallel, we look at which fields are actually stored in the order. The output is a list of what is missing for automatic declaration.

  2. API key, guides, update schedule

    1-2 working days

    We connect your key, fill in directories of cities, branches and post offices, set the update as a background task according to the schedule. Here we check that the directory is not pulled synchronously at the time of registration - otherwise the carrier's pause becomes a pause in your basket.

  3. Delivery methods and cost calculation in checkout

    1-3 working days

    We turn on the agreed scenarios: branch, courier, post office. We add an approximate calculation based on weight and declared value with a note that the exact amount is calculated by the carrier. We check that no method shows "0 UAH".

  4. Declaration from administration and printing

    0–3 working days — the stage is omitted if you create declarations in the office

    Button in the order: the manager receives the number of the express invoice and the printed form, the number is included in the order and in the letter to the buyer. If the necessary fields in the order form are missing, we will prove it right there.

  5. Live order and transfer to the manager

    on the day of delivery

    We go through the full scenario with your manager: shopping cart, choosing a department, registration, creating a declaration, printing. What remains to be done with our hands after us, we record in writing.

Technologies & integrations

What we build on and what it connects to

Stack

  • Nova Poshta API — directories of cities and branches plus creation of a declaration. Limit: the composition of methods is changed by the carrier, after updates we check again.
  • OpenCart 3 on PHP/MySQL - there are ready-made collections of delivery modules. Limit: two ocmods can hack each other.
  • OpenCart 4 - events rewritten. The border: part of the Ukrainian collections under it has not yet been published.
  • WooCommerce — delivery by a separate plugin, checkout changes hooks. Limit: Checkout is rechecked after kernel update.
  • Next.js — its own checkout, the key does not enter the browser. Border: no box delivery, every step is written by hand.
  • A queue of background tasks — the branch directory is located locally and is updated on a schedule. Limit: between runs, the newly opened branch will not yet appear on the site.

Integrations

  • Nova Poshta is a branch
  • Nova Poshta is a courier at the address
  • Nova Poshta is a postman
  • postpaid
  • creation of an express invoice
  • printing of the declaration
  • KeyCRM
  • Telegram bot for order notifications
Integration via API versus manual registration in the office

How this option differs from the alternative

How the department gets into the orderthe buyer chooses from the list with a search by city, the branch identifier is included in the order
Shipping cost in cartapproximate calculation by weight and declared value with a note about recalculation at the branch
Creation of invoicebutton in the order, the number is returned in the order and in the letter to the buyer
The price of an error in the addressa typographical error in the branch number is excluded on the data side
Cost of ownershipone-time operation plus validation after carrier API updates
What we need from you

We can't start without this — best to prepare in advance

  1. Nova Poshta API key from your account — the contract and key are drawn up on your behalf.
  2. Access to the site and admin with rights to install modules.
  3. Answer, which scenarios do we enable: branch, courier, post office — and whether all three at once.
  4. The sender's data: address, contact person, phone number - they are included in the declaration.
  5. The typical weight and dimensions of your shipments or the rule for their calculation.
  6. A manager who works with orders - to check the live scenario.

If something is missing — let us know, we'll help you gather it or do it as a separate task.

FAQ

Most frequently asked questions — with concrete answers

Why choose a department with a list, if the buyer can write the address in text?

Because the manager has to decipher the text, and an error in the branch number means that the parcel went to the wrong place. The list from the carrier's directory gives the exact identifier, which is then inserted into the declaration without re-entering it. This is not a question of the convenience of the buyer, but of the number of returns and the manager's time. A fair limit: the list does not save the buyer who deliberately chose the wrong department - it removes the decoding error, not the selection error.

Is it possible to show the shipping cost directly in the cart?

Approximate - yes, by weight and declared cost. The exact amount is calculated equally by the carrier at the branch, so we output the calculation with a note about it. We saw the worst option at the measured store: Nova Poshta was shown in the checkout without a price at all, and the second carrier - as "0 UAH", although the information page called 35-80 UAH. Zero in the checkout is a promise that the site does not fulfill.

How do I know that delivery on my site really works?

Check from the side of the buyer, and not according to the settings in the admin. We put the product in the cart, go through the guest registration and ask for a list of methods - what the site gives is the truth. In the watering shop, 6 delivery methods from two carriers and 3 payment methods were confirmed. At the same time, the "Delivery and payment" page can tell a completely different story: it is text, not settings. Another find from the same sample: in one store, the names of carriers are pictures without alt — a person can see them, a search engine and a screen reader cannot.

Is it possible to create and print TTN directly from the admin?

Yes, and this is the biggest time saver of the entire list. The manager opens the order, presses the button, receives the declaration number and prints it - without going to the office and without re-entering it. There is one condition: the order must contain the name, phone number in the correct format, weight and declared value. If these fields are not present, we first prepare the order form, and this is what most often extends the deadline to the upper limit.

Whose contract is with the carrier and who keeps the API key?

The contract is drawn up for you, the key is issued in your office — and that's right: access to shipments should remain with the business owner, not with the contractor. We work with the key at the stage of configuration and testing. After the transfer, you can reissue it at any time: the site will continue to work immediately after updating the value in the admin, there is no need to redo anything.

Is the branch directory updated by itself or does it have to be filled in manually?

Alone, a scheduled background task. A technical detail on which fast integrations burn: the directory cannot be pulled from the API synchronously at the time of placing an order. It looks fine as long as the carrier responds quickly; it should slow down - and slows down your shopping cart, that is, the most expensive step of the site begins to depend on someone else's server. Therefore, the data is located locally and is indexed, and is updated by a separate run. Fair border: between the runs there is a window in which the newly opened section on the site will not yet appear.

How long does integration last and what does the term depend on?

3–10 working days, five stages. Three days is when we turn on only the branch, the fields in the order are already correct, and you continue to create declarations in the office: the stage with TTN simply falls out. Ten - when all three scenarios are enabled, a button for creating an invoice is needed in the admin, and the order form has to be redone. The key and accesses are required at the start: without them, the first stage stands still.

Which of these actually saves money, and which doesn't?

Saves two things: manager time on each order and returns due to address errors. Nothing more. Integration does not reduce the carrier's tariff, does not speed up its work, and does not affect the site's position in the search. And separately: the freed hour of the manager becomes money only when it is really redistributed to something - if he just got free time, it will not appear in the report. Our recommendation: before starting, measure how many minutes are currently spent on one declaration and how many orders per month are returned via the address. These are two numbers that will show in a month whether the work has paid off or not.

Send a link to the site - we will go through your checkout as a buyer.

In response, you will receive a report: which delivery methods the site actually offers, with what prices, and what is missing in the order for automatic declaration. Then there is an estimate and a deadline.

From measured casesMeasure 08/01/2026 through real checkout

View cases
  • Reply within 2 hours
  • No commitment
  • We work under a contract

There is no price list on the site on purpose: the same work differs several times over between two clients, and a “from” figure explains nothing in that case. First a free audit — we count your pages, duplicates and speed — then we name the sum and the deadline and fix both in the contract.