How to map a TenderTransaction to an OrderTransaction

How do I map TenderTransaction - GraphQL Admin to OrderTransaction - GraphQL Admin ?

I was using remoteReference == authorizationCode, but authorizationCode is now deprecated.

Are there any plans to bring paymentId into the TenderTransaction object?

At the moment, there is no reliable direct mapping between TenderTransaction and OrderTransaction in the GraphQL Admin API.

Previously, using remoteReference with authorizationCode worked in some cases, but since authorizationCode is deprecated, there is no guaranteed replacement field that links the two objects one-to-one. TenderTransaction is designed to represent how payment was tendered (cash, card, etc.), while OrderTransaction represents payment processing events, and they intentionally don’t share a strict identifier.

There’s currently no public indication that paymentId will be added to TenderTransaction. The recommended approach is to correlate transactions indirectly using shared context such as order ID, gateway, amount, currency, and timestamps, rather than relying on a single identifier.

Right now, the only reliable way to map TenderTransaction to OrderTransaction is indirect correlation, not a single field match.

Since authorizationCode is deprecated and paymentId is not exposed on TenderTransaction, the practical solution is to correlate using a composite key:

Recommended approach

  1. Fetch OrderTransactions for the order
  2. Fetch TenderTransactions for the same order
  3. Match them using a combination of:
  • orderId
  • amount
  • currencyCode
  • paymentMethodType / gateway
  • Closest processedAt / createdAt timestamp

In practice, these fields line up closely enough to form a stable mapping, especially when scoped to a single order. This is the pattern Shopify expects integrators to use today.

There are currently no announced plans to add paymentId to TenderTransaction, so treating these objects as related but not identical representations of payment data is the safest long-term approach.

Using a combination won’t help, because if I look at all of them, I’ll get false negatives, and if I match some of them, I’ll get false positives. This is a question for the Shopify Staff, if they can please consider adding a correlation id.

ShopifyPaymentsBalanceTransaction - GraphQL Admin has sourceOrderTransactionId, but that’s not available in TenderTransaction.