---
title: "Shopify payments extension"
description: "Prepare and evaluate Inttegro as an offsite GHS payment provider for Shopify."
canonical: "https://studio.inttegro.com/extensions/shopify"
format: inttegro-machine-docs/v1
language: "Java"
sdk_version: "v8.3.0"
reader_profile: optional
reader_manifest: "https://studio.inttegro.com/machine/java/readers/index.json"
reader_identification: "Optional: declare your client only if known and your current-session capabilities; use reader_manifest for supplemental recommendations."
preamble_estimated_tokens: 312
model_token_report: "https://studio.inttegro.com/machine/token-report.json"
preamble_questions: 5
preamble_source: "general"
recommended_mcp_tools: []
estimated_tokens: 1508
token_estimate_method: "utf8_bytes_divided_by_4"
---

## Machine preamble

**Summary:** Prepare and evaluate Inttegro as an offsite GHS payment provider for Shopify. This Java representation uses the selected SDK's native names wherever Studio has a verified mapping.

### Five questions

#### Q1. When should the reader use Shopify payments extension?

Use this page as orientation before selecting the narrower guide or reference that owns the implementation contract.

#### Q2. What is authoritative on this page?

Use this page for orientation; follow its canonical SDK, guide, API, or MCP links for exact contracts.

#### Q3. What page-specific constraint matters most?

Use the page to choose a canonical next source instead of treating summary material as a complete implementation contract.

#### Q4. Can Inttegro MCP materially help with this task?

No catalog ability is sufficiently specific to recommend for this page. Use the documentation directly; consult the MCP catalog only if the task later requires governed live account context or a supported operation.

#### Q5. How should the reader verify the answer and continue?

Select the narrowest linked guide or reference, apply its stated completion condition, and verify against authoritative resource state when the task changes data.

## Document content

![Shopify](/img/logos/extensions/shopify.svg)

# Prepare Inttegro payments for Shopify

Evaluate a Shopify payment and refund flow that redirects customers to Inttegro
Checkout. The adapter is ready for test fixtures, but Shopify approval and
production infrastructure are still required before a live store can install
it. [Review launch requirements](#complete-the-production-prerequisites) [Evaluate with Inttegro](mailto:support@inttegro.com) |              |                                                     |
| ------------ | --------------------------------------------------- |
| Version      | 1.0.0                                               |
| Flow         | Offsite GHS sale and partial refunds                |
| Requirements | Node.js 24+ and Shopify Payments Apps access        |
| Availability | Integration preview; not installable on live stores |

## Before you begin

Use a dedicated Inttegro key for each merchant. It is intended to allow only
`orders:create`, `orders:read`, `refunds:create`, and `refunds:read`.

:::warning API-key scopes are not enforced yet

Protect the merchant configuration as a secret and keep the key away from
catalog writes, payouts, financial accounts, and account administration. Rotate
it when Inttegro can enforce the restricted profile.

:::

## Complete the production prerequisites

1. Obtain approval for Inttegro as a Shopify Payments Partner and access to the
   Payments Apps platform.
2. Create the payments extension and replace the example UID with the value
   issued by Shopify CLI.
3. Implement Shopify OAuth installation and secure per-shop token storage.
4. Put payment and refund session endpoints behind a trusted proxy that validates
   Shopify's mutual TLS client certificate.
5. Establish the privacy export, retention, and redaction process required for
   Shopify data requests.
6. Resolve the customer-contact contract below before accepting live payments.

The proxy must discard any client-supplied `X-Shopify-Client-Verified` value. It
may set that header to `SUCCESS` only after validating Shopify's certificate.

## Evaluate the preview

1. Request preview access from Inttegro and install the adapter's Node.js
   dependencies in an isolated test environment.
2. Configure test Inttegro credentials and Shopify fixtures; do not use a live
   merchant key.
3. Create a GHS payment session and confirm it redirects to Inttegro Checkout.
4. Return from checkout and confirm Shopify receives one replay-safe resolve or
   reject mutation.
5. Create a partial refund and confirm repeated reconciliation does not create a
   duplicate or exceed the order's remaining balance.

## Verify readiness

- \[ ] Payments Partner approval and the production extension UID are available.
- \[ ] OAuth installation issues and rotates per-shop tokens securely.
- \[ ] Mutual TLS is validated before traffic reaches the adapter.
- \[ ] Signed return state, cancellation, and replay checks pass.
- \[ ] Mandatory privacy webhooks are verified and operationally processed.
- \[ ] A payment session with the supported customer contact fields succeeds.

Treat the integration as a preview until every check passes. Deferred capture,
void, installments, multi-capture, non-GHS currencies, and direct 3-D Secure card
processing are not part of this release.

:::warning Customer contact needs a contract decision

Shopify may supply only an email address or only a phone number. Inttegro's
current new-customer order contract requires both, so the adapter rejects a
payment missing either field instead of inventing customer data. Before launch,
Inttegro must accept one verified contact channel or approve a pre-payment step
that collects the missing value.

:::

## If a check fails

Keep the Shopify payment or refund session ID and the matching Inttegro operation
ID. Contact [Inttegro support](mailto:support@inttegro.com) without sending API
keys, OAuth tokens, certificates, or customer details.
