• Integrations · OpenCart

International payments: a buyer from Europe should pay with their own card in their own currency, not guess why it fails

Ukrainian payment solutions work beautifully with Ukrainian cards and stumble regularly on foreign ones. A buyer in Spain reaches checkout, enters their card, gets a refusal with no explanation — and concludes the problem is your store. Formally you accept payment online. In practice, for a person in another country the store does not work. We connect payment that is built for a foreign card, and make sure a refusal is not silent.

See how it works
Price
after a free audit
Guarantee
30 days after project sign-off
Focus
online stores and sites for EU markets
after a free audit
Price
30
Guarantee

days after project sign-off

online stores and sites for EU markets
Focus
10
Timeline

to 30 working days

free review of the payment flow
Start
30
Warranty

days from the date the acceptance act is signed

within 2 hours
Reply
under a written contract
Terms
What's included

Complete list of work and what you get as a result

  • connecting a payment provider that genuinely accepts foreign cards
  • showing prices in the buyer's currency with an agreed conversion rule
  • checkout with no requirement for a Ukrainian address, postcode or phone format
  • correct handling of the 3-D Secure check at banks in other countries
  • a clear explanation on a declined payment instead of a generic error
  • refunds through the same system, if the provider allows it
  • reconciling what reached the account against the orders on the site
  • handover with a description of how to change currencies and the rate rule
When this service isn't right

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

  • opening the account and signing the provider contract on your behalf
  • tax and currency-control reporting on the transactions
  • a guarantee that the provider will approve your application
  • a legal check of your right to sell into a specific country
  • promises of growth in foreign orders
Who it's for

Situations where this service delivers results

Scenario 1 of 4

A brand that has entered the EU market

The site is localised, delivery is set up, and the payment stayed Ukrainian. This is the most common gap, and it is visible only in the statistics of failed payments.

We'll review your situation in a free audit
Free review of the payment flow

We look at what exactly stops a foreign buyer from paying: sometimes it is not the provider but the form fields.

What we measure

  • Whether a foreign card goes through nowWe check this first. Often it turns out the payment technically works and what stops the buyer is something earlier.
  • Which fields the form demandsA five-digit Ukrainian postcode, a compulsory patronymic, a phone mask for +380 — all of it stops a person from another country before the payment.
  • What currency the buyer sees the price inThe hryvnia for a buyer in Spain is a number without meaning. The question is not only about conversion but about which rate and who updates it.
  • What you have already signedThe provider contract is your step, and it determines what we can work with at all. Sometimes the provider you need is simply unavailable to you.
  • What a refusal looks like now«Payment error» with no explanation is a lost order. Providers return the reason; it is simply never shown.
  • How you structure sales abroadThis is not our area of responsibility, but the answer determines which payment method is worth connecting at all.

What you get

  • a list of what stops a foreign buyer on your site
  • an answer on which providers suit your situation
  • an estimate of the work broken down by stage
  • an honest answer if the obstacle is not technical

Timeline: 3–5 working days

Why is it free

Half the problems with foreign payment are not the payment module but form fields built for the Ukrainian format. That can be seen in an hour, and we do not want to sell an integration where corrections to the form are enough.

What's next

You get a list of obstacles and an estimate. Then you decide for yourself — the document stays with you.

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

  • The chosen providerOne provider with a ready module for your platform is a matter of days. A provider without a module means an integration from scratch through its exchange interface.
  • Number of currenciesOne currency is simple. Several at once mean a rate rule, rounding, and the question of which currency the order total is actually stored in.
  • Localising the checkoutOften this is the bulk of the work: the address, postcode, phone, country and region names have to stop being Ukrainian in format.
  • RefundsA manual refund from the provider's dashboard costs us nothing. A refund through the site with the status reflected in the order is a separate scope.
  • Reconciling receiptsThe provider's fee and the rate on the settlement day mean the account receives something other than the order total. Automatic reconciliation is a separate task.
  • Subscriptions and recurring chargesA one-off payment is far simpler. Recurring charges add storing consent, handling failed attempts and cancellations.
Cases

Tasks and results in numbers — all metrics measured by us

a furniture online store for the Spanish market

Task
Launch a furniture store for the Spanish market: a fully Spanish-language interface, a catalogue with filters by furniture type, material and colour, and large image galleries for every item.
Solution
A store on OpenCart 3 (oct_deals theme, LiteSpeed, PHP 7.3.33). A Spanish-language version with valid hreflang=es. A catalogue with filters and high-quality galleries. Payment by card online (Visa/Mastercard) and bank transfer. GTM (GTM-MFJCPXW7), Instagram and TikTok connected.
Result
76 products in the catalogue — the figure matched in two independent sources: /sitemap-products.xml contains exactly 76 <loc> entries, and OpenCart search without pagination gives the same 76 items; the sitemap totals 88 URLs (76 products + 1 category + 10 info pages + the home page). TTFB 0.35 s and full HTML load 0.52 s at 374 KB of markup. Measured 31.07.2026.

a natural Bulgarian cosmetics brand, a flagship store for the EU market

