Skip to content

Shopify Manual Payment XML (GraphQL)

The XML format documented here is used to record manual payments against existing orders in Shopify, via the Import Manual Payments task.

We recommend that the ZynkExternalId field be populated with the unique ID of the payment from the external system. Zynk uses this field to track payments already imported, to prevent duplicate payments being created in Shopify. The 'Prevent Reprocessing' setting is enabled by default on this task.

XML

Any fields not documented below are ignored by the task. Examples of where in the XML the fields should appear are shown in the samples below.

<?xml version="1.0" encoding="utf-8"?>
<ManualPayments>
  <ManualPayment>
    <ZynkExternalId>5230</ZynkExternalId>
    <Order>
      <Id>gid://shopify/Order/6022747717721</Id>
      <Name>#1116</Name>
    </Order>
    <Amount>
      <Amount>15.00</Amount>
      <CurrencyCode>GBP</CurrencyCode>
    </Amount>
    <PaymentMethodName>Cash on Delivery (COD)</PaymentMethodName>
    <ProcessedAt>2025-07-11T14:00:00</ProcessedAt>
  </ManualPayment>
</ManualPayments>

In each of the following sections most of the XML has been omitted to make the samples easier to read. The whole structure of the ManualPayments schema is used above as a reference of where fields should be in the object model.

Manual Payment

The following information can be provided at the payment level. The order must have an outstanding balance for the payment to be accepted by Shopify.

Shopify Field XML Field Type Input Notes
- ZynkExternalId string Optional Stored in Zynk's internal DB and used in conjunction with the 'Prevent Reprocessing' setting
id Order/Id string Dependant Required if Order/Name is not provided. Must be a GraphQL ID, e.g. gid://shopify/Order/123
id Order/Name string Dependant Required if Order/Id is not provided, e.g. #1001. Only used to look up the order when Order/Id is empty
paymentMethodName PaymentMethodName string Optional The name of the manual payment method, e.g. Cash on Delivery (COD)
processedAt ProcessedAt datetime Optional When the payment was processed, e.g. 2025-07-11T14:00:00

On success, the order returned by Shopify is written to the success file, and the ID of the most recent transaction on the order is stored against the ZynkExternalId.

<?xml version="1.0" encoding="utf-8"?>
<ManualPayments>
  <ManualPayment>
    <ZynkExternalId>5230</ZynkExternalId>
    <Order>
      <Name>#1116</Name>
    </Order>
    <PaymentMethodName>Cash on Delivery (COD)</PaymentMethodName>
    <ProcessedAt>2025-07-11T14:00:00</ProcessedAt>
  </ManualPayment>
</ManualPayments>

Amount

The amount of the payment. If the Amount element is omitted, Shopify records a payment for the full outstanding balance of the order. Shopify only allows a partial amount to be specified on Shopify Plus stores.

Shopify Field XML Field Type Input Notes
amount.amount Amount decimal Optional
amount.currencyCode CurrencyCode string Optional Three letter ISO currency code, e.g. GBP
<?xml version="1.0" encoding="utf-8"?>
<ManualPayments>
  <ManualPayment>
    <Amount>
      <Amount>15.00</Amount>
      <CurrencyCode>GBP</CurrencyCode>
    </Amount>
  </ManualPayment>
</ManualPayments>