Skip to content

Shopify commerceClient work

A Payment Provider Shopify Doesn’t Support: Finding a Working Path

I mapped 21 payment-integration experiments and built a server-verified payment continuation, with sandbox results separated from merchant acceptance.

The brief

Context

A Shopify merchant needed a payment provider that was not available through the normal supported integration path. Before building a checkout flow, I needed to establish which surfaces were available and how an external payment could safely update a Shopify order.

I started with a feasibility spike, then built the payment continuation and its settlement backend.

Sounds familiar?

Symptoms

The situation Shopify commerce
Tick what applies to you

Tick the lines that describe your case.

Describe my task

The investigation

Diagnosis

I mapped 21 experiments across native payment extensions, checkout and post-checkout surfaces, hosted payment routes and fallback architectures. The matrix includes blocked and research-only routes. It is not a claim that all 21 completed successfully.

  1. The settlement test exposed another boundary: the available Shopify development stores refused the buyer’s manual-payment checkout path. I could test settlement against unpaid manual orders created through the Admin API, but that did not prove the full buyer journey on the merchant’s store.

Handover

What I built

Delivery noteDelivered Pilot backend documented live in September 2026; merchant acceptance unverified

The chosen continuation starts with an unpaid Shopify order created through a manual payment method. A block on the Thank You or Order Status page opens the provider’s hosted payment page. Card details stay on that hosted page.

The server verifies payment before marking the Shopify order paid. Never trust the return URL: I read the provider’s current order status, apply the paid update only when it is confirmed, then read the Shopify order back to check that Shopify agrees.

Signed webhooks, the buyer’s return and a scheduled reconciliation sweep can each trigger the same settlement logic. Duplicate handling and a shared settlement guard prevent those paths from making repeated paid updates.

The handover documentation covers terminal settings, payment-status access for automations, retries and the limits of the integration. A refund at the provider does not automatically become a Shopify refund; the merchant still controls that decision.

Before → after

Results

Client work Done for real clients. Client details are anonymised.

  • Payment integration feasibility matrix

    Sep 2026

    Before
    No confirmed native payment-extension route
    After
    21 experiments mapped
  • Concurrent settlement attempts in a recorded sandbox test

    Sep 2026

    Before
    Duplicate payment updates needed a guard
    After
    48 concurrent attempts, one paid mutation
The full results table
ScopeObserved resultRead on
Feasibility workA matrix of 21 experiments; native entitlement blockedSeptember 2026
Sandbox settlementConfirmed provider payment followed by Shopify paid-status read-back11 September 2026
Duplicate-settlement test48 concurrent operator attempts, plus webhook and return processing, produced one paid mutation11 September 2026
Failure handlingDeclined, expired and cancelled payments stayed unpaid; replayed webhooks did not make another paid update11 September 2026
Backend releaseHealth and running-code checks recorded on the deployed backend15 September 2026

Notes on the numbers

The settlement record is a partial technical result. It does not establish the full storefront buyer path or merchant acceptance. The deployment record still called for a fresh merchant order and visual acceptance.

This is a hosted payment continuation. Native payment-extension approval and App Store distribution are separate steps.

A note from Daniilbefore you decide

What this means for a similar business

The useful outcome of a payment spike is a route with clear evidence and clear limits. I separate an available UI surface, a confirmed payment, Shopify’s recorded financial status and the merchant’s acceptance. Each needs its own check.

— Daniil

Daniil Maximkin

Hi, I’m Daniil.

I work with you from defining the problem to implementation and handover. You talk to the person who does the work. I work in English and Russian.

Have a similar task?

Describe your task

The first answer is free, within one working day. Or write directly: next@taskfordaniel.com