Task
Bring a natural Bulgarian cosmetics brand to the European market: a multilingual store understandable to buyers in Bulgaria, the EU and a Russian-speaking audience, with clear domestic delivery terms.
Solution
A store on OpenCart 3 based on the Codezeel theme with a custom naturel theme (nginx 1.14.1, PHP 7.3.33). Three language versions, bg/en/ru, with hreflang. JSON-LD of type Store with OpeningHoursSpecification, ContactPoint, WebSite and SearchAction — the local-store markup Google uses for a company card. Courier delivery to an office or address, free within Bulgaria from €35.
Result
23 products — the brand's entire range, confirmed by OpenCart search without pagination. Three language versions (bg/en/ru) with hreflang. Six JSON-LD types on the home page: Store, WebSite, SearchAction, ContactPoint, EntryPoint, OpeningHoursSpecification. TTFB 0.51 s at 220 KB of HTML. Measured 31.07.2026.

Did not find your case?

Describe how it works on your side — we will tell you whether “Accepting international payments” 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:10–30 days

  1. Reviewing the obstacles

    3–5 working days

    We go through checkout with a foreign card and see exactly where it stops. Often the obstacle is not the payment, and that has to be known before choosing a provider.

  2. Choosing a provider

    2–4 working days

    We show the options for your country of registration, product and sales structure. The decision and the contract are yours; we give the technical consequences of each option.

  3. Currencies and prices

    3–6 working days

    We agree what currency to show the price in, what to charge in, at what rate and who updates it. We implement the conversion and rounding.

  4. Checkout without the Ukrainian format

    3–7 working days

    We bring the address, postcode, phone and country to an international form. We check on addresses from several countries rather than only one.

  5. Payments and refusals

    4–8 working days

    We connect the provider, handle the 3-D Secure check and show a clear reason on a decline. We run test payments with different cards.

  6. Reconciliation and handover

    2–3 working days

    We compare the first real receipts against the order totals, accounting for fees and the rate. Then the 30-day warranty from the date the acceptance act is signed applies.

Technologies & integrations

What we build on and what it connects to

Stack

  • OpenCart
  • WooCommerce
  • Next.js
  • React
  • TypeScript
  • PHP
  • JavaScript
  • PostgreSQL
  • MySQL
  • Git

Integrations

  • Stripe
  • PayPal
  • Visa
  • Mastercard
  • SEPA bank transfer
  • Google Analytics 4
  • CRM
An international provider or a Ukrainian one with a Visa option

How this option differs from the alternative

A foreign cardgoes through like any other
Currency for the buyertheir own, understandable
Trust at the payment stepthe provider's familiar form
Costsa higher fee and a separate contract
When the existing one is enoughoverkill if foreign orders are a handful
What we need from you

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

  1. which countries you sell to and in what currency you want to receive money
  2. whether you already have a contract with a payment provider, and with which one
  3. how you legally structure sales abroad
  4. who is responsible for refunds and within what timeframe
  5. whether recurring charges are needed, or only one-off payments
  6. who on your side accepts the work

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

We already accept card payments. Surely a foreign card will go through?

Sometimes it does, and that is exactly why the problem goes unnoticed for so long. But the buyer's bank may decline a payment to a Ukrainian recipient with no explanation, and the person will see only «payment error». The first thing we do during the review is check this with a real foreign card rather than an assumption.

Will you open a Stripe account for us?

No. You sign the contract with the payment provider, and approval depends on your jurisdiction, product and documents — we do not influence that and cannot guarantee it. Our part begins once you have access.

What currency should prices be shown in?

The one the buyer thinks in. The hryvnia for someone in Spain is a number without meaning; it still has to be converted. What matters more is agreeing which currency the order total is fixed in and at what rate. Without that rule you will receive something other than expected every time.

Why might a payment fail and what should the buyer be shown?

There are not many causes: the bank blocked the transaction, the 3-D Secure check failed, the card does not support international payments, the address did not match. The provider usually returns the reason — it is simply never shown. We display clear text and what the person should do next.

How much money will actually reach the account?

Less than the order total: the provider's fee, sometimes a conversion fee, and the rate on the settlement day. That is normal, but it should be predictable. So reconciling the first receipts against orders is part of the work — so you see the gap and build it into the price consciously.

The order form demands a Ukrainian postcode. Do you fix that too?

Yes, and often that is the main part of the job. A compulsory patronymic, a phone mask for +380, a five-digit postcode — all of it stops a foreign buyer before the payment page. Connecting a provider without fixing the form means not solving the task.

How long does it take?

10 to 30 working days on our side. But the real timeline is often set by the provider: reviewing the application and checking documents can take weeks of their own, and that is beyond our influence. So we advise starting the application in parallel with the review.

Will this increase the number of foreign orders?

We do not name a figure. What definitely disappears are the orders that failed at the payment step for a technical reason. We put analytics events on failed payments so you can see how many there were before and after, and judge the result from your own data.

Let us check whether a foreign buyer can pay you at all

We will go through checkout with a foreign card and show where it stops. The review is free, we reply within 2 hours.

From measured cases76 products in the catalogue

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.