ReturnZap GraphQL API Documentation
Welcome to the ReturnZap API documentation. Here you can find details about all available queries, mutations, and types.
API Endpoints
https://api.returnzap.com/graphql/admin
Headers
# Your authorization token must be included in all requests.
Authorization: Bearer <YOUR_TOKEN_HERE>
Version
1.0.0
Introduction
This is the API documentation for ReturnZap. Here you can explore all the available queries, mutations, and data types.
Money semantics
Which amount do I actually refund?
Return.suggestedRefund(returnItemIds:) returns several MoneySet values. Only one of them is the amount to pay out.
| Field | Meaning |
|---|---|
availableForRefundSet |
Gross ceiling for the selected items — the most this selection can be refunded. It does not report the remaining refundable amount of the whole order. Never pay this out. |
suggestedRefundSet |
Gross suggested refund, before outstanding handling and restocking fees. |
netRefundPayableSet |
The payable amount. suggestedRefundSet minus the handling and restocking fees still outstanding on the return, clamped at zero. |
Pass netRefundPayableSet to returnRefund(refundFullAmount:).
The fee arguments on returnRefund — handlingFee and restockingFee — are record-only. They are stored on the return for reporting and do not reduce refundFullAmount. Sending suggestedRefundSet together with a fee argument over-refunds the customer by the fee. The same applies to returnCreateStoreCredit(amount:). One mode caveat: restockingFee is only recorded when the return's restocking fee is configured once per return; in once-per-item mode the argument is ignored and Return.actualRestockingFeeCharged stays unchanged.
Record-only does not mean optional. netRefundPayableSet is computed as suggestedRefundSet minus the fees still outstanding — the suggested fee minus what has already been recorded as charged. If you deduct a fee by paying out netRefundPayableSet but never send handlingFee / restockingFee, nothing is recorded, and the next partial refund on the same return will subtract the very same fee again and short-change the customer. Always send the fee amounts the deduction represents — that is what handlingFeeSuggestedSet and restockingFeeSuggestedSet are for, and it is what the ReturnZap admin UI does on every refund.
The one exception is a clamped payout: if netRefundPayableSet comes back 0.00 while suggestedRefundSet is positive, the outstanding fees exceed this selection's gross refund, so only part of the fee is actually being withheld. Do not send the full suggested fee amounts there — the recorded fee would exceed what was withheld, the return would show no outstanding fee, and the next partial refund would pay out too much. Recorded fees are cumulative maxima (Return.actualHandlingFeeCharged / Return.actualRestockingFeeCharged), so in the clamped case send fee amounts that grow those recorded values by at most this selection's suggestedRefundSet — or resolve the fee-bearing selection last, where the clamp cannot occur.
Optional shipping reimbursement and store-credit incentives are not folded into netRefundPayableSet; add them yourself if your flow offers them. For a store-credit incentive, adding it to amount alone is not enough: also pass it as returnCreateStoreCredit(bonusCredit:). When the shop issues credit as Shopify account credit, only the bonusCredit portion is excluded from the order's refundable balance — an incentive folded silently into amount consumes that balance and can shrink a later refund on the same order.
shopMoney vs presentmentMoney
Every MoneySet is { shopMoney, presentmentMoney }, and each Money is { amount, currencyCode }. Presentment is the currency the customer paid in; shop is the store's own currency.
returnRefund validates refundFullAmount against Shopify's presentment transaction totals, so send presentmentMoney.amount with refundCurrency: presentmentMoney.currencyCode. Use shopMoney only when aggregating across orders in a single currency — never mix the two in one total.
Worked example
suggestedRefund requires returnItemIds. It returns null when the list is empty, when none of the ids resolve to a return item on this return with a Shopify line item, or when the underlying Shopify call fails. A null is never "the refund is zero" — treat it as "unknown, do not refund" and retry.
query SuggestedRefund(: ID!, : [ID]!) {
getReturn(returnId: ) {
id
suggestedRefund(returnItemIds: , refundShipping: false) {
availableForRefundSet { presentmentMoney { amount currencyCode } }
suggestedRefundSet { presentmentMoney { amount currencyCode } }
netRefundPayableSet { presentmentMoney { amount currencyCode } }
handlingFeeSuggestedSet { presentmentMoney { amount } }
restockingFeeSuggestedSet { presentmentMoney { amount } }
}
}
}
Then feed netRefundPayableSet.presentmentMoney straight into the mutation:
mutation Refund(
: ID!
: [ID!]!
: Decimal! # netRefundPayableSet.presentmentMoney.amount
: String! # netRefundPayableSet.presentmentMoney.currencyCode
# The fee args are optional in the schema, but always send both (0 if none) — see
# above, including the clamped-payout exception when netRefundPayableSet is 0.00.
: Decimal! # handlingFeeSuggestedSet.presentmentMoney.amount
: Decimal! # restockingFeeSuggestedSet.presentmentMoney.amount
) {
returnRefund(
returnId:
returnItemIds:
refundShipping: false
refundFullAmount:
refundCurrency:
handlingFee:
restockingFee:
notifyCustomer: true
) {
error
refund {
shopifyRefundId
requestedTotalRefundAmount
requestedCurrencyCode
presentmentTotalAmountRefunded
}
}
}
Reading a RefundType
requestedTotalRefundAmount/requestedCurrencyCode— exactly what you passed asrefundFullAmount/refundCurrency, in presentment currency. Available immediately.presentmentTotalAmountRefunded— the net cash Shopify refunded. This is the settlement figure, and it is populated asynchronously: Shopify can delaytotalRefundedSetuntil the underlying transactions settle, so a completed refund can legitimately read0.00for minutes or longer. A nightly backfill re-fetches recent refunds still sitting at zero. Do not treat0.00here as "the refund failed" — checkrequestedTotalRefundAmountand theerrorfield on the mutation instead.shopTotalAmountRefundedand theshop*breakdown carry the same figures converted to the shop's currency, with the same delay.currencyCodeandtotalAmountRefundedare deprecated aliases ofpresentmentCurrencyCodeandpresentmentTotalAmountRefunded.
Resolution behavior
Confirming a resolution
returnRefund and returnCreateStoreCredit commit in one transaction. The reliable immediate signals are the mutation's own payload and the return's collections:
returnRefund { error }— empty string on success; a locale key such asrefundMutation.refundIntegrationErroron failure.Return.refunds— the newRefundTypeis present as soon as the mutation returns.Return.storeCredits— likewise for store credit.
Return.resolvedStatus (RESOLVED / PARTIALLY_RESOLVED / UNRESOLVED) is recomputed in the same transaction, but the return object embedded in the mutation payload is serialized from the copy loaded before the resolution, so it can still show the pre-refund value. Re-query getReturn if you need resolvedStatus, or use refunds as the immediate signal.
Duplicate resolutions are already rejected server-side
You do not need to build your own idempotency guard against double-refunding. Every financial path takes a row lock on the return, then re-reads the items:
returnRefundandreturnCreateStoreCreditonly accept return items that are not already resolved. A retry against an already-refunded item fails withrefundMutation.returnItemsNotEligibleForRefund(orreturnCreateStoreCreditMutation.returnItemsNotEligibleForStoreCredit), not a second payout.- Crossing the paths is rejected too: crediting an item that already has a refund, or refunding an item that already has store credit, fails on the loser of the lock.
Never retry blindly on a non-empty error. refundMutation.refundIntegrationError covers both a harmless rejection (a concurrent duplicate lost the row lock — no money moved) and a reconciliation failure after Shopify already moved money, and the two are not distinguishable from the response. On any error, re-query getReturn { refunds { … } }. A matching refund present means the payout landed — do not retry. A matching refund absent is not proof that no money moved: in the reconciliation-failure case ReturnZap cannot attribute the new Shopify refund and deliberately records nothing, so the payout exists in Shopify but never appears in refunds. Before retrying, check the order's refund list in Shopify admin (or via the Shopify API); if a refund for the amount is already there, reconcile manually with ReturnZap support instead of retrying.
Refunding never restocks
Issuing a refund or store credit does not put inventory back. Restocking is a separate, explicit, irreversible call, per item:
mutation Restock(: ID!, : [ID!]!, : ID!) {
returnDispose(
returnId:
returnItemIds:
dispositionAction: RESTOCK
shopifyLocationId:
) {
error
return { id }
}
}
Items that were rejected or marked missing at receiving cannot be restocked; the mutation restocks the remaining valid items and returns disposeMutation.itemNotRestockable alongside the payload as a partial-success caveat.
Finding a return
What returns(query:) matches
The free-text query argument on returns (and the deprecated dashboardReturns) runs a PostgreSQL full-text search over exactly these seven columns:
| Matched field | Exposed on Return as |
|---|---|
customer_first_name |
customerFirstName |
customer_last_name |
customerLastName |
customer_email |
customerEmail |
shopify_order_number |
shopifyOrderNumber |
rma_number |
rmaNumber |
tracking_number |
trackingNumber |
shopify_order_id |
shopifyOrderId |
Nothing else is searched — not notes, not SKUs, not product titles, not addresses. It is a PostgreSQL full-text match using the english configuration, not a substring match: partial fragments and prefixes do not hit, and all terms must match. Terms are also stemmed and stop-word filtered — inflections of the same English word share a match (returned finds returning), and a term that is an English stop word (a customer named May, for example) is dropped entirely and can make a row unfindable by that field alone. Do not treat it as exact token matching. Matching is a filter only — results are ordered by sortBy (default -returnDate), not by relevance.
Read the order number off Return.shopifyOrderNumber. Return.orderNumber still exists as a deprecated alias of the same value — new integrations should not use it.
RMA number formats
Generated RMA numbers come in two shapes, and which one a shop uses is a per-shop setting. You cannot tell them apart from a single value's shape alone.
- Short (the default):
1.1001— an unpadded per-order return counter and the Shopify order name with#stripped, no date. - Long:
0001.1001.20260613— the counter zero-padded to four digits, the order name, andYYYYMMDDof creation.
A shop can also override the RMA number entirely when approving a return: any custom value is accepted (truncated to 45 characters), so do not build a parser that rejects values outside the two generated shapes.
The return-label barcode
The barcode printed on the RMA slip does not always encode the RMA number. It encodes whichever value the shop configured, one of four:
| Setting | Barcode contents |
|---|---|
NONE |
No barcode is rendered at all. |
SHOPIFY_ORDER_NUMBER |
Return.shopifyOrderNumber |
SHOPIFY_ORDER_ID |
Return.shopifyOrderId |
RMA_NUMBER |
Return.rmaNumber, with any apostrophes stripped |
A scanner-driven lookup must therefore try the scanned string against the free-text returns(query:) search rather than assuming it is an RMA number — all three non-empty settings encode a field that search covers. Note the RMA_NUMBER caveat: the search indexes the stored rmaNumber verbatim, so for the rare RMA number containing an apostrophe the scanned barcode is not byte-identical to the stored value. Fall back to matching Return.rmaNumber client-side if a scan comes back empty.
Barcodes are Code 128, which cannot encode every character. If the configured value contains a character outside that set — possible with RMA_NUMBER when a custom RMA carries, say, an accented letter — the slip renders without a barcode rather than failing, so a non-NONE setting does not guarantee a barcode on every slip.
Enums, stages, and deprecated fields
Return.systemStage is an Int, and its order is not workflow order
systemStage is typed Int, not an enum. Its values are:
| Value | Meaning |
|---|---|
1 |
Automatically approved |
2 |
Pending approval |
3 |
Approved |
4 |
Rejected |
5 |
Received |
Do not sort or compare on this number. The numbers are storage ids, not workflow positions — internally the workflow order is a separate remapping in which pending approval comes first and automatic approval sits between approved and received. Treat systemStage as a categorical label.
systemStage is also null for a return sitting in a shop-defined custom stage. Use stageId plus the shop's stage list to resolve the label:
query Stages {
getMyShop {
stages { id label systemStage behavior }
}
}
Match Return.stageId against id in that list. Note the type mismatch: Stage.systemStage on that list is the SystemStage enum (AUTOMATICALLY_APPROVED, PENDING_APPROVAL, APPROVED, REJECTED, RECEIVED), while Return.systemStage is the Int above — the table maps between them. A custom stage has systemStage: null but may still behave like a system stage: Stage.behavior carries the effective SystemStage enum for a custom stage configured to act like one (for example a shop's own "received" stage), and is the field to read when you care about semantics rather than identity. Return.stageLabel is a snapshot of the stage's label taken when the return entered the stage: if the merchant later renames the stage, stageLabel keeps the old text while stages[].label reflects the rename. Map stageId against the stage list when you need the current display name. statusId and statusLabel are older aliases of stageId and stageLabel.
Return.availableActions
availableActions is a list of ProcessingStatusAction tokens that partitions returns into two coarse families — draft and live. It does not check per-mutation eligibility: a fully resolved return still reports POST_ACTIVATION_ACTIONS even though a further refund would be rejected. The complete set of values it can return:
| Token | Meaning |
|---|---|
POST_ACTIVATION_ACTIONS |
The return is live (not a draft); the approve / receive / refund / dispose family of mutations applies, subject to each mutation's own validation. This is returned alone, never alongside the draft tokens. |
DISCARD |
Draft only — the draft can be discarded. Not offered once its Shopify return has synced. |
CONVERT_SHIPPING |
Draft only — the shipping choice can still be converted. |
RETRY |
Draft only — a failed activation step can be retried. |
WAIVE_BALANCE |
Draft only — an outstanding exchange balance can be waived. |
RESEND_BALANCE_INVOICE |
Draft only — the balance invoice can be re-sent. |
A draft never reports POST_ACTIVATION_ACTIONS: the post-activation mutations exclude drafts and would report the return as not found.
Disposition enums
returnDispose takes two mutually exclusive enums. Prefer dispositionAction — it is the business-level intent, and ReturnZap maps it to what Shopify records.
DispositionAction (pass one of these):
| Value | Recorded in Shopify as |
|---|---|
RESTOCK |
RESTOCKED — the only value that returns inventory to stock |
REFURBISH |
PROCESSING_REQUIRED |
RECYCLE |
NOT_RESTOCKED |
DESTROY |
NOT_RESTOCKED |
DONATE |
NOT_RESTOCKED |
LIQUIDATE |
NOT_RESTOCKED |
RESELL |
NOT_RESTOCKED |
DispositionType is the raw Shopify-level value (MISSING, PROCESSING_REQUIRED, NOT_RESTOCKED, RESTOCKED) and is accepted for backwards compatibility. Supply one of the two arguments: supplying neither fails with disposeMutation.invalidDispositionType, and if both are supplied dispositionAction wins and dispositionType is silently ignored — do not send both. shopifyLocationId is required, and every id in returnItemIds must belong to the given return. Disposition is irreversible.
Migrating off deprecated fields
dashboardReturns → returns. Same arguments, same DashboardResponse. The old name was a misnomer: it returns a filtered, paginated list of returns, not dashboard aggregates. Rename the field and nothing else.
archiveReturns → returnUpdateStatus. The arguments differ:
archiveReturns |
returnUpdateStatus |
|---|---|
returnIds: [ID]! — no length limit |
returnIds: [ID]! — capped at 10 ids per call; may be empty when filters is supplied |
archive: Boolean! |
isArchived: Boolean! (renamed) |
| — | filters: FiltersInput — archive everything matching a filter instead of an explicit id list |
returns success |
returns success and affectedReturnIds |
Passing neither filters nor a non-empty returnIds is an error, and ids for returns outside your shop are silently not matched — so read affectedReturnIds rather than assuming every id you sent was archived. The two argument styles are mutually exclusive in effect: whenever returnIds is non-empty, filters is ignored entirely — to archive by filter, send returnIds: []. Batches larger than ten ids are rejected; chunk them or switch to filter mode.
The two are not behaviourally identical: archiveReturns skips draft returns, returnUpdateStatus does not. If your id list or filter can include drafts, a straight rename will start archiving them. Filter drafts out of returnIds yourself — adding filters alongside a non-empty id list does nothing — or use filter mode with filters: { processingStatus: [...] } and an empty returnIds.
Other deprecated fields worth migrating while you are here: suggestionRefund → suggestedRefund, handlingFeeCharged → originalHandlingFeeCharged / actualHandlingFeeCharged, restockingFeeCharged → originalRestockingFeeCharged / actualRestockingFeeCharged, shippedTo → warehouseName, appliedRules → appliedRulesDetailed, next/previous → nextReturn/previousReturn.
Webhooks
The event catalog
There are exactly two events:
| Event | Fires when |
|---|---|
return_created |
A return becomes live. |
return_updated |
A live return changes one of the fields carried in the payload below. |
Deliveries are queued on transaction commit, and events are coalesced per return per transaction: several saves of the same return in one business operation produce one delivery, and if both events are pending for the same return, only return_created is sent. Do not expect one delivery per field change. A change that only touches fields outside the payload usually delivers nothing; return_date is the exception and can fire return_updated without appearing in the body.
Drafts never deliver. A return in a draft state is skipped entirely; it sends return_created when it is activated, not when the draft row appeared.
Two other cases are silent. Unarchiving a return does not send return_updated (archiving does). Pre-fulfillment and manual withdrawals never send webhooks.
Webhooks are a plan feature. If the shop's subscription does not include webhooks, nothing is delivered, and no error is surfaced to the API caller.
The delivered request
Every delivery is an HTTP POST with Content-Type: application/json and a body of this shape. Note the keys are snake_case, unlike the GraphQL API's camelCase:
{
"event": "return_created",
"content": {
"shop": { "id": "42", "uuid": "…", "url": "example.myshopify.com" },
"return": { "id": "12345", "uuid": "…", "rma_number": "1.1001", "…": "…" }
},
"trace_id": "…",
"call_id": "…",
"webhook_url": "https://example.com/hooks/returnzap",
"webhook_id": "…"
}
content.return is a snake_cased projection of the GraphQL Return type — a fixed subset, not the whole type. It carries the identity and status fields (id, uuid, rma_number, customer_email, customer_first_name, customer_last_name, shopify_order_id, shopify_order_number, rma_form_url, stage_id, stage_label, system_stage, created_at, is_archived, approval_required, rejected_at, rejection_reason, gift_return, gift_return_email_address, no_shipping_required, exchange_balance_due, return_item_types, return_type_labels), the shipping fields (tracking_number, shipping_method, shipment_carrier_name, shipment_service_name), the customer_address / destination_address / gift_return_address objects, a shipment object holding tracking_url, an exchange_items array, and an items array. Each item carries its own identifiers, quantities, reason and condition, pre_tax_price_set / post_tax_price_set money sets, its exchange_item, and the shopper's answers.
Ids arrive as strings, including content.shop.id and content.return.id.
The same field semantics documented elsewhere in these docs apply here — in particular system_stage is a categorical Int whose order is not workflow order, and stage_label is a snapshot taken when the return entered the stage.
The four top-level fields outside content are added by the delivery layer:
| Field | Meaning |
|---|---|
trace_id |
Identifies the originating business operation. Stable across retries — quote it to support. |
call_id |
Unique per delivery attempt. A retry carries a new one, so it is not a deduplication key. |
webhook_url |
The endpoint this delivery was addressed to. |
webhook_id |
The endpoint's id. |
Treat deliveries as best-effort and possibly duplicated, and possibly out of order. Each body is a snapshot: upsert on content.return.id (or uuid). Do not drop a delivery because event plus return id already arrived — later updates reuse that pair. call_id changes on every attempt, and trace_id names the originating operation (callers can reuse X-Trace-Id), so neither identifies one delivery.
Verifying the signature
Every delivery carries X-ReturnZap-Signature: the lowercase hex HMAC-SHA256 of the raw request body, keyed by the endpoint's signing secret (UTF-8). There is no timestamp, no version prefix, and no other component in the header value.
The body is serialized once as compact, key-sorted JSON and those exact bytes are both signed and sent, so verify against the raw bytes you received — parsing the JSON and re-serializing it will not reproduce the signature reliably.
import hashlib
import hmac
def verify(raw_body: bytes, signature_header: str, secret: str) -> bool:
expected = hmac.new(secret.encode("utf-8"), raw_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature_header or "")
const crypto = require('node:crypto')
function verify(rawBody, signatureHeader, secret) {
const expected = crypto.createHmac('sha256', secret).update(rawBody).digest('hex')
const a = Buffer.from(expected, 'utf8')
const b = Buffer.from(signatureHeader || '', 'utf8')
return a.length === b.length && crypto.timingSafeEqual(a, b)
}
Most web frameworks hand you a parsed body by default. Capture the raw body explicitly (express.raw({ type: 'application/json' }), Django's request.body before any parsing, and so on) and compare in constant time, as above.
The signing secret is generated when the endpoint is created and shown once. Rotating it takes effect immediately — the previous secret stops validating on the next delivery. Copy the new secret and deploy it; there is no overlap window, so deliveries between rotate and deploy fail signature checks. If the endpoint is also configured with HTTP Basic Auth, deliveries additionally carry a standard Authorization: Basic header; the signature is unaffected.
This signing scheme is not final. The Warehouse partner API uses a newer, timestamped scheme, and whether the two converge is an open question. Keep your verification logic in one place so it can be updated.
Retries
Each attempt has a 10-second timeout. If the endpoint answers with a 4xx or 5xx status, the delivery is retried up to 5 times with exponential backoff from a 30-second base: 30s, 60s, 120s, 240s, 480s — six attempts in total, spanning roughly 15 minutes. Retries repeat the same content with a fresh call_id and the original trace_id.
Two limits are worth designing around:
- A connection failure or a timeout is not retried. Only a 4xx or 5xx status schedules a retry; if your endpoint is unreachable or too slow to answer within 10 seconds, that delivery is dropped. Answer
2xximmediately and do the work asynchronously. - After the final retry the delivery is abandoned — there is no dead-letter queue and no self-serve replay. Webhooks are a latency optimization, not a system of record: reconcile against the API periodically rather than assuming every event arrived.
Configuring an endpoint
There are two kinds of endpoint, and both deliver identically:
- Customer-managed. Configured in HQ under Settings → Integrations: URL, which of the two events to send, an enable/disable toggle, optional Basic Auth credentials, and the signing secret with a rotate action. Requires the HQ Can Modify Settings permission — without it the controls are hidden. At most one per shop — a database constraint enforces it. Clearing the URL deletes the endpoint.
- Support-managed. Additional endpoints ReturnZap support configures on request, one per distinct URL, not visible or editable in HQ.
A delivery goes to every enabled endpoint whose event list includes the event, so a shop with both kinds receives the event on both.
API tokens
Creating a token
Merchants issue their own tokens — no support ticket needed. In HQ, go to Settings → Integrations → API tokens and choose Create token. The only input is an optional label (it defaults to API Token); use it to name the integration the token belongs to.
The plaintext token is displayed once, immediately after minting, and is never retrievable afterwards. Copy it straight into your secret store. It looks like rz_prod_ followed by 32 hex characters.
The card also supports editing a token's label and revoking a token. Revocation takes effect on the token's next request and cannot be undone — issue a new token and migrate rather than expecting to restore one. The token list shows each token's label, last four characters, creation date, who created it, and when it was last used.
Minting requires the API access plan feature and the HQ Can Modify Settings permission. Losing the feature automatically revokes every active token from this card — they disappear from the list and cannot be restored.
Using a token
Send it as a bearer token on every request:
POST /graphql/admin HTTP/1.1
Host: api.returnzap.com
Content-Type: application/json
Authorization: Bearer rz_prod_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Tokens minted from this card are full-access and non-expiring. There is no rotation action, no expiry to configure, and no narrower scope to request: the card issues one kind of credential. (Narrower scopes and expiry exist inside the system for other credential types — do not build an integration that expects to obtain them here.)
Two consequences of "full access" are worth stating plainly:
- A token carries shop-wide authority over return data. Per-user permission checks do not apply to token-authenticated requests, so there is no way to hand out a read-only or returns-only token from here. Keep it server-side, in a secret manager — never ship it to a browser, a mobile app, or a shared CI log. The one thing a token deliberately cannot do is manage credentials: minting, relabelling, revoking, and rotating tokens require a signed-in HQ user, so a leaked token cannot mint itself a successor.
- A token is bound to the shop it was minted for. To integrate with several shops, mint a token per shop.
The last used column is stamped at most once every five minutes, so it is a liveness hint, not an audit log. Do not use it to prove a token was or was not used at a given moment.
The separate Merchant MCP credential on the same settings page is a different flow with its own lifecycle; it does not authenticate against this API.
Deprecation policy and changelog
How a deprecation is signalled
A deprecated query, mutation, or field carries a deprecationReason. That reason is visible through GraphQL introspection and rendered in these docs, so your tooling can detect deprecations without reading release notes. Treat it as explanatory metadata — it often names a replacement, but it may be empty or say only that the member is unused. There is no other signal: no response header, no sunset date embedded in the schema.
Deprecation alone changes nothing at runtime. The field keeps working, unchanged, for the whole window below.
The windows
- 90 days of sunset from the deprecation date. During this period the deprecated member continues to behave exactly as before. This is the window to migrate in.
- Removable at 180 days, and only then. A deprecated member is removed no earlier than 180 days after its deprecation date, and only once measured usage has reached zero — a field still carrying live traffic stays past 180 days rather than breaking callers.
- Every removal is announced in the changelog below before it ships. A member disappearing without a changelog entry is a bug; report it.
Migrate within the sunset window rather than at the deadline, and read "Enums, stages, and deprecated fields" first: some replacements are not behaviour-identical to the member they replace (archiveReturns → returnUpdateStatus differs on draft returns, for one), so a blind rename can change what your integration does.
Changelog
Newest first. This log begins in August 2026, seeded with the most recent notable schema changes; it is not a complete history of the API.
| Date | Change |
|---|---|
| 2026-08-12 | Added SuggestedRefundType.netRefundPayableSet — the refund amount to actually pay out, suggestedRefundSet minus outstanding handling and restocking fees. See "Money semantics". |
| 2025-11-03 | Deprecated the dashboardReturns query → use returns. Same arguments, same response type. |
| 2024-10-24 | Deprecated the archiveReturns mutation → use returnUpdateStatus. Arguments differ, and the two treat draft returns differently. |
Queries
dashboardReturns
Response
Returns a DashboardResponse
Arguments
| Name | Description |
|---|---|
query - String
|
Default = "" |
stages - [Int]
|
|
status - ArchiveFilter
|
|
returnDate - DateFilterRange
|
|
orderDate - DateFilterRange
|
|
stageUpdatedDate - DateFilterRange
|
|
perPage - Int
|
Default = 25 |
currentPage - Int
|
Default = 0 |
sortBy - String
|
Default = "-returnDate" |
resolvedStatus - [ResolvedStatus]
|
|
returnItemTypes - [String]
|
|
draftProcessingState - [DraftReturnState]
|
|
warehouseIds - [Int]
|
No filtering if not passed in or empty list. Use 0 to designate default, or no warehouse. |
requestType - [String]
|
Example
Query
query dashboardReturns(
$query: String,
$stages: [Int],
$status: ArchiveFilter,
$returnDate: DateFilterRange,
$orderDate: DateFilterRange,
$stageUpdatedDate: DateFilterRange,
$perPage: Int,
$currentPage: Int,
$sortBy: String,
$resolvedStatus: [ResolvedStatus],
$returnItemTypes: [String],
$draftProcessingState: [DraftReturnState],
$warehouseIds: [Int],
$requestType: [String]
) {
dashboardReturns(
query: $query,
stages: $stages,
status: $status,
returnDate: $returnDate,
orderDate: $orderDate,
stageUpdatedDate: $stageUpdatedDate,
perPage: $perPage,
currentPage: $currentPage,
sortBy: $sortBy,
resolvedStatus: $resolvedStatus,
returnItemTypes: $returnItemTypes,
draftProcessingState: $draftProcessingState,
warehouseIds: $warehouseIds,
requestType: $requestType
) {
id
returns {
...ReturnFragment
}
totalCount
}
}
Variables
{
"query": "",
"stages": [987],
"status": "ACTIVE",
"returnDate": DateFilterRange,
"orderDate": DateFilterRange,
"stageUpdatedDate": DateFilterRange,
"perPage": 25,
"currentPage": 0,
"sortBy": "-returnDate",
"resolvedStatus": ["RESOLVED"],
"returnItemTypes": ["abc123"],
"draftProcessingState": ["CREATED"],
"warehouseIds": [987],
"requestType": ["xyz789"]
}
Response
{
"data": {
"dashboardReturns": {
"id": 4,
"returns": [Return],
"totalCount": 123
}
}
}
getMyShop
Response
Returns an AuthenticatedShop
Example
Query
query getMyShop {
getMyShop {
uuid
url
primaryDomain
timezone
name
isTestShop
isUitestShop
onboardingCompletedAt
needsToEnableExchangeTestDrive
userPermissionsEnabled
notifyOnlyIfApprovalIsRequired
instructions
portalTheme
portalLanguage
portalFrenchUseAlternative
portalGermanUseAlternative
portalItalianUseAlternative
portalCustomizations
shouldDisplayFeesInPortal
refundPortalDisplayOrder
creditPortalDisplayOrder
exchangePortalDisplayOrder
showPortalSummary
portalExchangeSelectionMethod
portalVisualExchangeType
portalVisualExchangeIncludeCollections
portalVisualExchangeExcludeCollections
exchangeUpsellEnabled
exchangeUpsellDiscountPercentage
minFilesPerReturn
maxFilesPerReturn
isShippingLabelUploadAllowed
barcodeValue
enableCustomRmaNumber
shipFree
shipPay
shipSelf
shipStore
isShippingByReturnzapAvailable
useShippingByReturnzap
prepaidShippingFee
paidShippingFee
selfShippingFee
storeShippingFee
storeReturnInstructions
isDefaultFeeEqualsShippingCost
shippingRateSelectLowestRate
shippingRateShowUpToPercentage
customerLabelFlatFee
customerPaidShippingMode
isNoShippingReturnEnabled
displayGreenReturnsUpfront
isQrCodeEnabled
isCartonizationEnabled
isWarehouseManagementEnabled
withdrawalEnabled
customerCancelEnabled
withdrawalDaysSinceDelivery
withdrawalDaysSinceFulfillment
withdrawalHandlingMode
preFulfillmentManualReviewAfterMinutes
cartonizationLengthUnit
restockingFeeDefinedAsPercentage
defaultRefundFee
defaultExchangeFee
defaultStoreCreditFee
currency
internationalCustomsContentValueSource
intlCommercialInvoiceAttachment
klaviyoApiKey
gorgiasSubdomain
useApprovals
requireApprovalForAllReturns
useShopAddressForPosReturns
useBillingAddressFallback
allowGiftReturns
giftReturnsExchangeEnabled
giftReturnsStoreCreditEnabled
preventReturnsFromDifferentFulfillments
delayedShopifyReturnCreationEnabled
createReturnOnResolve
returnTypeComparisonFlowEnabled
isRefundIntegrationEnabled
isRestockIntegrationEnabled
returnItemExpirationDays
isReturnItemExpirationEnabled
returnItemExpirationEnabledAt
expirationPreventionAction
expirationPeriodType
isExchangeIntegrationEnabled
exchangeMethod
isInlineExchangeEnabled
isFullCatalogExchangeEnabled
useConsolidatedOrderExchanges
discountSameProductExchangesToBeEqual
exchangeNormalizeCrossProductEqualPrices
isExchangeDifferentialPricingEnabled
exchangeRoundToZeroIfLteTo
exchangeDaysToReserveStock
allowOutOfStockExchanges
exchangeCheckInventoryAtFulfillmentLocation
carryDiscountForwardType
useExchangeShipmentOrders
exchangeShipmentOrderSuffix
exchangeShippingLineTitle
autoProcessExchangesOnCreation
isStoreCreditIntegrationEnabled
isStoreCreditIncentiveEnabled
storeCreditIncentivePercentage
minStoreCreditIncentiveAmount
maxStoreCreditIncentiveAmount
isStoreCreditIncentiveRoundToNearest
resolvePartialExchangeRefundsToStoreCredit
storeCreditExpireDays
giftCardPrefix
id
useNewAnalyticsUi
useAsyncReturnProcessing
parentUrl
shopifyAdminUrl
primaryFieldBehavior
secondaryFieldBehavior
reauthenticateUrl
hasTestModeReturns
hasReturnWithdrawals
defaultPortalUrl
adminAppUrl
enableRefund
refundDays
refundDaysType
refundCommentsEnabled
refundCommentsRequired
refundRequireDeliveryBeforeReturn
enableExchange
exchangeDays
exchangeDaysType
exchangeCommentsEnabled
exchangeCommentsRequired
exchangeRequireDeliveryBeforeReturn
exchangeExcludeTags
enableStoreCredit
storeCreditDays
storeCreditDaysType
storeCreditCommentsEnabled
storeCreditCommentsRequired
storeCreditRequireDeliveryBeforeReturn
automatedStoreCreditType
notificationEmailAddress
notificationEmailAttachRma
customerEmailDisplayFromName
customerEmailReplyToAddress
defaultAddress {
...AddressFragment
}
defaultWeight
defaultWeightUnit
international
internationalOriginCountry
internationalCustomsSigner
internationalNonDeliveryOption
internationalExemptionCode
internationalDefaultHarmonizedSystemCode
shippoApiKey
stripePublishableKey
stripeSecretKey
subscriptionPlan {
...ShopSubscriptionPlanFragment
}
features
installedAt
returnReasons {
...ReturnReasonFragment
}
stages {
...StageFragment
}
notifications {
...NotificationFragment
}
rules {
...RuleFragment
}
packages {
...PackageTypeFragment
}
dynamicTranslations {
...DynamicTranslationFragment
}
returnIntegration
missingScopes
returnProtectionMissingScopes
sendcloudAccounts {
...SendcloudAccountFragment
}
shopifyLocations {
...ShopifyLocationFragment
}
easyPostAccount {
...EasyPostAccountTypeFragment
}
shippoAccount {
...ShippoAccountTypeFragment
}
shipstationAccount {
...ShipStationAccountTypeFragment
}
zendeskAccount {
...ZendeskAccountTypeFragment
}
refField1Source
refField2Source
storeCreditIncentiveType
restockingFeeType
webhookUrl
webhookEvents
questions {
...QuestionFragment
}
stageShipmentStatuses {
...StageShipmentStatusTypeFragment
}
defaultWarehouseForPosReturns
defaultRestockLocationId
portalConfig {
...PortalConfigTypeFragment
}
authorizationPdfLogo {
...ImageFragment
}
hasLabelIntegration
canUseStoreShippingMode
autoRechargeStatus
featureFlags {
...GrapheneFeatureFlagValueFragment
}
configurationGoals {
...ConfigurationGoalsFragment
}
logo
logoUploadUrl {
...SignedUrlFragment
}
easypostApiKey
onboardingComplete
installDate
exchangeIntegration
storeCreditIntegration
}
}
Response
{
"data": {
"getMyShop": {
"uuid": "abc123",
"url": "abc123",
"primaryDomain": "xyz789",
"timezone": "xyz789",
"name": "xyz789",
"isTestShop": true,
"isUitestShop": true,
"onboardingCompletedAt": "2007-12-03T10:15:30Z",
"needsToEnableExchangeTestDrive": false,
"userPermissionsEnabled": false,
"notifyOnlyIfApprovalIsRequired": true,
"instructions": "xyz789",
"portalTheme": "xyz789",
"portalLanguage": "abc123",
"portalFrenchUseAlternative": false,
"portalGermanUseAlternative": true,
"portalItalianUseAlternative": false,
"portalCustomizations": JSONString,
"shouldDisplayFeesInPortal": true,
"refundPortalDisplayOrder": 987,
"creditPortalDisplayOrder": 123,
"exchangePortalDisplayOrder": 987,
"showPortalSummary": false,
"portalExchangeSelectionMethod": "SEARCH",
"portalVisualExchangeType": "NONE",
"portalVisualExchangeIncludeCollections": [
"xyz789"
],
"portalVisualExchangeExcludeCollections": [
"xyz789"
],
"exchangeUpsellEnabled": false,
"exchangeUpsellDiscountPercentage": Decimal,
"minFilesPerReturn": 987,
"maxFilesPerReturn": 123,
"isShippingLabelUploadAllowed": true,
"barcodeValue": "NONE",
"enableCustomRmaNumber": true,
"shipFree": true,
"shipPay": true,
"shipSelf": true,
"shipStore": true,
"isShippingByReturnzapAvailable": true,
"useShippingByReturnzap": true,
"prepaidShippingFee": Decimal,
"paidShippingFee": Decimal,
"selfShippingFee": Decimal,
"storeShippingFee": Decimal,
"storeReturnInstructions": "abc123",
"isDefaultFeeEqualsShippingCost": true,
"shippingRateSelectLowestRate": false,
"shippingRateShowUpToPercentage": Decimal,
"customerLabelFlatFee": Decimal,
"customerPaidShippingMode": "RETURNZAP",
"isNoShippingReturnEnabled": true,
"displayGreenReturnsUpfront": false,
"isQrCodeEnabled": true,
"isCartonizationEnabled": true,
"isWarehouseManagementEnabled": true,
"withdrawalEnabled": true,
"customerCancelEnabled": false,
"withdrawalDaysSinceDelivery": 987,
"withdrawalDaysSinceFulfillment": 123,
"withdrawalHandlingMode": "AUTOMATIC",
"preFulfillmentManualReviewAfterMinutes": 987,
"cartonizationLengthUnit": "INCHES",
"restockingFeeDefinedAsPercentage": false,
"defaultRefundFee": Decimal,
"defaultExchangeFee": Decimal,
"defaultStoreCreditFee": Decimal,
"currency": "abc123",
"internationalCustomsContentValueSource": "SELL_PRICE",
"intlCommercialInvoiceAttachment": "DISABLED",
"klaviyoApiKey": "abc123",
"gorgiasSubdomain": "abc123",
"useApprovals": false,
"requireApprovalForAllReturns": false,
"useShopAddressForPosReturns": false,
"useBillingAddressFallback": true,
"allowGiftReturns": true,
"giftReturnsExchangeEnabled": false,
"giftReturnsStoreCreditEnabled": true,
"preventReturnsFromDifferentFulfillments": true,
"delayedShopifyReturnCreationEnabled": true,
"createReturnOnResolve": false,
"returnTypeComparisonFlowEnabled": true,
"isRefundIntegrationEnabled": false,
"isRestockIntegrationEnabled": true,
"returnItemExpirationDays": 123,
"isReturnItemExpirationEnabled": true,
"returnItemExpirationEnabledAt": "2007-12-03T10:15:30Z",
"expirationPreventionAction": "RETURN_PROCESSED",
"expirationPeriodType": "RETURN_CREATED_DATE",
"isExchangeIntegrationEnabled": false,
"exchangeMethod": "COMMENTS",
"isInlineExchangeEnabled": true,
"isFullCatalogExchangeEnabled": false,
"useConsolidatedOrderExchanges": false,
"discountSameProductExchangesToBeEqual": true,
"exchangeNormalizeCrossProductEqualPrices": true,
"isExchangeDifferentialPricingEnabled": false,
"exchangeRoundToZeroIfLteTo": Decimal,
"exchangeDaysToReserveStock": 123,
"allowOutOfStockExchanges": false,
"exchangeCheckInventoryAtFulfillmentLocation": false,
"carryDiscountForwardType": "NONE",
"useExchangeShipmentOrders": true,
"exchangeShipmentOrderSuffix": "xyz789",
"exchangeShippingLineTitle": "xyz789",
"autoProcessExchangesOnCreation": true,
"isStoreCreditIntegrationEnabled": false,
"isStoreCreditIncentiveEnabled": false,
"storeCreditIncentivePercentage": 987.65,
"minStoreCreditIncentiveAmount": Decimal,
"maxStoreCreditIncentiveAmount": Decimal,
"isStoreCreditIncentiveRoundToNearest": true,
"resolvePartialExchangeRefundsToStoreCredit": true,
"storeCreditExpireDays": 987,
"giftCardPrefix": "abc123",
"id": 4,
"useNewAnalyticsUi": false,
"useAsyncReturnProcessing": true,
"parentUrl": "abc123",
"shopifyAdminUrl": "xyz789",
"primaryFieldBehavior": "EMAIL_ADDRESS",
"secondaryFieldBehavior": "SHOPIFY_ORDER_NUMBER",
"reauthenticateUrl": "xyz789",
"hasTestModeReturns": true,
"hasReturnWithdrawals": true,
"defaultPortalUrl": "xyz789",
"adminAppUrl": "abc123",
"enableRefund": true,
"refundDays": 123,
"refundDaysType": "SINCE_DELIVERY",
"refundCommentsEnabled": true,
"refundCommentsRequired": false,
"refundRequireDeliveryBeforeReturn": true,
"enableExchange": true,
"exchangeDays": 123,
"exchangeDaysType": "SINCE_DELIVERY",
"exchangeCommentsEnabled": false,
"exchangeCommentsRequired": false,
"exchangeRequireDeliveryBeforeReturn": false,
"exchangeExcludeTags": ["abc123"],
"enableStoreCredit": false,
"storeCreditDays": 987,
"storeCreditDaysType": "SINCE_DELIVERY",
"storeCreditCommentsEnabled": false,
"storeCreditCommentsRequired": true,
"storeCreditRequireDeliveryBeforeReturn": false,
"automatedStoreCreditType": "DISCOUNT_CODE",
"notificationEmailAddress": "abc123",
"notificationEmailAttachRma": false,
"customerEmailDisplayFromName": "xyz789",
"customerEmailReplyToAddress": "abc123",
"defaultAddress": Address,
"defaultWeight": Decimal,
"defaultWeightUnit": "abc123",
"international": false,
"internationalOriginCountry": "xyz789",
"internationalCustomsSigner": "xyz789",
"internationalNonDeliveryOption": "abc123",
"internationalExemptionCode": "xyz789",
"internationalDefaultHarmonizedSystemCode": "xyz789",
"shippoApiKey": "abc123",
"stripePublishableKey": "xyz789",
"stripeSecretKey": "xyz789",
"subscriptionPlan": ShopSubscriptionPlan,
"features": ["abc123"],
"installedAt": "2007-12-03T10:15:30Z",
"returnReasons": [ReturnReason],
"stages": [Stage],
"notifications": [Notification],
"rules": [Rule],
"packages": [PackageType],
"dynamicTranslations": [DynamicTranslation],
"returnIntegration": false,
"missingScopes": ["abc123"],
"returnProtectionMissingScopes": [
"xyz789"
],
"sendcloudAccounts": [SendcloudAccount],
"shopifyLocations": [ShopifyLocation],
"easyPostAccount": EasyPostAccountType,
"shippoAccount": ShippoAccountType,
"shipstationAccount": ShipStationAccountType,
"zendeskAccount": ZendeskAccountType,
"refField1Source": "BLANK",
"refField2Source": "BLANK",
"storeCreditIncentiveType": "ONCE_PER_ITEM",
"restockingFeeType": "ONCE_PER_RETURN",
"webhookUrl": "abc123",
"webhookEvents": ["RETURN_CREATED"],
"questions": [Question],
"stageShipmentStatuses": [StageShipmentStatusType],
"defaultWarehouseForPosReturns": 4,
"defaultRestockLocationId": "xyz789",
"portalConfig": PortalConfigType,
"authorizationPdfLogo": Image,
"hasLabelIntegration": true,
"canUseStoreShippingMode": false,
"autoRechargeStatus": "HEALTHY",
"featureFlags": [GrapheneFeatureFlagValue],
"configurationGoals": ConfigurationGoals,
"logo": "xyz789",
"logoUploadUrl": SignedUrl,
"easypostApiKey": "abc123",
"onboardingComplete": false,
"installDate": "2007-12-03T10:15:30Z",
"exchangeIntegration": false,
"storeCreditIntegration": false
}
}
}
getPaymentMethod
Description
Get a specific payment method by ID
Response
Returns a ShopPaymentMethod
Arguments
| Name | Description |
|---|---|
paymentMethodId - ID!
|
Example
Query
query getPaymentMethod($paymentMethodId: ID!) {
getPaymentMethod(paymentMethodId: $paymentMethodId) {
id
createdAt
stripePaymentMethodId
paymentMethodType
brand
lastFour
expMonth
expYear
bankName
isActive
isDefault
failedChargeAttempts
status
isExpired
isChargeExhausted
}
}
Variables
{"paymentMethodId": 4}
Response
{
"data": {
"getPaymentMethod": {
"id": "ed78471e-5d76-454a-a112-cbcd761bccda",
"createdAt": "2007-12-03T10:15:30Z",
"stripePaymentMethodId": "xyz789",
"paymentMethodType": "CARD",
"brand": "xyz789",
"lastFour": "xyz789",
"expMonth": 987,
"expYear": 123,
"bankName": "abc123",
"isActive": false,
"isDefault": false,
"failedChargeAttempts": 123,
"status": "PENDING",
"isExpired": false,
"isChargeExhausted": true
}
}
}
getReturn
Example
Query
query getReturn($returnId: ID!) {
getReturn(returnId: $returnId) {
id
uuid
adminReturn
testMode
returnIntegration
usesConsolidatedOrderExchanges
traceId
draftProcessingState
customerFirstName
customerLastName
customerEmail
rmaNumber
stageLabel
stageUpdatedDate
approvalRequired
approvedAt
rejectedAt
rejectionReason
notes
allowResubmission
receivedAt
financialTerminalAt
isArchived
expiredAt
shippingMethod
giftReturn
giftReturnEmailAddress
trackingNumber
deliveryDate
deliveryStatus
labelCurrency
shopCurrency
noShippingRequired
feesSentThroughReturnIntegration
defaultRefundFee
defaultStoreCreditFee
originalHandlingFeeCharged
actualHandlingFeeCharged
restockingFeeType
originalRestockingFeeCharged
actualRestockingFeeCharged
shopifyReturnId
shopifyReturnName
shopifyReturnSyncError
shopifyOrderId
shopifyOrderDate
exchangeBalanceDue
exchangeBalancePaidAt
estimatedBalance
isDraft
shopifyOrderNumber
shopifyOrderUrl
shopifyCustomerUrl
customerAddress {
...ReturnAddressTypeFragment
}
destinationAddress {
...ReturnAddressTypeFragment
}
giftReturnAddress {
...ReturnAddressTypeFragment
}
rmaFormUrl
stageId
systemStage
statusId
statusLabel
labelUrl
qrCodeUrl
qrCodeDownloadUrl
returnStatusPageUrl
labelCost
totalWeightGrams
createdAt
refunds {
...RefundTypeFragment
}
logs {
...ReturnLogFragment
}
next
previous
nextReturn {
...ReturnFragment
}
previousReturn {
...ReturnFragment
}
exchangeOrders {
...ExchangeOrderFragment
}
shipment {
...ShipmentFragment
}
appliedRules
appliedRulesDetailed {
...AppliedRuleTypeFragment
}
suggestionRefund {
...SuggestionRefundTypeFragment
}
suggestedRefund {
...SuggestedRefundTypeFragment
}
hasValidCustomerPaymentPending
warehouseName
shippedTo
warehouse {
...WarehouseTypeFragment
}
storeCredits {
...StoreCreditTypeFragment
}
externalShippingLabelUrl
items {
...ReturnItemFragment
}
exchangeItems {
...ExchangeItemFragment
}
handlingFeeCharged
restockingFeeCharged
shopifyOrderFulfillments {
...ShopifyFulfillmentTypeFragment
}
shopifyOrderTotalQuantityOrdered
shopifyOrderTotalQuantityReturnItems
shopifyOrderTotalPrice
shopifyOrderSubtotalPrice
shopifyOrderTags
shopifyOrderCustomerTags
shopifyReturnSyncStatus
availableActions
customerNumberOfOrders
customerNumberOfReturns
shipmentCarrierName
shipmentServiceName
pendingLabelRate {
...PendingLabelRateFragment
}
receipts {
...ReceiptFragment
}
hasReturnProtection
requestType
withdrawalSubtype
withdrawalReceivedAt
withdrawalManualResolutionReason
resolvedAt
withdrawalCancellationState
withdrawalCancellationErrorReason
withdrawalRefundDueAt
originCountryCode
orderId
orderNumber
orderDate
returnDate
isActive
unitQuantity
returnValueAmount
resolvedStatus
returnItemTypes
returnTypeLabels
}
}
Variables
{"returnId": 4}
Response
{
"data": {
"getReturn": {
"id": 4,
"uuid": "abc123",
"adminReturn": false,
"testMode": true,
"returnIntegration": false,
"usesConsolidatedOrderExchanges": false,
"traceId": "abc123",
"draftProcessingState": "CREATED",
"customerFirstName": "xyz789",
"customerLastName": "xyz789",
"customerEmail": "abc123",
"rmaNumber": "xyz789",
"stageLabel": "abc123",
"stageUpdatedDate": "2007-12-03T10:15:30Z",
"approvalRequired": true,
"approvedAt": "2007-12-03T10:15:30Z",
"rejectedAt": "2007-12-03T10:15:30Z",
"rejectionReason": "xyz789",
"notes": "abc123",
"allowResubmission": true,
"receivedAt": "2007-12-03T10:15:30Z",
"financialTerminalAt": "2007-12-03T10:15:30Z",
"isArchived": true,
"expiredAt": "2007-12-03T10:15:30Z",
"shippingMethod": "FREE",
"giftReturn": true,
"giftReturnEmailAddress": "abc123",
"trackingNumber": "abc123",
"deliveryDate": "2007-12-03T10:15:30Z",
"deliveryStatus": "abc123",
"labelCurrency": "xyz789",
"shopCurrency": "xyz789",
"noShippingRequired": false,
"feesSentThroughReturnIntegration": true,
"defaultRefundFee": Decimal,
"defaultStoreCreditFee": Decimal,
"originalHandlingFeeCharged": Decimal,
"actualHandlingFeeCharged": Decimal,
"restockingFeeType": "ONCE_PER_RETURN",
"originalRestockingFeeCharged": Decimal,
"actualRestockingFeeCharged": Decimal,
"shopifyReturnId": "xyz789",
"shopifyReturnName": "xyz789",
"shopifyReturnSyncError": "UNKNOWN_ERROR",
"shopifyOrderId": "xyz789",
"shopifyOrderDate": "2007-12-03T10:15:30Z",
"exchangeBalanceDue": Decimal,
"exchangeBalancePaidAt": "2007-12-03T10:15:30Z",
"estimatedBalance": Decimal,
"isDraft": false,
"shopifyOrderNumber": "xyz789",
"shopifyOrderUrl": "abc123",
"shopifyCustomerUrl": "abc123",
"customerAddress": ReturnAddressType,
"destinationAddress": ReturnAddressType,
"giftReturnAddress": ReturnAddressType,
"rmaFormUrl": "xyz789",
"stageId": 4,
"systemStage": 123,
"statusId": "abc123",
"statusLabel": "abc123",
"labelUrl": "abc123",
"qrCodeUrl": "xyz789",
"qrCodeDownloadUrl": "abc123",
"returnStatusPageUrl": "xyz789",
"labelCost": Decimal,
"totalWeightGrams": Decimal,
"createdAt": "2007-12-03T10:15:30Z",
"refunds": [RefundType],
"logs": [ReturnLog],
"next": "xyz789",
"previous": "xyz789",
"nextReturn": Return,
"previousReturn": Return,
"exchangeOrders": [ExchangeOrder],
"shipment": Shipment,
"appliedRules": ["xyz789"],
"appliedRulesDetailed": [AppliedRuleType],
"suggestionRefund": SuggestionRefundType,
"suggestedRefund": SuggestedRefundType,
"hasValidCustomerPaymentPending": false,
"warehouseName": "abc123",
"shippedTo": "xyz789",
"warehouse": WarehouseType,
"storeCredits": [StoreCreditType],
"externalShippingLabelUrl": "xyz789",
"items": [ReturnItem],
"exchangeItems": [ExchangeItem],
"handlingFeeCharged": Decimal,
"restockingFeeCharged": Decimal,
"shopifyOrderFulfillments": [
ShopifyFulfillmentType
],
"shopifyOrderTotalQuantityOrdered": 123,
"shopifyOrderTotalQuantityReturnItems": 123,
"shopifyOrderTotalPrice": Decimal,
"shopifyOrderSubtotalPrice": Decimal,
"shopifyOrderTags": ["xyz789"],
"shopifyOrderCustomerTags": [
"abc123"
],
"shopifyReturnSyncStatus": "UNSYNCABLE",
"availableActions": ["DISCARD"],
"customerNumberOfOrders": 123,
"customerNumberOfReturns": 123,
"shipmentCarrierName": "xyz789",
"shipmentServiceName": "xyz789",
"pendingLabelRate": PendingLabelRate,
"receipts": [Receipt],
"hasReturnProtection": true,
"requestType": "xyz789",
"withdrawalSubtype": "xyz789",
"withdrawalReceivedAt": "2007-12-03T10:15:30Z",
"withdrawalManualResolutionReason": "INTERCEPTED_OR_CANCELLED_OUTSIDE_RETURNZAP",
"resolvedAt": "2007-12-03T10:15:30Z",
"withdrawalCancellationState": "abc123",
"withdrawalCancellationErrorReason": "abc123",
"withdrawalRefundDueAt": "2007-12-03T10:15:30Z",
"originCountryCode": "xyz789",
"orderId": "abc123",
"orderNumber": "abc123",
"orderDate": "2007-12-03T10:15:30Z",
"returnDate": "2007-12-03T10:15:30Z",
"isActive": false,
"unitQuantity": 987,
"returnValueAmount": Decimal,
"resolvedStatus": "RESOLVED",
"returnItemTypes": ["xyz789"],
"returnTypeLabels": ["abc123"]
}
}
}
returns
Response
Returns a DashboardResponse
Arguments
| Name | Description |
|---|---|
query - String
|
Default = "" |
stages - [Int]
|
|
status - ArchiveFilter
|
|
returnDate - DateFilterRange
|
|
orderDate - DateFilterRange
|
|
stageUpdatedDate - DateFilterRange
|
|
perPage - Int
|
Default = 25 |
currentPage - Int
|
Default = 0 |
sortBy - String
|
Default = "-returnDate" |
resolvedStatus - [ResolvedStatus]
|
|
returnItemTypes - [String]
|
|
draftProcessingState - [DraftReturnState]
|
|
warehouseIds - [Int]
|
No filtering if not passed in or empty list. Use 0 to designate default, or no warehouse. |
requestType - [String]
|
Example
Query
query returns(
$query: String,
$stages: [Int],
$status: ArchiveFilter,
$returnDate: DateFilterRange,
$orderDate: DateFilterRange,
$stageUpdatedDate: DateFilterRange,
$perPage: Int,
$currentPage: Int,
$sortBy: String,
$resolvedStatus: [ResolvedStatus],
$returnItemTypes: [String],
$draftProcessingState: [DraftReturnState],
$warehouseIds: [Int],
$requestType: [String]
) {
returns(
query: $query,
stages: $stages,
status: $status,
returnDate: $returnDate,
orderDate: $orderDate,
stageUpdatedDate: $stageUpdatedDate,
perPage: $perPage,
currentPage: $currentPage,
sortBy: $sortBy,
resolvedStatus: $resolvedStatus,
returnItemTypes: $returnItemTypes,
draftProcessingState: $draftProcessingState,
warehouseIds: $warehouseIds,
requestType: $requestType
) {
id
returns {
...ReturnFragment
}
totalCount
}
}
Variables
{
"query": "",
"stages": [123],
"status": "ACTIVE",
"returnDate": DateFilterRange,
"orderDate": DateFilterRange,
"stageUpdatedDate": DateFilterRange,
"perPage": 25,
"currentPage": 0,
"sortBy": "-returnDate",
"resolvedStatus": ["RESOLVED"],
"returnItemTypes": ["abc123"],
"draftProcessingState": ["CREATED"],
"warehouseIds": [123],
"requestType": ["xyz789"]
}
Response
{
"data": {
"returns": {
"id": "4",
"returns": [Return],
"totalCount": 987
}
}
}
shopifyUser
Response
Returns a ShopifyUser
Arguments
| Name | Description |
|---|---|
id - ID!
|
Example
Query
query shopifyUser($id: ID!) {
shopifyUser(id: $id) {
id
uuid
accountOwner
preferredLocale
hqPreferences
isAdmin
canManageUsers
canModifySettings
canProcessReturns
shopifyId
email
firstName
lastName
locale
isActive
chatHash
shouldUpdate
isDeleted
shopifyRoles
}
}
Variables
{"id": 4}
Response
{
"data": {
"shopifyUser": {
"id": 4,
"uuid": "abc123",
"accountOwner": true,
"preferredLocale": "xyz789",
"hqPreferences": JSONString,
"isAdmin": true,
"canManageUsers": true,
"canModifySettings": true,
"canProcessReturns": true,
"shopifyId": "abc123",
"email": "xyz789",
"firstName": "abc123",
"lastName": "abc123",
"locale": "abc123",
"isActive": false,
"chatHash": "xyz789",
"shouldUpdate": false,
"isDeleted": false,
"shopifyRoles": "xyz789"
}
}
}
Mutations
adminMarkReceived
Description
Preferred admin alias for returnReceived. Internally projects through the WMS Receipt lifecycle service so Receipt is the source of truth for receiving.
Response
Returns a ReceivedReturn
Arguments
| Name | Description |
|---|---|
items - [ReceivedReturnItemInput!]
|
Per-item receiving data with status, condition, and rejection reason |
media - [WarehouseMediaInput!]
|
Return-level warehouse media attached to the resulting Receipt |
missingReturnItemIds - [ID]
|
Legacy: List of return items that should be marked as missing |
notes - [WarehouseNoteInput!]
|
Return-level warehouse notes attached to the resulting Receipt |
resolvedReturnItemIds - [ID]
|
List of return items that should be marked as manually resolved |
returnId - ID!
|
Example
Query
mutation adminMarkReceived(
$items: [ReceivedReturnItemInput!],
$media: [WarehouseMediaInput!],
$missingReturnItemIds: [ID],
$notes: [WarehouseNoteInput!],
$resolvedReturnItemIds: [ID],
$returnId: ID!
) {
adminMarkReceived(
items: $items,
media: $media,
missingReturnItemIds: $missingReturnItemIds,
notes: $notes,
resolvedReturnItemIds: $resolvedReturnItemIds,
returnId: $returnId
) {
error
return {
...ReturnFragment
}
}
}
Variables
{
"items": [ReceivedReturnItemInput],
"media": [WarehouseMediaInput],
"missingReturnItemIds": [4],
"notes": [WarehouseNoteInput],
"resolvedReturnItemIds": ["4"],
"returnId": "4"
}
Response
{
"data": {
"adminMarkReceived": {
"error": "xyz789",
"return": Return
}
}
}
archiveReturns
Response
Returns an ArchiveReturns
Example
Query
mutation archiveReturns(
$archive: Boolean!,
$returnIds: [ID]!
) {
archiveReturns(
archive: $archive,
returnIds: $returnIds
) {
success
}
}
Variables
{"archive": true, "returnIds": [4]}
Response
{"data": {"archiveReturns": {"success": true}}}
exchangeOrderBulkComplete
Description
Complete a list of exchange orders in Shopify and update the exchange order status in RZ
Response
Returns a ReleaseExchangeItemsMutation
Example
Query
mutation exchangeOrderBulkComplete(
$exchangeItemIds: [ID!],
$exchangeOrderIds: [ID!],
$returnId: ID,
$returnItemIds: [ID!]
) {
exchangeOrderBulkComplete(
exchangeItemIds: $exchangeItemIds,
exchangeOrderIds: $exchangeOrderIds,
returnId: $returnId,
returnItemIds: $returnItemIds
) {
errors
caveats
exchangeOrders {
...ExchangeOrderFragment
}
exchangeItems {
...ExchangeItemFragment
}
return_ {
...ReturnFragment
}
}
}
Variables
{
"exchangeItemIds": [4],
"exchangeOrderIds": ["4"],
"returnId": 4,
"returnItemIds": [4]
}
Response
{
"data": {
"exchangeOrderBulkComplete": {
"errors": ["xyz789"],
"caveats": ["abc123"],
"exchangeOrders": [ExchangeOrder],
"exchangeItems": [ExchangeItem],
"return_": Return
}
}
}
generatePortalImageUploadUrl
Response
Returns an GeneratePortalImageUploadURL
Example
Query
mutation generatePortalImageUploadUrl(
$contentType: String!,
$filename: String!,
$imageType: String!
) {
generatePortalImageUploadUrl(
contentType: $contentType,
filename: $filename,
imageType: $imageType
) {
errors {
...GQLErrorTypeFragment
}
uploadUrl {
...SignedUrlFragment
}
imagePath
}
}
Variables
{
"contentType": "xyz789",
"filename": "xyz789",
"imageType": "xyz789"
}
Response
{
"data": {
"generatePortalImageUploadUrl": {
"errors": [GQLErrorType],
"uploadUrl": SignedUrl,
"imagePath": "xyz789"
}
}
}
generateUploadUrl
Response
Returns an GenerateShippingLabelUploadURL
Example
Query
mutation generateUploadUrl(
$contentType: String!,
$fileName: String!
) {
generateUploadUrl(
contentType: $contentType,
fileName: $fileName
) {
error
url {
...SignedUrlFragment
}
}
}
Variables
{
"contentType": "xyz789",
"fileName": "abc123"
}
Response
{
"data": {
"generateUploadUrl": {
"error": "abc123",
"url": SignedUrl
}
}
}
questionCreate
Response
Returns a CreateOrUpdateQuestion
Arguments
| Name | Description |
|---|---|
question - QuestionInput!
|
Example
Query
mutation questionCreate($question: QuestionInput!) {
questionCreate(question: $question) {
question {
...QuestionFragment
}
}
}
Variables
{"question": QuestionInput}
Response
{"data": {"questionCreate": {"question": Question}}}
questionDelete
Response
Returns a DeleteQuestion
Arguments
| Name | Description |
|---|---|
questionId - ID!
|
Example
Query
mutation questionDelete($questionId: ID!) {
questionDelete(questionId: $questionId) {
success
}
}
Variables
{"questionId": "4"}
Response
{"data": {"questionDelete": {"success": false}}}
questionUpdate
Response
Returns a CreateOrUpdateQuestion
Arguments
| Name | Description |
|---|---|
question - QuestionInput!
|
Example
Query
mutation questionUpdate($question: QuestionInput!) {
questionUpdate(question: $question) {
question {
...QuestionFragment
}
}
}
Variables
{"question": QuestionInput}
Response
{"data": {"questionUpdate": {"question": Question}}}
releaseExchangeItems
Description
Release exchange items to be fulfilled.
Response
Returns a ReleaseExchangeItemsMutation
Example
Query
mutation releaseExchangeItems(
$exchangeItemIds: [ID!],
$exchangeOrderIds: [ID!],
$returnId: ID,
$returnItemIds: [ID!]
) {
releaseExchangeItems(
exchangeItemIds: $exchangeItemIds,
exchangeOrderIds: $exchangeOrderIds,
returnId: $returnId,
returnItemIds: $returnItemIds
) {
errors
caveats
exchangeOrders {
...ExchangeOrderFragment
}
exchangeItems {
...ExchangeItemFragment
}
return_ {
...ReturnFragment
}
}
}
Variables
{
"exchangeItemIds": ["4"],
"exchangeOrderIds": ["4"],
"returnId": "4",
"returnItemIds": ["4"]
}
Response
{
"data": {
"releaseExchangeItems": {
"errors": ["abc123"],
"caveats": ["abc123"],
"exchangeOrders": [ExchangeOrder],
"exchangeItems": [ExchangeItem],
"return_": Return
}
}
}
returnApprove
Response
Returns an ApproveReturn
Example
Query
mutation returnApprove(
$customRmaNumber: String,
$externalShippingLabelUrl: String,
$noShippingRequired: Boolean,
$returnId: ID!
) {
returnApprove(
customRmaNumber: $customRmaNumber,
externalShippingLabelUrl: $externalShippingLabelUrl,
noShippingRequired: $noShippingRequired,
returnId: $returnId
) {
error
errorText
return {
...ReturnFragment
}
}
}
Variables
{
"customRmaNumber": "abc123",
"externalShippingLabelUrl": "abc123",
"noShippingRequired": null,
"returnId": "4"
}
Response
{
"data": {
"returnApprove": {
"error": "xyz789",
"errorText": "xyz789",
"return": Return
}
}
}
returnCreateStoreCredit
Response
Returns a CreateReturnStoreCreditMutation
Arguments
| Name | Description |
|---|---|
amount - Decimal!
|
Exact store-credit amount issued to the customer; fees are not deducted automatically |
bonusCredit - Decimal
|
Bonus credit amount to issue separately via storeCreditAccountCredit |
handlingFee - Decimal
|
Total handling fee to record; does not reduce amount |
notifyCustomer - Boolean
|
|
refundShipping - Boolean!
|
|
restockingFee - Decimal
|
Total restocking fee to record; does not reduce amount |
returnItemIds - [ID!]!
|
Example
Query
mutation returnCreateStoreCredit(
$amount: Decimal!,
$bonusCredit: Decimal,
$handlingFee: Decimal,
$notifyCustomer: Boolean,
$refundShipping: Boolean!,
$restockingFee: Decimal,
$returnItemIds: [ID!]!
) {
returnCreateStoreCredit(
amount: $amount,
bonusCredit: $bonusCredit,
handlingFee: $handlingFee,
notifyCustomer: $notifyCustomer,
refundShipping: $refundShipping,
restockingFee: $restockingFee,
returnItemIds: $returnItemIds
) {
error
errorText
caveatError
caveatErrorContext
return {
...ReturnFragment
}
storeCredit {
...StoreCreditTypeFragment
}
}
}
Variables
{
"amount": Decimal,
"bonusCredit": Decimal,
"handlingFee": Decimal,
"notifyCustomer": false,
"refundShipping": false,
"restockingFee": Decimal,
"returnItemIds": ["4"]
}
Response
{
"data": {
"returnCreateStoreCredit": {
"error": "xyz789",
"errorText": "xyz789",
"caveatError": "xyz789",
"caveatErrorContext": JSONString,
"return": Return,
"storeCredit": StoreCreditType
}
}
}
returnDispose
Description
Dispose a return items in Shopify. This will create disposition for each return item in Shopify. Used for restocking items and for marking items as missing in Return. This action is irreversible, once a return item is disposed it cannot be undone.
Response
Returns a DisposeReturn
Arguments
| Name | Description |
|---|---|
dispositionAction - DispositionAction
|
|
dispositionType - DispositionType
|
|
items - [DisposeReturnItemMediaInput!]
|
Per-item media/note evidence persisted on the resulting Disposition. |
returnId - ID!
|
|
returnItemIds - [ID!]!
|
|
shopifyLocationId - ID!
|
Example
Query
mutation returnDispose(
$dispositionAction: DispositionAction,
$dispositionType: DispositionType,
$items: [DisposeReturnItemMediaInput!],
$returnId: ID!,
$returnItemIds: [ID!]!,
$shopifyLocationId: ID!
) {
returnDispose(
dispositionAction: $dispositionAction,
dispositionType: $dispositionType,
items: $items,
returnId: $returnId,
returnItemIds: $returnItemIds,
shopifyLocationId: $shopifyLocationId
) {
error
return {
...ReturnFragment
}
}
}
Variables
{
"dispositionAction": "RESTOCK",
"dispositionType": "MISSING",
"items": [DisposeReturnItemMediaInput],
"returnId": 4,
"returnItemIds": [4],
"shopifyLocationId": "4"
}
Response
{
"data": {
"returnDispose": {
"error": "abc123",
"return": Return
}
}
}
returnItemMissingUpdate
Description
Used to update the line items of return isMissing field to true or false
Response
Returns an UpdateMissingReturnItems
Example
Query
mutation returnItemMissingUpdate(
$isMissing: Boolean!,
$returnId: ID!,
$returnItemIds: [ID]!
) {
returnItemMissingUpdate(
isMissing: $isMissing,
returnId: $returnId,
returnItemIds: $returnItemIds
) {
error
return {
...ReturnFragment
}
}
}
Variables
{
"isMissing": false,
"returnId": "4",
"returnItemIds": [4]
}
Response
{
"data": {
"returnItemMissingUpdate": {
"error": "abc123",
"return": Return
}
}
}
returnRefund
Response
Returns a RefundReturn
Arguments
| Name | Description |
|---|---|
handlingFee - Decimal
|
Total handling fee to record; does not reduce refundFullAmount |
notifyCustomer - Boolean!
|
|
refundCurrency - String!
|
|
refundFullAmount - Decimal!
|
Exact amount refunded to the customer; fees are not deducted automatically |
refundShipping - Boolean!
|
|
restockingFee - Decimal
|
Total restocking fee to record; does not reduce refundFullAmount |
returnId - ID!
|
|
returnItemIds - [ID!]!
|
Example
Query
mutation returnRefund(
$handlingFee: Decimal,
$notifyCustomer: Boolean!,
$refundCurrency: String!,
$refundFullAmount: Decimal!,
$refundShipping: Boolean!,
$restockingFee: Decimal,
$returnId: ID!,
$returnItemIds: [ID!]!
) {
returnRefund(
handlingFee: $handlingFee,
notifyCustomer: $notifyCustomer,
refundCurrency: $refundCurrency,
refundFullAmount: $refundFullAmount,
refundShipping: $refundShipping,
restockingFee: $restockingFee,
returnId: $returnId,
returnItemIds: $returnItemIds
) {
error
return {
...ReturnFragment
}
refund {
...RefundTypeFragment
}
}
}
Variables
{
"handlingFee": Decimal,
"notifyCustomer": true,
"refundCurrency": "abc123",
"refundFullAmount": Decimal,
"refundShipping": true,
"restockingFee": Decimal,
"returnId": 4,
"returnItemIds": ["4"]
}
Response
{
"data": {
"returnRefund": {
"error": "xyz789",
"return": Return,
"refund": RefundType
}
}
}
returnReject
Response
Returns a RejectReturn
Example
Query
mutation returnReject(
$allowResubmission: Boolean,
$rejectionReason: String,
$returnId: ID!
) {
returnReject(
allowResubmission: $allowResubmission,
rejectionReason: $rejectionReason,
returnId: $returnId
) {
error
return {
...ReturnFragment
}
}
}
Variables
{
"allowResubmission": false,
"rejectionReason": "abc123",
"returnId": "4"
}
Response
{
"data": {
"returnReject": {
"error": "xyz789",
"return": Return
}
}
}
returnUpdateStatus
Response
Returns a ReturnUpdateStatus
Arguments
| Name | Description |
|---|---|
filters - FiltersInput
|
|
isArchived - Boolean!
|
|
returnIds - [ID]!
|
Specific return IDs to update. If empty, filters are used to resolve returns. |
Example
Query
mutation returnUpdateStatus(
$filters: FiltersInput,
$isArchived: Boolean!,
$returnIds: [ID]!
) {
returnUpdateStatus(
filters: $filters,
isArchived: $isArchived,
returnIds: $returnIds
) {
success
affectedReturnIds
}
}
Variables
{
"filters": FiltersInput,
"isArchived": true,
"returnIds": ["4"]
}
Response
{"data": {"returnUpdateStatus": {"success": false, "affectedReturnIds": [123]}}}
setReturnNotes
Response
Returns a SetReturnNotes
Example
Query
mutation setReturnNotes(
$notes: String,
$returnId: ID!
) {
setReturnNotes(
notes: $notes,
returnId: $returnId
) {
error
return {
...ReturnFragment
}
}
}
Variables
{"notes": "abc123", "returnId": 4}
Response
{
"data": {
"setReturnNotes": {
"error": "abc123",
"return": Return
}
}
}
taxNumbersDelete
Response
Returns a DeleteTaxNumbers
Arguments
| Name | Description |
|---|---|
ids - [ID]!
|
Example
Query
mutation taxNumbersDelete($ids: [ID]!) {
taxNumbersDelete(ids: $ids) {
errors {
...GQLErrorTypeFragment
}
}
}
Variables
{"ids": [4]}
Response
{"data": {"taxNumbersDelete": {"errors": [GQLErrorType]}}}
taxNumbersPut
Response
Returns a PutTaxNumbers
Arguments
| Name | Description |
|---|---|
taxNumbers - [TaxNumberInput]!
|
Example
Query
mutation taxNumbersPut($taxNumbers: [TaxNumberInput]!) {
taxNumbersPut(taxNumbers: $taxNumbers) {
errors {
...GQLErrorTypeFragment
}
taxNumbers {
...TaxNumberOutputFragment
}
}
}
Variables
{"taxNumbers": [TaxNumberInput]}
Response
{
"data": {
"taxNumbersPut": {
"errors": [GQLErrorType],
"taxNumbers": [TaxNumberOutput]
}
}
}
updateReturn
Response
Returns an UpdateReturn
Example
Query
mutation updateReturn(
$isArchived: Boolean!,
$returnId: Int!,
$stageId: ID!
) {
updateReturn(
isArchived: $isArchived,
returnId: $returnId,
stageId: $stageId
) {
success
ret {
...ReturnFragment
}
}
}
Variables
{
"isArchived": false,
"returnId": 987,
"stageId": "4"
}
Response
{
"data": {
"updateReturn": {"success": true, "ret": Return}
}
}
Types
Address
Example
{
"id": 123,
"uuid": "4",
"name": "xyz789",
"company": "abc123",
"addressLine1": "abc123",
"addressLine2": "abc123",
"city": "xyz789",
"state": "xyz789",
"postalCode": "xyz789",
"country": "abc123",
"phoneNumber": "abc123"
}
AddressType
Example
{
"id": 4,
"userName": "xyz789",
"company": "abc123",
"street1": "abc123",
"phone": "abc123",
"street2": "xyz789",
"country": "abc123",
"city": "abc123",
"zip": "abc123",
"state": "xyz789"
}
AnswerResponseType
Fields
| Field Name | Description |
|---|---|
text - String
|
|
selectedChoices - [SelectedChoiceType]
|
Example
{
"text": "xyz789",
"selectedChoices": [SelectedChoiceType]
}
AppliedRuleType
ApproveReturn
ArchiveFilter
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"ACTIVE"
ArchiveReturns
Fields
| Field Name | Description |
|---|---|
success - Boolean
|
Example
{"success": true}
AuthenticatedShop
Description
Note, this is different from the public portal's PublicShop (returnzap.portal.graphql.types.shop) since we will expose things to an authenticated shop admin that we won't expose to the public portal APIs.
Fields
| Field Name | Description |
|---|---|
uuid - String!
|
|
url - String!
|
|
primaryDomain - String!
|
|
timezone - String!
|
IANA timezone string (e.g. America/New_York) |
name - String!
|
|
isTestShop - Boolean!
|
|
isUitestShop - Boolean!
|
|
onboardingCompletedAt - DateTime
|
|
needsToEnableExchangeTestDrive - Boolean!
|
|
userPermissionsEnabled - Boolean!
|
Enable user-level permissions (Premium feature) |
notifyOnlyIfApprovalIsRequired - Boolean!
|
|
instructions - String!
|
|
portalTheme - String!
|
|
portalLanguage - String!
|
|
portalFrenchUseAlternative - Boolean!
|
Use informal French |
portalGermanUseAlternative - Boolean!
|
Use informal German |
portalItalianUseAlternative - Boolean!
|
Use formal Italian |
portalCustomizations - JSONString!
|
|
shouldDisplayFeesInPortal - Boolean!
|
|
refundPortalDisplayOrder - Int!
|
|
creditPortalDisplayOrder - Int!
|
|
exchangePortalDisplayOrder - Int!
|
|
showPortalSummary - Boolean!
|
|
portalExchangeSelectionMethod - PortalExchangeSelectionMethod
|
|
portalVisualExchangeType - PortalVisualExchangeType
|
|
portalVisualExchangeIncludeCollections - [String!]!
|
|
portalVisualExchangeExcludeCollections - [String!]!
|
|
exchangeUpsellEnabled - Boolean!
|
|
exchangeUpsellDiscountPercentage - Decimal
|
Percentage discount for upsell exchanges |
minFilesPerReturn - Int!
|
Minimum number of files required when creating a return |
maxFilesPerReturn - Int
|
Maximum number of files allowed when creating a return |
isShippingLabelUploadAllowed - Boolean!
|
|
barcodeValue - BarcodeValue
|
|
enableCustomRmaNumber - Boolean!
|
|
shipFree - Boolean!
|
|
shipPay - Boolean!
|
|
shipSelf - Boolean!
|
|
shipStore - Boolean!
|
If True, customers can choose to return items to a store. |
isShippingByReturnzapAvailable - Boolean!
|
|
useShippingByReturnzap - Boolean!
|
|
prepaidShippingFee - Decimal
|
|
paidShippingFee - Decimal
|
|
selfShippingFee - Decimal
|
|
storeShippingFee - Decimal
|
Optional handling fee charged for return-to-store returns. |
storeReturnInstructions - String!
|
Instructions shown to customers returning items to a store. |
isDefaultFeeEqualsShippingCost - Boolean!
|
|
shippingRateSelectLowestRate - Boolean!
|
|
shippingRateShowUpToPercentage - Decimal!
|
|
customerLabelFlatFee - Decimal
|
Flat fee for customer labels. Leave empty to charge the actual label cost (plus multiplier); setting 0.00 forces a free label. |
customerPaidShippingMode - CustomerPaidShippingMode!
|
Determines which account to use for customer-paid shipping labels |
isNoShippingReturnEnabled - Boolean!
|
|
displayGreenReturnsUpfront - Boolean!
|
When enabled, shoppers see the no-shipping-required option upfront on the shipping step for returns where every item qualifies. Requires is_no_shipping_return_enabled and at least one of ship_free/ship_pay/ship_self for the fallback case. |
isQrCodeEnabled - Boolean!
|
|
isCartonizationEnabled - Boolean!
|
|
isWarehouseManagementEnabled - Boolean!
|
Enable WMS receiving tools and warehouse assignments for this shop. |
withdrawalEnabled - Boolean!
|
Enable the EU right-of-withdrawal flow for this shop. Gates HQ controls and new submissions. |
customerCancelEnabled - Boolean!
|
Let customers cancel their own return from the portal while it is unshipped and unresolved. |
withdrawalDaysSinceDelivery - Int!
|
Days after delivery a post-fulfillment withdrawal stays eligible, when Shopify exposes a delivery date. |
withdrawalDaysSinceFulfillment - Int!
|
Fallback withdrawal window in days after fulfillment, used when no delivery date is available. |
withdrawalHandlingMode - ShopsShopWithdrawalHandlingModeChoices!
|
How EU withdrawals route: automatic (normal routing) or always_manual (every request enters the manual flow). |
preFulfillmentManualReviewAfterMinutes - Int
|
Optional: route unfulfilled withdrawals at least this many minutes old to manual review instead of automatic cancellation (automatic mode only; null = no cutoff). |
cartonizationLengthUnit - LengthUnit
|
|
restockingFeeDefinedAsPercentage - Boolean!
|
|
defaultRefundFee - Decimal
|
|
defaultExchangeFee - Decimal
|
|
defaultStoreCreditFee - Decimal
|
|
currency - String!
|
The default currency code from Shopify (e.g. USD, CAD) |
internationalCustomsContentValueSource - CustomsContentValueSource
|
|
intlCommercialInvoiceAttachment - CommercialInvoiceAttachment
|
|
klaviyoApiKey - String!
|
|
gorgiasSubdomain - String!
|
The user entered subdomain that we'll use to match with Gorgias accounts once they've completed the OAuth flow. |
useApprovals - Boolean!
|
|
requireApprovalForAllReturns - Boolean!
|
|
useShopAddressForPosReturns - Boolean!
|
|
useBillingAddressFallback - Boolean!
|
When enabled, fall back to billing address if shipping address is missing when creating returns |
allowGiftReturns - Boolean!
|
|
giftReturnsExchangeEnabled - Boolean!
|
|
giftReturnsStoreCreditEnabled - Boolean!
|
|
preventReturnsFromDifferentFulfillments - Boolean!
|
Prevent items which shipped in different fulfillments from being returned together |
delayedShopifyReturnCreationEnabled - Boolean!
|
ReturnZap will not create a return directly in Shopify until the return's stage.create_shopify_return=True or an admin user tries to resolve an item. |
createReturnOnResolve - Boolean!
|
When enabled, ReturnZap will create the Shopify return when an admin resolves an item. |
returnTypeComparisonFlowEnabled - Boolean!
|
When enabled, the portal has the shopper choose their return type (exchange / refund / store credit) on a comparison screen before selecting a shipping method. |
isRefundIntegrationEnabled - Boolean!
|
Integration with Shopify Refund |
isRestockIntegrationEnabled - Boolean!
|
Has the customer enabled integration with Shopify Restock? |
returnItemExpirationDays - Int!
|
Number of days after which unresolved return items expire. |
isReturnItemExpirationEnabled - Boolean!
|
|
returnItemExpirationEnabledAt - DateTime
|
When return item expiration was enabled. Returns created before (this date - max_policy_days) won't be expired. |
expirationPreventionAction - ExpirationPreventionAction
|
|
expirationPeriodType - ExpirationPeriodType
|
|
isExchangeIntegrationEnabled - Boolean!
|
Has the customer enabled integration with Shopify Exchange? |
exchangeMethod - ExchangeMethod
|
|
isInlineExchangeEnabled - Boolean!
|
Allow the shop customer to exchange items in the portal |
isFullCatalogExchangeEnabled - Boolean!
|
Allow the shop customer to exchange any item in the catalog |
useConsolidatedOrderExchanges - Boolean!
|
|
discountSameProductExchangesToBeEqual - Boolean!
|
If customer is exchanging for another variant of the same product, discount it to the same value as the original variant |
exchangeNormalizeCrossProductEqualPrices - Boolean!
|
When enabled, advanced exchanges between DIFFERENT products will apply price normalization if current prices match (zero-balance swaps). |
isExchangeDifferentialPricingEnabled - Boolean!
|
Allow the shop customer to exchange items with different prices |
exchangeRoundToZeroIfLteTo - Decimal
|
If the balance due for an exchange is less than or equal to this value, round it to zero. |
exchangeDaysToReserveStock - Int!
|
Number of days to reserve stock for exchange |
allowOutOfStockExchanges - Boolean!
|
Allow exchanges for items that are out of stock |
exchangeCheckInventoryAtFulfillmentLocation - Boolean!
|
If enabled, exchange product lookup will exclude items with no inventory at the location the line item was fulfilled from. |
carryDiscountForwardType - CarryDiscountForwardType
|
|
useExchangeShipmentOrders - Boolean!
|
If True, we'll create a new exchange order for fulfilling replacement items and place a hold on the original order's fulfillment order. |
exchangeShipmentOrderSuffix - String!
|
By default we will add "-EX" + " |
exchangeShippingLineTitle - String
|
|
autoProcessExchangesOnCreation - Boolean!
|
Automatically process and reserve exchange items from stock when return is created |
isStoreCreditIntegrationEnabled - Boolean!
|
Has the customer enabled integration with Shopify Store Credit? |
isStoreCreditIncentiveEnabled - Boolean!
|
|
storeCreditIncentivePercentage - Float!
|
Percentage between 0 and 100 |
minStoreCreditIncentiveAmount - Decimal
|
|
maxStoreCreditIncentiveAmount - Decimal
|
|
isStoreCreditIncentiveRoundToNearest - Boolean!
|
|
resolvePartialExchangeRefundsToStoreCredit - Boolean!
|
If True, partial refunds from exchanges are issued to store credit. If False, they are issued as refunds. |
storeCreditExpireDays - Int
|
Number of days after which store credits expire. If null, store credits do not expire. |
giftCardPrefix - String
|
|
id - ID!
|
|
useNewAnalyticsUi - Boolean
|
Analytics UI is now enabled for all shops. |
useAsyncReturnProcessing - Boolean!
|
Return processing is always asynchronous; field kept for cached pre-cutover bundles. |
parentUrl - String
|
|
shopifyAdminUrl - String!
|
|
primaryFieldBehavior - PrimaryFieldBehavior!
|
|
secondaryFieldBehavior - SecondaryFieldBehavior!
|
|
reauthenticateUrl - String
|
Allow the user to reauthenticate with Shopify |
hasTestModeReturns - Boolean
|
|
hasReturnWithdrawals - Boolean
|
|
defaultPortalUrl - String!
|
|
adminAppUrl - String!
|
|
enableRefund - Boolean
|
|
refundDays - Int
|
|
refundDaysType - DaysType
|
|
refundCommentsEnabled - Boolean
|
|
refundCommentsRequired - Boolean
|
|
refundRequireDeliveryBeforeReturn - Boolean
|
|
enableExchange - Boolean
|
|
exchangeDays - Int
|
|
exchangeDaysType - DaysType
|
|
exchangeCommentsEnabled - Boolean
|
|
exchangeCommentsRequired - Boolean
|
|
exchangeRequireDeliveryBeforeReturn - Boolean
|
|
exchangeExcludeTags - [String]
|
|
enableStoreCredit - Boolean
|
|
storeCreditDays - Int
|
|
storeCreditDaysType - DaysType
|
|
storeCreditCommentsEnabled - Boolean
|
|
storeCreditCommentsRequired - Boolean
|
|
storeCreditRequireDeliveryBeforeReturn - Boolean
|
|
automatedStoreCreditType - AutomatedStoreCreditType
|
|
notificationEmailAddress - String
|
|
notificationEmailAttachRma - Boolean
|
|
customerEmailDisplayFromName - String
|
|
customerEmailReplyToAddress - String
|
|
defaultAddress - Address
|
|
defaultWeight - Decimal
|
|
defaultWeightUnit - String
|
|
international - Boolean
|
|
internationalOriginCountry - String
|
|
internationalCustomsSigner - String
|
|
internationalNonDeliveryOption - String
|
|
internationalExemptionCode - String
|
|
internationalDefaultHarmonizedSystemCode - String
|
|
shippoApiKey - String
|
|
stripePublishableKey - String
|
|
stripeSecretKey - String
|
|
subscriptionPlan - ShopSubscriptionPlan!
|
|
features - [String]
|
|
installedAt - DateTime
|
|
returnReasons - [ReturnReason]
|
|
stages - [Stage]
|
|
notifications - [Notification]
|
|
rules - [Rule]!
|
|
packages - [PackageType]!
|
|
dynamicTranslations - [DynamicTranslation]
|
|
returnIntegration - Boolean
|
|
missingScopes - [String]
|
Missing scopes based on the enable features for the user |
returnProtectionMissingScopes - [String]!
|
|
sendcloudAccounts - [SendcloudAccount]
|
|
shopifyLocations - [ShopifyLocation]
|
|
Arguments
|
|
easyPostAccount - EasyPostAccountType
|
|
shippoAccount - ShippoAccountType
|
|
shipstationAccount - ShipStationAccountType
|
|
zendeskAccount - ZendeskAccountType
|
|
refField1Source - RefFieldSource
|
|
refField2Source - RefFieldSource
|
|
storeCreditIncentiveType - StoreCreditIncentiveType
|
|
restockingFeeType - RestockingFeeType
|
|
webhookUrl - String
|
|
webhookEvents - [WebhookEventType]
|
|
questions - [Question]
|
|
stageShipmentStatuses - [StageShipmentStatusType]
|
|
defaultWarehouseForPosReturns - ID
|
|
defaultRestockLocationId - String!
|
Shopify location id pre-selected when restocking. Empty means no default. |
portalConfig - PortalConfigType!
|
|
authorizationPdfLogo - Image
|
|
hasLabelIntegration - Boolean!
|
|
canUseStoreShippingMode - Boolean!
|
Whether the shop can use store mode for customer-paid shipping (requires Stripe + shipping integration) |
autoRechargeStatus - AutoRechargeStatus
|
|
featureFlags - [GrapheneFeatureFlagValue]!
|
|
Arguments
|
|
configurationGoals - ConfigurationGoals!
|
|
logo - String
|
|
logoUploadUrl - SignedUrl
|
|
Arguments
|
|
easypostApiKey - String
|
Use easyPostAccount.apiKey instead |
onboardingComplete - Boolean
|
Use onboarding_completed_at instead |
installDate - DateTime
|
Use installed_at instead |
exchangeIntegration - Boolean
|
Use is_exchange_integration_enabled or check for feature instead |
storeCreditIntegration - Boolean
|
Use is_store_credit_integration_enabled or check for feature instead |
Example
{
"uuid": "xyz789",
"url": "xyz789",
"primaryDomain": "abc123",
"timezone": "abc123",
"name": "xyz789",
"isTestShop": false,
"isUitestShop": true,
"onboardingCompletedAt": "2007-12-03T10:15:30Z",
"needsToEnableExchangeTestDrive": false,
"userPermissionsEnabled": false,
"notifyOnlyIfApprovalIsRequired": false,
"instructions": "xyz789",
"portalTheme": "abc123",
"portalLanguage": "xyz789",
"portalFrenchUseAlternative": true,
"portalGermanUseAlternative": true,
"portalItalianUseAlternative": false,
"portalCustomizations": JSONString,
"shouldDisplayFeesInPortal": false,
"refundPortalDisplayOrder": 123,
"creditPortalDisplayOrder": 987,
"exchangePortalDisplayOrder": 123,
"showPortalSummary": true,
"portalExchangeSelectionMethod": "SEARCH",
"portalVisualExchangeType": "NONE",
"portalVisualExchangeIncludeCollections": [
"abc123"
],
"portalVisualExchangeExcludeCollections": [
"xyz789"
],
"exchangeUpsellEnabled": false,
"exchangeUpsellDiscountPercentage": Decimal,
"minFilesPerReturn": 987,
"maxFilesPerReturn": 987,
"isShippingLabelUploadAllowed": false,
"barcodeValue": "NONE",
"enableCustomRmaNumber": true,
"shipFree": false,
"shipPay": true,
"shipSelf": true,
"shipStore": true,
"isShippingByReturnzapAvailable": false,
"useShippingByReturnzap": false,
"prepaidShippingFee": Decimal,
"paidShippingFee": Decimal,
"selfShippingFee": Decimal,
"storeShippingFee": Decimal,
"storeReturnInstructions": "abc123",
"isDefaultFeeEqualsShippingCost": false,
"shippingRateSelectLowestRate": true,
"shippingRateShowUpToPercentage": Decimal,
"customerLabelFlatFee": Decimal,
"customerPaidShippingMode": "RETURNZAP",
"isNoShippingReturnEnabled": false,
"displayGreenReturnsUpfront": false,
"isQrCodeEnabled": true,
"isCartonizationEnabled": true,
"isWarehouseManagementEnabled": true,
"withdrawalEnabled": true,
"customerCancelEnabled": true,
"withdrawalDaysSinceDelivery": 987,
"withdrawalDaysSinceFulfillment": 987,
"withdrawalHandlingMode": "AUTOMATIC",
"preFulfillmentManualReviewAfterMinutes": 123,
"cartonizationLengthUnit": "INCHES",
"restockingFeeDefinedAsPercentage": false,
"defaultRefundFee": Decimal,
"defaultExchangeFee": Decimal,
"defaultStoreCreditFee": Decimal,
"currency": "abc123",
"internationalCustomsContentValueSource": "SELL_PRICE",
"intlCommercialInvoiceAttachment": "DISABLED",
"klaviyoApiKey": "abc123",
"gorgiasSubdomain": "abc123",
"useApprovals": true,
"requireApprovalForAllReturns": false,
"useShopAddressForPosReturns": false,
"useBillingAddressFallback": true,
"allowGiftReturns": true,
"giftReturnsExchangeEnabled": true,
"giftReturnsStoreCreditEnabled": false,
"preventReturnsFromDifferentFulfillments": true,
"delayedShopifyReturnCreationEnabled": false,
"createReturnOnResolve": true,
"returnTypeComparisonFlowEnabled": false,
"isRefundIntegrationEnabled": true,
"isRestockIntegrationEnabled": true,
"returnItemExpirationDays": 987,
"isReturnItemExpirationEnabled": true,
"returnItemExpirationEnabledAt": "2007-12-03T10:15:30Z",
"expirationPreventionAction": "RETURN_PROCESSED",
"expirationPeriodType": "RETURN_CREATED_DATE",
"isExchangeIntegrationEnabled": false,
"exchangeMethod": "COMMENTS",
"isInlineExchangeEnabled": false,
"isFullCatalogExchangeEnabled": false,
"useConsolidatedOrderExchanges": true,
"discountSameProductExchangesToBeEqual": false,
"exchangeNormalizeCrossProductEqualPrices": false,
"isExchangeDifferentialPricingEnabled": true,
"exchangeRoundToZeroIfLteTo": Decimal,
"exchangeDaysToReserveStock": 987,
"allowOutOfStockExchanges": false,
"exchangeCheckInventoryAtFulfillmentLocation": false,
"carryDiscountForwardType": "NONE",
"useExchangeShipmentOrders": true,
"exchangeShipmentOrderSuffix": "xyz789",
"exchangeShippingLineTitle": "abc123",
"autoProcessExchangesOnCreation": false,
"isStoreCreditIntegrationEnabled": true,
"isStoreCreditIncentiveEnabled": true,
"storeCreditIncentivePercentage": 987.65,
"minStoreCreditIncentiveAmount": Decimal,
"maxStoreCreditIncentiveAmount": Decimal,
"isStoreCreditIncentiveRoundToNearest": false,
"resolvePartialExchangeRefundsToStoreCredit": true,
"storeCreditExpireDays": 987,
"giftCardPrefix": "abc123",
"id": 4,
"useNewAnalyticsUi": true,
"useAsyncReturnProcessing": false,
"parentUrl": "xyz789",
"shopifyAdminUrl": "abc123",
"primaryFieldBehavior": "EMAIL_ADDRESS",
"secondaryFieldBehavior": "SHOPIFY_ORDER_NUMBER",
"reauthenticateUrl": "abc123",
"hasTestModeReturns": false,
"hasReturnWithdrawals": true,
"defaultPortalUrl": "abc123",
"adminAppUrl": "abc123",
"enableRefund": true,
"refundDays": 123,
"refundDaysType": "SINCE_DELIVERY",
"refundCommentsEnabled": false,
"refundCommentsRequired": false,
"refundRequireDeliveryBeforeReturn": false,
"enableExchange": false,
"exchangeDays": 987,
"exchangeDaysType": "SINCE_DELIVERY",
"exchangeCommentsEnabled": false,
"exchangeCommentsRequired": false,
"exchangeRequireDeliveryBeforeReturn": true,
"exchangeExcludeTags": ["abc123"],
"enableStoreCredit": false,
"storeCreditDays": 987,
"storeCreditDaysType": "SINCE_DELIVERY",
"storeCreditCommentsEnabled": true,
"storeCreditCommentsRequired": false,
"storeCreditRequireDeliveryBeforeReturn": false,
"automatedStoreCreditType": "DISCOUNT_CODE",
"notificationEmailAddress": "xyz789",
"notificationEmailAttachRma": true,
"customerEmailDisplayFromName": "xyz789",
"customerEmailReplyToAddress": "xyz789",
"defaultAddress": Address,
"defaultWeight": Decimal,
"defaultWeightUnit": "abc123",
"international": true,
"internationalOriginCountry": "abc123",
"internationalCustomsSigner": "xyz789",
"internationalNonDeliveryOption": "xyz789",
"internationalExemptionCode": "abc123",
"internationalDefaultHarmonizedSystemCode": "xyz789",
"shippoApiKey": "abc123",
"stripePublishableKey": "abc123",
"stripeSecretKey": "xyz789",
"subscriptionPlan": ShopSubscriptionPlan,
"features": ["abc123"],
"installedAt": "2007-12-03T10:15:30Z",
"returnReasons": [ReturnReason],
"stages": [Stage],
"notifications": [Notification],
"rules": [Rule],
"packages": [PackageType],
"dynamicTranslations": [DynamicTranslation],
"returnIntegration": true,
"missingScopes": ["xyz789"],
"returnProtectionMissingScopes": [
"xyz789"
],
"sendcloudAccounts": [SendcloudAccount],
"shopifyLocations": [ShopifyLocation],
"easyPostAccount": EasyPostAccountType,
"shippoAccount": ShippoAccountType,
"shipstationAccount": ShipStationAccountType,
"zendeskAccount": ZendeskAccountType,
"refField1Source": "BLANK",
"refField2Source": "BLANK",
"storeCreditIncentiveType": "ONCE_PER_ITEM",
"restockingFeeType": "ONCE_PER_RETURN",
"webhookUrl": "abc123",
"webhookEvents": ["RETURN_CREATED"],
"questions": [Question],
"stageShipmentStatuses": [StageShipmentStatusType],
"defaultWarehouseForPosReturns": "4",
"defaultRestockLocationId": "abc123",
"portalConfig": PortalConfigType,
"authorizationPdfLogo": Image,
"hasLabelIntegration": false,
"canUseStoreShippingMode": true,
"autoRechargeStatus": "HEALTHY",
"featureFlags": [GrapheneFeatureFlagValue],
"configurationGoals": ConfigurationGoals,
"logo": "abc123",
"logoUploadUrl": SignedUrl,
"easypostApiKey": "xyz789",
"onboardingComplete": true,
"installDate": "2007-12-03T10:15:30Z",
"exchangeIntegration": false,
"storeCreditIntegration": true
}
AutoRechargeStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"HEALTHY"
AutomatedStoreCreditType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"DISCOUNT_CODE"
BarcodeValue
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"NONE"
BillingManagedBy
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"SELF"
BillingPeriodType
Fields
| Field Name | Description |
|---|---|
id - UUID!
|
|
startDate - Date!
|
|
endDate - Date!
|
|
totalReturns - Int!
|
|
totalLabels - Int!
|
Number of labels generated this period |
totalLabelFeeAmountDue - Decimal!
|
|
totalOverageAmountDue - Decimal!
|
|
usageOverageQuantity - Int!
|
|
usageAmountCharged - Decimal
|
|
usageDescription - String
|
|
usageChargeId - String!
|
|
usageChargedAt - DateTime
|
|
returnProtectionFeeAmountDue - Decimal
|
|
returnProtectionFeeCharged - Decimal
|
|
billingPeriodClosedAt - DateTime
|
|
tierCountWhenClosed - Int
|
|
overagePriceWhenClosed - Decimal
|
Example
{
"id": "ed78471e-5d76-454a-a112-cbcd761bccda",
"startDate": "2007-12-03",
"endDate": "2007-12-03",
"totalReturns": 123,
"totalLabels": 987,
"totalLabelFeeAmountDue": Decimal,
"totalOverageAmountDue": Decimal,
"usageOverageQuantity": 987,
"usageAmountCharged": Decimal,
"usageDescription": "xyz789",
"usageChargeId": "abc123",
"usageChargedAt": "2007-12-03T10:15:30Z",
"returnProtectionFeeAmountDue": Decimal,
"returnProtectionFeeCharged": Decimal,
"billingPeriodClosedAt": "2007-12-03T10:15:30Z",
"tierCountWhenClosed": 987,
"overagePriceWhenClosed": Decimal
}
Boolean
Description
The Boolean scalar type represents true or false.
Example
true
CarryDiscountForwardType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"NONE"
CommercialInvoiceAttachment
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"DISABLED"
Condition
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
uuid - String!
|
|
attr - RuleAttribute!
|
|
op - RuleOperator!
|
|
value - String!
|
|
windowDays - Int
|
Rolling window in days for counting attributes; null means all time. |
questionId - ID
|
Use question instead. |
questionChoiceIds - [ID]
|
Use question_choices instead. |
question - ID
|
|
questionType - QuestionType
|
|
questionChoices - [ID]
|
Example
{
"id": 4,
"uuid": "xyz789",
"attr": "NONE",
"op": "EQ",
"value": "abc123",
"windowDays": 987,
"questionId": "4",
"questionChoiceIds": [4],
"question": 4,
"questionType": "LONG_TEXT",
"questionChoices": [4]
}
ConditionGroupGraphQL
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
when - RuleWhen!
|
|
conditions - [Condition!]!
|
|
matchAllItems - Boolean!
|
Example
{
"id": "4",
"when": "AND",
"conditions": [Condition],
"matchAllItems": true
}
ConfigurationGoals
Example
{
"eligible": false,
"returnFlow": true,
"shipping": false,
"rules": false,
"portalBranding": true,
"testReturn": true,
"canClaim": false,
"ended": false,
"creditCurrency": "xyz789"
}
CreateOrUpdateQuestion
Fields
| Field Name | Description |
|---|---|
question - Question
|
Example
{"question": Question}
CreateReturnStoreCreditMutation
Fields
| Field Name | Description |
|---|---|
error - String
|
|
errorText - String
|
|
caveatError - String
|
Locale key for a step that failed after Shopify already accepted part of the credit |
caveatErrorContext - JSONString
|
Values for the caveat_error message |
return - Return
|
|
storeCredit - StoreCreditType
|
Example
{
"error": "abc123",
"errorText": "abc123",
"caveatError": "abc123",
"caveatErrorContext": JSONString,
"return": Return,
"storeCredit": StoreCreditType
}
CustomQuote
Fields
| Field Name | Description |
|---|---|
id - Int!
|
|
subscriptionType - SubscriptionType!
|
|
tierCount - Int!
|
|
monthlyPrice - Decimal!
|
|
overagePrice - Decimal!
|
|
cappedAmount - Decimal
|
Custom cap for usage charges. If unset, uses standard formula: overage_price * tier_count * 100. |
acceptedAt - DateTime
|
|
supersededAt - DateTime
|
|
name - String!
|
|
features - [SubscriptionFeature]!
|
|
subscribeUrl - String!
|
Example
{
"id": 987,
"subscriptionType": "FREE",
"tierCount": 987,
"monthlyPrice": Decimal,
"overagePrice": Decimal,
"cappedAmount": Decimal,
"acceptedAt": "2007-12-03T10:15:30Z",
"supersededAt": "2007-12-03T10:15:30Z",
"name": "xyz789",
"features": ["ADJUST_RETURN_WINDOWS"],
"subscribeUrl": "abc123"
}
CustomerPaidShippingMode
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"RETURNZAP"
CustomsContentValueSource
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"SELL_PRICE"
DashboardResponse
Date
Description
The Date scalar type represents a Date value as specified by iso8601.
Example
"2007-12-03"
DateFilterRange
DateTime
Description
The DateTime scalar type represents a DateTime value as specified by iso8601.
Example
"2007-12-03T10:15:30Z"
DaysType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"SINCE_DELIVERY"
Decimal
Description
The Decimal scalar type represents a python Decimal.
Example
Decimal
DeleteQuestion
Fields
| Field Name | Description |
|---|---|
success - Boolean
|
Example
{"success": false}
DeleteTaxNumbers
Fields
| Field Name | Description |
|---|---|
errors - [GQLErrorType]
|
Example
{"errors": [GQLErrorType]}
DisposeReturn
DisposeReturnItemMediaInput
Fields
| Input Field | Description |
|---|---|
returnItemId - ID!
|
|
media - [WarehouseMediaInput!]
|
|
note - WarehouseNoteInput
|
Example
{
"returnItemId": 4,
"media": [WarehouseMediaInput],
"note": WarehouseNoteInput
}
DispositionAction
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"RESTOCK"
DispositionType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"MISSING"
DraftReturnState
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"CREATED"
DynamicTranslation
Example
{
"uuid": 4,
"model": "RETURN_REASON",
"field": "xyz789",
"objUuid": "abc123",
"key": "abc123",
"language": "abc123",
"message": "xyz789"
}
EasyPostAccountCarrierServiceType
Fields
| Field Name | Description |
|---|---|
id - UUID!
|
|
carrier - EasyPostCarrierType!
|
|
code - String!
|
Service code (name) from EasyPost API (e.g., 'Ground', 'Overnight') |
name - String!
|
Human-readable service name |
description - String!
|
Human-readable service description |
isActive - Boolean!
|
Whether this service is active and available for use |
alwaysDisplay - Boolean!
|
Always return this service rates despite cut off setting |
Example
{
"id": "ed78471e-5d76-454a-a112-cbcd761bccda",
"carrier": EasyPostCarrierType,
"code": "abc123",
"name": "xyz789",
"description": "xyz789",
"isActive": true,
"alwaysDisplay": false
}
EasyPostAccountType
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
shop - AuthenticatedShop!
|
|
managedByReturnzap - Boolean!
|
|
apiKey - String!
|
|
useIsReturn - Boolean!
|
Sends EasyPost's is_return flag and swaps the from/to addresses so EasyPost builds a return label. Turn OFF for cross-border lanes such as CA->US, where carriers reject the return flag. |
originCountries - [String!]!
|
2-letter ISO 3166-1 alpha-2 country codes for origin countries. Empty means all countries. |
destinationCountries - [String!]!
|
2-letter ISO 3166-1 alpha-2 country codes for destination countries. Empty means all countries. |
services - String
|
Use EasyPostAccountCarrierServiceType.is_active field instead. |
carriers - [EasyPostCarrierType]
|
Example
{
"id": "4",
"shop": AuthenticatedShop,
"managedByReturnzap": false,
"apiKey": "abc123",
"useIsReturn": true,
"originCountries": ["xyz789"],
"destinationCountries": ["abc123"],
"services": "abc123",
"carriers": [EasyPostCarrierType]
}
EasyPostCarrierType
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
externalId - String!
|
|
easypostAccount - EasyPostAccountType
|
|
name - String!
|
|
active - Boolean!
|
|
services - [EasyPostAccountCarrierServiceType]
|
Example
{
"id": 4,
"externalId": "xyz789",
"easypostAccount": EasyPostAccountType,
"name": "xyz789",
"active": false,
"services": [EasyPostAccountCarrierServiceType]
}
ExchangeItem
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
returnItem - ReturnItem
|
Use returnItemId instead
|
variantId - String!
|
The Shopify variant id for the item the customer wants to exchange |
title - String!
|
Exchange item title |
sku - String!
|
Exchange item sku |
quantity - Int
|
The quantity of the item to exchange |
imageUrl - String!
|
Exchange item image url |
presentmentOriginalAmount - Decimal
|
The variant unit amount without discounts applied in presentment currency |
presentmentDiscountedAmount - Decimal
|
Actual variant unit amount customer paid in presentment currency |
returnItemPresentmentOriginalUnitAmount - Decimal
|
The catalog price of the returned item at the time of purchasing in presentment currency |
presentmentNormalizationAdjustmentAmount - Decimal
|
Price normalization adjustment amount in presentment currency. |
presentmentCurrency - String!
|
|
releasedAt - DateTime
|
|
removedAt - DateTime
|
Date removed from consolidated order exchange |
expiredAt - DateTime
|
|
returnItemId - String
|
The id of the return item this is exchanging for |
exchangeOrderId - String
|
The id of the exchange order |
variantList - [String]
|
|
returnItemIsMissing - Boolean
|
Whether the return item is missing |
returnItemIsRejected - Boolean
|
Whether the return item is rejected |
isResolved - Boolean
|
Whether the exchange item has been resolved |
status - ExchangeOrderStatus
|
Status of the exchange order |
draftOrderId - String
|
The id of the draft order in Shopify |
draftOrderNumber - String
|
The number of the draft order in Shopify |
draftOrderLink - String
|
URL Link to the draft order in Shopify |
completedOrderId - String
|
The id of the completed order in Shopify |
completedOrderNumber - String
|
The number of the completed order in Shopify |
completedOrderLink - String
|
URL Link to the completed order in Shopify |
consolidatedOrderLink - String
|
URL Link to the original order in Shopify |
statusLabel - String
|
Status label for the exchange order Use status instead |
completeOrderLink - String
|
URL Link to the completed order in Shopify |
exchangeVariantId - String
|
The Shopify variant id for the item the customer wants to receive as replacement. Use variantId instead
|
Example
{
"id": 4,
"returnItem": ReturnItem,
"variantId": "abc123",
"title": "abc123",
"sku": "xyz789",
"quantity": 123,
"imageUrl": "abc123",
"presentmentOriginalAmount": Decimal,
"presentmentDiscountedAmount": Decimal,
"returnItemPresentmentOriginalUnitAmount": Decimal,
"presentmentNormalizationAdjustmentAmount": Decimal,
"presentmentCurrency": "abc123",
"releasedAt": "2007-12-03T10:15:30Z",
"removedAt": "2007-12-03T10:15:30Z",
"expiredAt": "2007-12-03T10:15:30Z",
"returnItemId": "xyz789",
"exchangeOrderId": "abc123",
"variantList": ["abc123"],
"returnItemIsMissing": true,
"returnItemIsRejected": false,
"isResolved": false,
"status": "DRAFT",
"draftOrderId": "xyz789",
"draftOrderNumber": "xyz789",
"draftOrderLink": "xyz789",
"completedOrderId": "abc123",
"completedOrderNumber": "abc123",
"completedOrderLink": "xyz789",
"consolidatedOrderLink": "xyz789",
"statusLabel": "abc123",
"completeOrderLink": "abc123",
"exchangeVariantId": "abc123"
}
ExchangeMethod
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"COMMENTS"
ExchangeOrder
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
created - DateTime
|
|
consolidatedOrderExchange - Boolean!
|
If True, the exchange order is part of a consolidated return. It uses the Shopify return integration instead of Draft order workflow |
status - ExchangeOrderStatus
|
Status of the exchange order |
theReturn - Return
|
|
draftOrderId - String!
|
The Shopify draft order id. Created when the customer requests an exchange |
draftOrderNumber - String!
|
The Shopify draft order number e.g #D66 |
shopifyExchangeShipmentOrderId - String!
|
When we facilitate fulfillment with another order, this is the Shopify order id of that order |
shopifyExchangeShipmentOrderName - String!
|
...and this is the Shopify order name of that order |
completedOrderId - String!
|
The Shopify completed order id. This is only set when the order is completed by the shop |
completedOrderNumber - String!
|
The Shopify completed order number e.g #1218 |
completedOrderAt - DateTime
|
|
invoiceSentAt - DateTime
|
|
exchangeItems - [ExchangeItem!]
|
|
statusLabel - String
|
Status label for the exchange order |
completeOrderLink - String
|
URL Link to the completed order in Shopify |
draftOrderLink - String
|
URL Link to the draft order in Shopify |
consolidatedOrderLink - String
|
URL Link to the original order in Shopify |
Example
{
"id": 4,
"created": "2007-12-03T10:15:30Z",
"consolidatedOrderExchange": true,
"status": "DRAFT",
"theReturn": Return,
"draftOrderId": "abc123",
"draftOrderNumber": "abc123",
"shopifyExchangeShipmentOrderId": "abc123",
"shopifyExchangeShipmentOrderName": "abc123",
"completedOrderId": "abc123",
"completedOrderNumber": "abc123",
"completedOrderAt": "2007-12-03T10:15:30Z",
"invoiceSentAt": "2007-12-03T10:15:30Z",
"exchangeItems": [ExchangeItem],
"statusLabel": "xyz789",
"completeOrderLink": "abc123",
"draftOrderLink": "xyz789",
"consolidatedOrderLink": "xyz789"
}
ExchangeOrderStatus
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"DRAFT"
ExpirationPeriodType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"RETURN_CREATED_DATE"
ExpirationPreventionAction
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"RETURN_PROCESSED"
FiltersInput
Fields
| Input Field | Description |
|---|---|
query - String
|
|
stages - [Int]
|
|
status - ArchiveFilter
|
|
returnDate - DateFilterRange
|
|
orderDate - DateFilterRange
|
|
stageUpdatedDate - DateFilterRange
|
|
perPage - Int
|
|
currentPage - Int
|
|
sortBy - String
|
|
resolvedStatus - [ResolvedStatus]
|
|
returnItemTypes - [String]
|
|
processingStatus - [DraftReturnState]
|
|
warehouseIds - [Int]
|
|
requestType - [String]
|
Example
{
"query": "xyz789",
"stages": [987],
"status": "ACTIVE",
"returnDate": DateFilterRange,
"orderDate": DateFilterRange,
"stageUpdatedDate": DateFilterRange,
"perPage": 987,
"currentPage": 123,
"sortBy": "abc123",
"resolvedStatus": ["RESOLVED"],
"returnItemTypes": ["xyz789"],
"processingStatus": ["CREATED"],
"warehouseIds": [987],
"requestType": ["xyz789"]
}
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
GQLErrorEnum
Description
Enum for all GQL errors Important: Prefix all errors with name of the integration (e.g. RZ_, SHOPIFY_, EASYPOST_, etc)
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"RZ_RULES_ERROR"
GQLErrorType
Fields
| Field Name | Description |
|---|---|
errorCode - GQLErrorEnum
|
The code for the error |
message - String
|
Human readable textual error representation (do not use for machine logic) |
traceId - String
|
Trace ID for the error, you can share this with the ReturnZap customer support |
debugTrace - String
|
Debug information for the error We don't send backend debug info to frontend. |
Example
{
"errorCode": "RZ_RULES_ERROR",
"message": "abc123",
"traceId": "abc123",
"debugTrace": "abc123"
}
GeneratePortalImageUploadURL
Fields
| Field Name | Description |
|---|---|
errors - [GQLErrorType]
|
|
uploadUrl - SignedUrl
|
|
imagePath - String
|
Example
{
"errors": [GQLErrorType],
"uploadUrl": SignedUrl,
"imagePath": "xyz789"
}
GenerateShippingLabelUploadURL
GrapheneFeatureFlagValue
ID
Description
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
"4"
Image
ImageUploadsSetting
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"DISABLE_IMAGE_UPLOAD"
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
ItemCondition
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"GRADE_A"
JSONString
Description
Allows use of a JSON String for input / output from the GraphQL schema.
Use of this type is not recommended as you lose the benefits of having a defined, static schema (one of the key benefits of GraphQL).
Example
JSONString
LengthUnit
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"INCHES"
Money
MoneySet
Notification
Example
{
"id": "4",
"emailSubject": "abc123",
"emailContent": "abc123",
"shouldAttachRmaForm": false,
"isActive": true,
"event": "STAGE_ENTRY",
"uuid": "4",
"stage": Stage
}
NotificationEvent
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"STAGE_ENTRY"
PackageType
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
name - String!
|
|
type - String!
|
|
length - Decimal
|
|
width - Decimal
|
|
height - Decimal
|
|
unit - ShopsPackageUnitChoices!
|
|
weight - Decimal
|
|
weightUnit - ShopsPackageWeightUnitChoices!
|
|
uuid - ID
|
Example
{
"id": 4,
"name": "xyz789",
"type": "abc123",
"length": Decimal,
"width": Decimal,
"height": Decimal,
"unit": "IN",
"weight": Decimal,
"weightUnit": "GRAMS",
"uuid": 4
}
PaymentMethodType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"CARD"
PaymentSetupStatus
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"PENDING"
PendingLabelRate
PortalConfigType
Description
Portal configuration for a shop, accessible to both public and authenticated users.
Fields
| Field Name | Description |
|---|---|
id - UUID!
|
|
lookupSideImageSameWidthAsLookupForm - Boolean!
|
Make the side image have the same width as the lookup form |
uuid - ID!
|
Unused. Will be removed after 2026-04-01. |
logo - Image
|
|
logoDark - Image
|
|
lookupSideImage - Image
|
|
lookupSideImageDark - Image
|
|
logoUploadUrl - SignedUrl
|
Unused on portal. Will be removed after 2026-04-01. |
Arguments
|
|
logoDarkUploadUrl - SignedUrl
|
Unused on portal. Will be removed after 2026-04-01. |
Arguments
|
|
lookupSideImageUploadUrl - SignedUrl
|
Unused on portal. Will be removed after 2026-04-01. |
Arguments
|
|
lookupSideImageDarkUploadUrl - SignedUrl
|
Unused on portal. Will be removed after 2026-04-01. |
Arguments
|
|
Example
{
"id": "ed78471e-5d76-454a-a112-cbcd761bccda",
"lookupSideImageSameWidthAsLookupForm": false,
"uuid": 4,
"logo": Image,
"logoDark": Image,
"lookupSideImage": Image,
"lookupSideImageDark": Image,
"logoUploadUrl": SignedUrl,
"logoDarkUploadUrl": SignedUrl,
"lookupSideImageUploadUrl": SignedUrl,
"lookupSideImageDarkUploadUrl": SignedUrl
}
PortalExchangeSelectionMethod
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"SEARCH"
PortalVisualExchangeType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"NONE"
PrimaryFieldBehavior
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"EMAIL_ADDRESS"
ProcessingStatusAction
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"DISCARD"
PutTaxNumbers
Fields
| Field Name | Description |
|---|---|
errors - [GQLErrorType]
|
|
taxNumbers - [TaxNumberOutput]
|
Example
{
"errors": [GQLErrorType],
"taxNumbers": [TaxNumberOutput]
}
Question
Fields
| Field Name | Description |
|---|---|
id - UUID!
|
|
questionType - QuestionType
|
|
order - Int!
|
|
text - String!
|
|
isRequired - Boolean!
|
|
flow - QuestionFlow
|
|
dependentOnReturnReason - Boolean!
|
Only show after a return reason is selected |
dependentOnQuestion - Question
|
|
choices - [QuestionChoice]
|
|
dependentOnReturnReasons - [ReturnReason]
|
|
dependentOnQuestionChoices - [QuestionChoice]
|
|
isActive - Boolean
|
Example
{
"id": "ed78471e-5d76-454a-a112-cbcd761bccda",
"questionType": "LONG_TEXT",
"order": 123,
"text": "abc123",
"isRequired": false,
"flow": "STANDARD",
"dependentOnReturnReason": true,
"dependentOnQuestion": Question,
"choices": [QuestionChoice],
"dependentOnReturnReasons": [ReturnReason],
"dependentOnQuestionChoices": [QuestionChoice],
"isActive": false
}
QuestionChoice
QuestionChoiceInput
QuestionFlow
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"STANDARD"
QuestionInput
Fields
| Input Field | Description |
|---|---|
id - ID
|
|
order - Int!
|
|
questionType - QuestionType!
|
|
text - String!
|
|
isRequired - Boolean!
|
|
flow - QuestionFlow
|
|
isActive - Boolean!
|
|
deleted - Boolean
|
|
choices - [QuestionChoiceInput]
|
|
dependentOnReturnReasons - [ID]
|
|
dependentOnQuestion - ID
|
|
dependentOnQuestionChoices - [ID]
|
Example
{
"id": 4,
"order": 123,
"questionType": "LONG_TEXT",
"text": "xyz789",
"isRequired": true,
"flow": "STANDARD",
"isActive": true,
"deleted": true,
"choices": [QuestionChoiceInput],
"dependentOnReturnReasons": ["4"],
"dependentOnQuestion": "4",
"dependentOnQuestionChoices": [4]
}
QuestionType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"LONG_TEXT"
Receipt
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
actorDisplayName - String!
|
|
status - WmsReceiptStatusChoices!
|
|
recordedAt - DateTime!
|
When this record was recorded |
finalizedAt - DateTime
|
|
items - [ReceiptItem!]!
|
|
evidence - [WarehouseEvidence!]!
|
|
receivedAfterSettlement - Boolean!
|
Example
{
"id": "4",
"actorDisplayName": "abc123",
"status": "DRAFT",
"recordedAt": "2007-12-03T10:15:30Z",
"finalizedAt": "2007-12-03T10:15:30Z",
"items": [ReceiptItem],
"evidence": [WarehouseEvidence],
"receivedAfterSettlement": false
}
ReceiptItem
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
receivedQuantity - Int!
|
|
acceptedQuantity - Int!
|
|
rejectedQuantity - Int!
|
|
status - WmsReceiptItemStatusChoices!
|
|
inspectionGrade - WmsReceiptItemInspectionGradeChoices
|
|
recommendedDisposition - WmsReceiptItemRecommendedDispositionChoices
|
|
damageSource - WmsReceiptItemDamageSourceChoices
|
|
productTitle - String
|
|
evidence - [WarehouseEvidence!]!
|
Example
{
"id": "4",
"receivedQuantity": 987,
"acceptedQuantity": 987,
"rejectedQuantity": 987,
"status": "RECEIVED",
"inspectionGrade": "A",
"recommendedDisposition": "RESTOCK",
"damageSource": "IN_TRANSIT",
"productTitle": "xyz789",
"evidence": [WarehouseEvidence]
}
ReceivedReturn
ReceivedReturnItemInput
Fields
| Input Field | Description |
|---|---|
returnItemId - ID!
|
|
receivingStatus - ReceivingStatus!
|
|
condition - ItemCondition
|
|
rejectionReason - RejectionReason
|
|
media - [WarehouseMediaInput!]
|
|
note - WarehouseNoteInput
|
Example
{
"returnItemId": "4",
"receivingStatus": "RECEIVED",
"condition": "GRADE_A",
"rejectionReason": "WAREHOUSE_REJECTED",
"media": [WarehouseMediaInput],
"note": WarehouseNoteInput
}
ReceivingStatus
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"RECEIVED"
RefFieldSource
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"BLANK"
RefundReturn
Fields
| Field Name | Description |
|---|---|
error - String
|
|
return - Return
|
|
refund - RefundType
|
Example
{
"error": "abc123",
"return": Return,
"refund": RefundType
}
RefundType
Fields
| Field Name | Description |
|---|---|
shopifyRefundId - String!
|
Shopify's id for the refund. |
requestedTotalRefundAmount - Decimal
|
Presentment amount ReturnZap asked Shopify to refund — the refundFullAmount passed to returnRefund. Known as soon as the refund is created. |
requestedCurrencyCode - String!
|
Presentment currency of requestedTotalRefundAmount. |
presentmentTotalAmountRefunded - Decimal
|
Net cash Shopify refunded, in presentment currency. Populated asynchronously from Shopify and can read 0.00 on a completed refund until the transactions settle; a nightly backfill heals it. Use requestedTotalRefundAmount for the amount just requested. |
presentmentCurrencyCode - String!
|
Currency the customer paid in, as reported by Shopify. |
presentmentSubtotalRefundAmount - Decimal
|
Line-item subtotal refunded, excluding tax and shipping, in presentment currency. |
presentmentTaxRefundAmount - Decimal
|
Line-item tax refunded, in presentment currency. |
presentmentShippingSubtotalRefundAmount - Decimal
|
Shipping refunded, excluding tax, in presentment currency. |
presentmentShippingTaxRefundAmount - Decimal
|
Shipping tax refunded, in presentment currency. |
shopTotalAmountRefunded - Decimal
|
Net cash Shopify refunded, converted to the shop's own currency. Same asynchronous population as presentmentTotalAmountRefunded. Use this only to aggregate across orders. |
shopRefundCurrencyCode - String!
|
The shop's own currency. |
shopSubtotalRefundAmount - Decimal
|
Line-item subtotal refunded, excluding tax and shipping, in shop currency. |
shopTaxRefundAmount - Decimal
|
Line-item tax refunded, in shop currency. |
shopShippingSubtotalRefundAmount - Decimal
|
Shipping refunded, excluding tax, in shop currency. |
shopShippingTaxRefundAmount - Decimal
|
Shipping tax refunded, in shop currency. |
currencyCode - String
|
Use presentmentCurrencyCode instead
|
totalAmountRefunded - Decimal
|
Use presentmentTotalAmountRefunded instead
|
Example
{
"shopifyRefundId": "abc123",
"requestedTotalRefundAmount": Decimal,
"requestedCurrencyCode": "xyz789",
"presentmentTotalAmountRefunded": Decimal,
"presentmentCurrencyCode": "abc123",
"presentmentSubtotalRefundAmount": Decimal,
"presentmentTaxRefundAmount": Decimal,
"presentmentShippingSubtotalRefundAmount": Decimal,
"presentmentShippingTaxRefundAmount": Decimal,
"shopTotalAmountRefunded": Decimal,
"shopRefundCurrencyCode": "abc123",
"shopSubtotalRefundAmount": Decimal,
"shopTaxRefundAmount": Decimal,
"shopShippingSubtotalRefundAmount": Decimal,
"shopShippingTaxRefundAmount": Decimal,
"currencyCode": "abc123",
"totalAmountRefunded": Decimal
}
RejectReturn
RejectionReason
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"WAREHOUSE_REJECTED"
ReleaseExchangeItemsMutation
Fields
| Field Name | Description |
|---|---|
errors - [String]
|
|
caveats - [String]
|
|
exchangeOrders - [ExchangeOrder]
|
Use exchange_items instead |
exchangeItems - [ExchangeItem]
|
|
return_ - Return
|
Example
{
"errors": ["abc123"],
"caveats": ["abc123"],
"exchangeOrders": [ExchangeOrder],
"exchangeItems": [ExchangeItem],
"return_": Return
}
ResolutionStatus
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"AUTO"
ResolvedStatus
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"RESOLVED"
RestockingFeeType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"ONCE_PER_RETURN"
Return
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
uuid - String!
|
|
adminReturn - Boolean!
|
|
testMode - Boolean!
|
|
returnIntegration - Boolean!
|
|
usesConsolidatedOrderExchanges - Boolean
|
True if there's at least one exchange that uses consolidated order exchanges. |
traceId - String
|
|
draftProcessingState - DraftReturnState
|
|
customerFirstName - String!
|
|
customerLastName - String!
|
|
customerEmail - String!
|
|
rmaNumber - String!
|
|
stageLabel - String!
|
|
stageUpdatedDate - DateTime
|
|
approvalRequired - Boolean
|
|
approvedAt - DateTime
|
|
rejectedAt - DateTime
|
|
rejectionReason - String
|
|
notes - String
|
|
allowResubmission - Boolean
|
When True, this return's items are excluded from returnable quantity enforcement in the portal. |
receivedAt - DateTime
|
|
financialTerminalAt - DateTime
|
|
isArchived - Boolean
|
|
expiredAt - DateTime
|
|
shippingMethod - ShippingMethod
|
|
giftReturn - Boolean
|
|
giftReturnEmailAddress - String
|
|
trackingNumber - String!
|
|
deliveryDate - DateTime
|
|
deliveryStatus - String!
|
|
labelCurrency - String!
|
|
shopCurrency - String!
|
|
noShippingRequired - Boolean!
|
|
feesSentThroughReturnIntegration - Boolean!
|
In issue #1545 we started sending shipping and restocking fees to Shopify when creating a return. |
defaultRefundFee - Decimal
|
|
defaultStoreCreditFee - Decimal
|
|
originalHandlingFeeCharged - Decimal
|
The handling fee charged to the customer when the return was created |
actualHandlingFeeCharged - Decimal
|
The handling fee actually charged to the customer through ReturnZap resolutions |
restockingFeeType - RestockingFeeType
|
|
originalRestockingFeeCharged - Decimal
|
The restocking fee charged to the customer when the return was created |
actualRestockingFeeCharged - Decimal
|
The restocking fee actually charged to the customer through ReturnZap resolutions |
shopifyReturnId - String
|
|
shopifyReturnName - String!
|
|
shopifyReturnSyncError - ReturnSyncError
|
|
shopifyOrderId - String!
|
|
shopifyOrderDate - DateTime
|
|
exchangeBalanceDue - Decimal
|
The balance due for the exchange |
exchangeBalancePaidAt - DateTime
|
|
estimatedBalance - Decimal
|
The estimated amount show to the customer in the portal. If positive, the shop owes the customer this amount. If negative, the customer owes the shop this amount. Added in 2025-04 and not backfilled. |
isDraft - Boolean!
|
|
shopifyOrderNumber - String!
|
|
shopifyOrderUrl - String!
|
|
shopifyCustomerUrl - String!
|
|
customerAddress - ReturnAddressType
|
|
destinationAddress - ReturnAddressType
|
|
giftReturnAddress - ReturnAddressType
|
|
rmaFormUrl - String
|
|
stageId - ID
|
|
systemStage - Int
|
|
statusId - String
|
|
statusLabel - String
|
|
labelUrl - String
|
|
qrCodeUrl - String
|
|
qrCodeDownloadUrl - String
|
|
returnStatusPageUrl - String
|
|
labelCost - Decimal
|
|
totalWeightGrams - Decimal
|
|
createdAt - DateTime
|
|
refunds - [RefundType]
|
|
logs - [ReturnLog!]!
|
|
next - String
|
Use nextReturn instead
|
previous - String
|
Use previousReturn instead
|
nextReturn - Return
|
|
previousReturn - Return
|
|
exchangeOrders - [ExchangeOrder!]
|
|
shipment - Shipment
|
|
appliedRules - [String]
|
Use appliedRulesDetailed instead for structured rule data
|
appliedRulesDetailed - [AppliedRuleType]
|
|
suggestionRefund - SuggestionRefundType
|
Use suggestedRefund instead
|
suggestedRefund - SuggestedRefundType
|
|
hasValidCustomerPaymentPending - Boolean
|
|
warehouseName - String
|
|
shippedTo - String
|
Use warehouseName |
warehouse - WarehouseType
|
|
storeCredits - [StoreCreditType]
|
|
externalShippingLabelUrl - String
|
|
items - [ReturnItem]
|
|
exchangeItems - [ExchangeItem]
|
|
handlingFeeCharged - Decimal
|
Use (actual|original)_handling_fee_charged instead
|
restockingFeeCharged - Decimal
|
Use (actual|original)_restocking_fee_charged instead
|
shopifyOrderFulfillments - [ShopifyFulfillmentType]
|
|
shopifyOrderTotalQuantityOrdered - Int
|
|
shopifyOrderTotalQuantityReturnItems - Int
|
|
shopifyOrderTotalPrice - Decimal
|
|
shopifyOrderSubtotalPrice - Decimal
|
|
shopifyOrderTags - [String]
|
|
shopifyOrderCustomerTags - [String]
|
|
shopifyReturnSyncStatus - ShopifyReturnSyncStatus
|
|
availableActions - [ProcessingStatusAction!]!
|
|
customerNumberOfOrders - Int
|
|
customerNumberOfReturns - Int
|
|
shipmentCarrierName - String
|
|
shipmentServiceName - String
|
|
pendingLabelRate - PendingLabelRate
|
|
receipts - [Receipt!]!
|
|
hasReturnProtection - Boolean!
|
|
requestType - String
|
|
withdrawalSubtype - String
|
|
withdrawalReceivedAt - DateTime
|
|
withdrawalManualResolutionReason - WithdrawalManualResolutionReason
|
|
resolvedAt - DateTime
|
|
withdrawalCancellationState - String
|
|
withdrawalCancellationErrorReason - String
|
|
withdrawalRefundDueAt - DateTime
|
|
originCountryCode - String
|
|
orderId - String!
|
Use shopifyOrderId instead
|
orderNumber - String!
|
Use shopifyOrderNumber instead
|
orderDate - DateTime
|
Use shopifyOrderDate instead
|
returnDate - DateTime
|
Use createdAt instead
|
isActive - Boolean
|
Use isArchived instead
|
unitQuantity - Int
|
|
returnValueAmount - Decimal
|
Sum of items (item quantity * item discounted amount) |
resolvedStatus - ResolvedStatus
|
Status indicating the resolution state of the return items |
returnItemTypes - [String]
|
List of return item types e.g. ["REFUND", "CREDIT", "EXCHANGE"] |
returnTypeLabels - [String]
|
List of return item type labels e.g. ["Refund", "Store Credit", "Exchange"] |
Example
{
"id": "4",
"uuid": "xyz789",
"adminReturn": true,
"testMode": true,
"returnIntegration": true,
"usesConsolidatedOrderExchanges": false,
"traceId": "abc123",
"draftProcessingState": "CREATED",
"customerFirstName": "abc123",
"customerLastName": "xyz789",
"customerEmail": "abc123",
"rmaNumber": "abc123",
"stageLabel": "abc123",
"stageUpdatedDate": "2007-12-03T10:15:30Z",
"approvalRequired": false,
"approvedAt": "2007-12-03T10:15:30Z",
"rejectedAt": "2007-12-03T10:15:30Z",
"rejectionReason": "abc123",
"notes": "xyz789",
"allowResubmission": false,
"receivedAt": "2007-12-03T10:15:30Z",
"financialTerminalAt": "2007-12-03T10:15:30Z",
"isArchived": true,
"expiredAt": "2007-12-03T10:15:30Z",
"shippingMethod": "FREE",
"giftReturn": false,
"giftReturnEmailAddress": "xyz789",
"trackingNumber": "xyz789",
"deliveryDate": "2007-12-03T10:15:30Z",
"deliveryStatus": "abc123",
"labelCurrency": "abc123",
"shopCurrency": "abc123",
"noShippingRequired": false,
"feesSentThroughReturnIntegration": true,
"defaultRefundFee": Decimal,
"defaultStoreCreditFee": Decimal,
"originalHandlingFeeCharged": Decimal,
"actualHandlingFeeCharged": Decimal,
"restockingFeeType": "ONCE_PER_RETURN",
"originalRestockingFeeCharged": Decimal,
"actualRestockingFeeCharged": Decimal,
"shopifyReturnId": "abc123",
"shopifyReturnName": "abc123",
"shopifyReturnSyncError": "UNKNOWN_ERROR",
"shopifyOrderId": "xyz789",
"shopifyOrderDate": "2007-12-03T10:15:30Z",
"exchangeBalanceDue": Decimal,
"exchangeBalancePaidAt": "2007-12-03T10:15:30Z",
"estimatedBalance": Decimal,
"isDraft": false,
"shopifyOrderNumber": "xyz789",
"shopifyOrderUrl": "xyz789",
"shopifyCustomerUrl": "abc123",
"customerAddress": ReturnAddressType,
"destinationAddress": ReturnAddressType,
"giftReturnAddress": ReturnAddressType,
"rmaFormUrl": "xyz789",
"stageId": 4,
"systemStage": 987,
"statusId": "xyz789",
"statusLabel": "abc123",
"labelUrl": "abc123",
"qrCodeUrl": "xyz789",
"qrCodeDownloadUrl": "xyz789",
"returnStatusPageUrl": "xyz789",
"labelCost": Decimal,
"totalWeightGrams": Decimal,
"createdAt": "2007-12-03T10:15:30Z",
"refunds": [RefundType],
"logs": [ReturnLog],
"next": "abc123",
"previous": "abc123",
"nextReturn": Return,
"previousReturn": Return,
"exchangeOrders": [ExchangeOrder],
"shipment": Shipment,
"appliedRules": ["xyz789"],
"appliedRulesDetailed": [AppliedRuleType],
"suggestionRefund": SuggestionRefundType,
"suggestedRefund": SuggestedRefundType,
"hasValidCustomerPaymentPending": false,
"warehouseName": "abc123",
"shippedTo": "abc123",
"warehouse": WarehouseType,
"storeCredits": [StoreCreditType],
"externalShippingLabelUrl": "abc123",
"items": [ReturnItem],
"exchangeItems": [ExchangeItem],
"handlingFeeCharged": Decimal,
"restockingFeeCharged": Decimal,
"shopifyOrderFulfillments": [ShopifyFulfillmentType],
"shopifyOrderTotalQuantityOrdered": 123,
"shopifyOrderTotalQuantityReturnItems": 987,
"shopifyOrderTotalPrice": Decimal,
"shopifyOrderSubtotalPrice": Decimal,
"shopifyOrderTags": ["abc123"],
"shopifyOrderCustomerTags": ["abc123"],
"shopifyReturnSyncStatus": "UNSYNCABLE",
"availableActions": ["DISCARD"],
"customerNumberOfOrders": 123,
"customerNumberOfReturns": 123,
"shipmentCarrierName": "xyz789",
"shipmentServiceName": "abc123",
"pendingLabelRate": PendingLabelRate,
"receipts": [Receipt],
"hasReturnProtection": false,
"requestType": "xyz789",
"withdrawalSubtype": "xyz789",
"withdrawalReceivedAt": "2007-12-03T10:15:30Z",
"withdrawalManualResolutionReason": "INTERCEPTED_OR_CANCELLED_OUTSIDE_RETURNZAP",
"resolvedAt": "2007-12-03T10:15:30Z",
"withdrawalCancellationState": "xyz789",
"withdrawalCancellationErrorReason": "abc123",
"withdrawalRefundDueAt": "2007-12-03T10:15:30Z",
"originCountryCode": "abc123",
"orderId": "abc123",
"orderNumber": "abc123",
"orderDate": "2007-12-03T10:15:30Z",
"returnDate": "2007-12-03T10:15:30Z",
"isActive": true,
"unitQuantity": 987,
"returnValueAmount": Decimal,
"resolvedStatus": "RESOLVED",
"returnItemTypes": ["xyz789"],
"returnTypeLabels": ["abc123"]
}
ReturnAddressType
Example
{
"name": "abc123",
"company": "xyz789",
"street1": "xyz789",
"street2": "abc123",
"city": "abc123",
"state": "xyz789",
"zip": "abc123",
"phone": "xyz789",
"email": "abc123",
"country": "xyz789",
"warehouseId": "4"
}
ReturnItem
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
shopifyLineItemId - String!
|
|
shopifyVariantId - String!
|
|
sku - String!
|
|
barcode - String
|
|
productTitle - String!
|
|
variantTitle - String!
|
|
variantDisplayName - String!
|
|
quantity - Int!
|
|
value - Decimal
|
Full unit price in shop currency |
presentmentOriginalAmount - Decimal
|
The variant unit amount without discounts applied in presentment currency |
discountedAmount - Decimal
|
Actual amount customer paid in shop currency |
presentmentDiscountedAmount - Decimal
|
Actual amount customer paid per unit in presentment currency |
presentmentCurrency - String!
|
|
vendor - String!
|
The name of the vendor who made the variant from Shopify. |
isPartOfBundle - Boolean
|
Whether this line item belongs to a Shopify bundle (lineItemGroup) |
bundleTitle - String
|
Title of the bundle this item belongs to, from Shopify lineItemGroup |
bundleGroupId - String
|
Stable Shopify lineItemGroup ID for the bundle |
returnReason - String!
|
|
comment - String!
|
|
exchangeOrder - ExchangeOrder
|
The exchange order created for this return item |
isMissing - Boolean!
|
Is missing from return package |
receivingStatus - ReturnsReturnItemReceivingStatusChoices
|
Set during receiving: received, missing, or rejected. Supersedes is_missing. |
condition - ReturnsReturnItemConditionChoices
|
Item condition assessed at receiving time (Grade A/B/C) |
rejectionReason - ReturnsReturnItemRejectionReasonChoices
|
Required when receiving_status is rejected |
isResolvedManually - Boolean!
|
Is resolved manually |
skipRestock - Boolean!
|
Flag indicating whether to temporarily skip restocking for the returned item. This item may be restocked in the future, depending on the disposition status. |
restockingFee - Decimal
|
The current shop restocking fee applied to the item |
handlingFee - Decimal
|
The current shop handling fee applied to the item |
storeCreditIncentiveAmount - Decimal
|
The current shop store credit's incentive amount applied to the item |
fulfillmentLocationId - String!
|
|
fulfillmentLocationName - String!
|
|
expiredAt - DateTime
|
|
actuallyResolvedAt - DateTime
|
Date the admin has resolved this item. |
autoResolvedAt - DateTime
|
Date the system has automatically resolved this item. |
returnEligibilityExpiresAt - DateTime
|
|
variant - String
|
Use variantTitle instead |
title - String
|
Use variantDisplayName instead |
titleClean - String
|
Use productTitle instead |
returnType - ReturnType
|
|
returnTypeLabel - String
|
|
returnReasonId - Int
|
|
returnReasonLabel - String
|
|
images - [String]
|
|
files - [ReturnItemFileType]
|
|
answers - [ReturnItemAnswerType]
|
|
isRefunded - Boolean
|
|
currency - String
|
Shop currency code e.g. USD |
dispositionType - String
|
Shopify disposition type e.g. RESTOCKED, NOT_RESTOCKED, MISSING, PROCESSING_REQUIRED |
imageUrl - String
|
|
variants - [String!]!
|
|
exchangeItem - ExchangeItem
|
|
resolvedAt - DateTime
|
|
resolutionStatus - ResolutionStatus
|
|
productHsCode - String
|
|
productCountryOfOrigin - String
|
|
totalWeightGrams - Decimal
|
|
discountAllocations - [ReturnItemDiscountAllocationType]
|
|
preTaxPriceSet - MoneySet
|
|
postTaxPriceSet - MoneySet
|
|
taxRate - Decimal
|
|
restockLocationId - String
|
Example
{
"id": "4",
"shopifyLineItemId": "xyz789",
"shopifyVariantId": "xyz789",
"sku": "xyz789",
"barcode": "abc123",
"productTitle": "abc123",
"variantTitle": "xyz789",
"variantDisplayName": "xyz789",
"quantity": 123,
"value": Decimal,
"presentmentOriginalAmount": Decimal,
"discountedAmount": Decimal,
"presentmentDiscountedAmount": Decimal,
"presentmentCurrency": "xyz789",
"vendor": "abc123",
"isPartOfBundle": false,
"bundleTitle": "abc123",
"bundleGroupId": "xyz789",
"returnReason": "abc123",
"comment": "abc123",
"exchangeOrder": ExchangeOrder,
"isMissing": true,
"receivingStatus": "RECEIVED",
"condition": "GRADE_A",
"rejectionReason": "WAREHOUSE_REJECTED",
"isResolvedManually": true,
"skipRestock": true,
"restockingFee": Decimal,
"handlingFee": Decimal,
"storeCreditIncentiveAmount": Decimal,
"fulfillmentLocationId": "abc123",
"fulfillmentLocationName": "xyz789",
"expiredAt": "2007-12-03T10:15:30Z",
"actuallyResolvedAt": "2007-12-03T10:15:30Z",
"autoResolvedAt": "2007-12-03T10:15:30Z",
"returnEligibilityExpiresAt": "2007-12-03T10:15:30Z",
"variant": "abc123",
"title": "xyz789",
"titleClean": "xyz789",
"returnType": "REFUND",
"returnTypeLabel": "abc123",
"returnReasonId": 987,
"returnReasonLabel": "abc123",
"images": ["xyz789"],
"files": [ReturnItemFileType],
"answers": [ReturnItemAnswerType],
"isRefunded": true,
"currency": "abc123",
"dispositionType": "xyz789",
"imageUrl": "xyz789",
"variants": ["xyz789"],
"exchangeItem": ExchangeItem,
"resolvedAt": "2007-12-03T10:15:30Z",
"resolutionStatus": "AUTO",
"productHsCode": "xyz789",
"productCountryOfOrigin": "abc123",
"totalWeightGrams": Decimal,
"discountAllocations": [
ReturnItemDiscountAllocationType
],
"preTaxPriceSet": MoneySet,
"postTaxPriceSet": MoneySet,
"taxRate": Decimal,
"restockLocationId": "xyz789"
}
ReturnItemAnswerChoiceType
ReturnItemAnswerType
Fields
| Field Name | Description |
|---|---|
id - UUID!
|
|
questionType - QuestionType
|
|
order - Int!
|
|
questionText - String!
|
|
answer - String!
|
|
questionId - String
|
|
isRequired - Boolean
|
|
response - AnswerResponseType
|
|
answerChoices - [ReturnItemAnswerChoiceType]
|
Example
{
"id": "ed78471e-5d76-454a-a112-cbcd761bccda",
"questionType": "LONG_TEXT",
"order": 987,
"questionText": "xyz789",
"answer": "abc123",
"questionId": "xyz789",
"isRequired": false,
"response": AnswerResponseType,
"answerChoices": [ReturnItemAnswerChoiceType]
}
ReturnItemDiscountAllocationType
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
title - String
|
Discount application title (e.g. 'BOGO 50% Off') |
code - String
|
Discount code if applicable, null for automatic discounts |
allocationMethod - ReturnsReturnItemDiscountAllocationAllocationMethodChoices
|
How the discount is allocated: ACROSS, EACH, or ONE |
amount - Decimal
|
Raw line-item-level allocated amount in shop currency |
presentmentAmount - Decimal
|
Raw line-item-level allocated amount in presentment currency |
lineItemQuantity - Int
|
Line item quantity at time of allocation, for computing per-unit amounts |
Example
{
"id": "4",
"title": "abc123",
"code": "abc123",
"allocationMethod": "ACROSS",
"amount": Decimal,
"presentmentAmount": Decimal,
"lineItemQuantity": 987
}
ReturnItemFileType
ReturnLog
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
message - String!
|
|
context - ReturnLogContext!
|
|
comment - String!
|
|
type - ReturnLogType!
|
|
messageCode - String
|
|
moment - DateTime!
|
|
actorType - String!
|
|
returnItems - [ReturnItem!]!
|
|
exchangeItems - [ExchangeItem!]!
|
Example
{
"id": "4",
"message": "abc123",
"context": ReturnLogContext,
"comment": "xyz789",
"type": "LEGACY",
"messageCode": "abc123",
"moment": "2007-12-03T10:15:30Z",
"actorType": "abc123",
"returnItems": [ReturnItem],
"exchangeItems": [ExchangeItem]
}
ReturnLogContext
Fields
| Field Name | Description |
|---|---|
id - ID
|
|
comment - String
|
|
userFirstName - String
|
|
userLastName - String
|
|
stageLabel - String
|
|
itemsCount - Int
|
|
externalShipmentId - String
|
|
notificationType - String
|
|
to - String
|
|
shopifyOrderName - String
|
|
shopifyOrderId - String
|
|
amount - String
|
|
failedAmount - String
|
|
currency - String
|
|
shopAmount - String
|
|
shopCurrency - String
|
|
storeCreditType - AutomatedStoreCreditType
|
|
rejectionReason - String
|
|
reason - String
|
|
receiptId - ID
|
Example
{
"id": 4,
"comment": "xyz789",
"userFirstName": "abc123",
"userLastName": "abc123",
"stageLabel": "abc123",
"itemsCount": 123,
"externalShipmentId": "abc123",
"notificationType": "xyz789",
"to": "xyz789",
"shopifyOrderName": "abc123",
"shopifyOrderId": "abc123",
"amount": "abc123",
"failedAmount": "abc123",
"currency": "xyz789",
"shopAmount": "abc123",
"shopCurrency": "abc123",
"storeCreditType": "DISCOUNT_CODE",
"rejectionReason": "abc123",
"reason": "abc123",
"receiptId": 4
}
ReturnLogType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"LEGACY"
ReturnReason
Fields
| Field Name | Description |
|---|---|
id - Int!
|
|
uuid - ID
|
|
reason - String!
|
|
imageUploads - ImageUploadsSetting
|
|
order - Int
|
Example
{
"id": 987,
"uuid": "4",
"reason": "xyz789",
"imageUploads": "DISABLE_IMAGE_UPLOAD",
"order": 123
}
ReturnSyncError
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"UNKNOWN_ERROR"
ReturnType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"REFUND"
ReturnUpdateStatus
ReturnsReturnItemConditionChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
Excellent |
|
|
Acceptable |
|
|
Damaged or Poor |
Example
"GRADE_A"
ReturnsReturnItemDiscountAllocationAllocationMethodChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
Across |
|
|
Each |
|
|
One |
Example
"ACROSS"
ReturnsReturnItemReceivingStatusChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
Received |
|
|
Missing |
|
|
Rejected |
Example
"RECEIVED"
ReturnsReturnItemRejectionReasonChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
Warehouse rejected |
|
|
Not in original condition |
|
|
Item damaged or worn |
|
|
Missing components or accessories |
|
|
Wrong item returned |
|
|
Return window expired |
|
|
Signs of use beyond inspection |
|
|
Other |
Example
"WAREHOUSE_REJECTED"
Rule
Fields
| Field Name | Description |
|---|---|
id - ID
|
|
uuid - String!
|
|
isActive - Boolean
|
|
name - String!
|
|
rule - String
|
Human readable version. Use description instead. |
description - String
|
Human readable version. |
when - RuleWhen!
|
|
conditions - [Condition]!
|
Use conditionGroups instead. |
conditionGroups - [ConditionGroupGraphQL!]!
|
|
actions - [RuleActionGraphQL!]!
|
|
action - RuleAction
|
Use actions instead. |
actionOption - RuleActionOption
|
Use actions instead. |
unit - RuleUnit
|
Use actions instead. |
value - String
|
Use actions instead. |
message - String
|
Use actions instead. |
warehouseName - String
|
Use actions instead. |
warehouseId - ID
|
Use actions instead. |
destinationCountry - String
|
Use actions instead. |
question - ID
|
Use actions instead. |
questionChoices - [ID]
|
Use actions instead. |
questionId - ID
|
Use question instead. |
questionChoiceId - ID
|
Use question_choices instead. |
windowDays - Int
|
Use value instead. |
Example
{
"id": 4,
"uuid": "abc123",
"isActive": false,
"name": "abc123",
"rule": "abc123",
"description": "abc123",
"when": "AND",
"conditions": [Condition],
"conditionGroups": [ConditionGroupGraphQL],
"actions": [RuleActionGraphQL],
"action": "DENY_RETURN",
"actionOption": "ALL",
"unit": "SHOP_DEFAULT_CURRENCY",
"value": "xyz789",
"message": "abc123",
"warehouseName": "abc123",
"warehouseId": "4",
"destinationCountry": "abc123",
"question": 4,
"questionChoices": [4],
"questionId": "4",
"questionChoiceId": "4",
"windowDays": 987
}
RuleAction
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"DENY_RETURN"
RuleActionGraphQL
Fields
| Field Name | Description |
|---|---|
action - RuleAction!
|
|
actionOption - RuleActionOption
|
|
value - String
|
|
unit - RuleUnit
|
|
order - Int!
|
|
message - String!
|
|
warehouseId - ID
|
|
warehouseName - String
|
Unused. Will be removed after 2026-04-01. |
packageId - ID
|
|
destinationCountry - String
|
|
question - ID
|
|
questionChoices - [ID]
|
Example
{
"action": "DENY_RETURN",
"actionOption": "ALL",
"value": "xyz789",
"unit": "SHOP_DEFAULT_CURRENCY",
"order": 123,
"message": "xyz789",
"warehouseId": 4,
"warehouseName": "abc123",
"packageId": "4",
"destinationCountry": "xyz789",
"question": 4,
"questionChoices": [4]
}
RuleActionOption
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"ALL"
RuleAttribute
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"NONE"
RuleOperator
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"EQ"
RuleUnit
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"SHOP_DEFAULT_CURRENCY"
RuleWhen
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"AND"
SecondaryFieldBehavior
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"SHOPIFY_ORDER_NUMBER"
SelectedChoiceType
SendcloudAccount
SetReturnNotes
ShipStationAccountCarrierServiceType
Fields
| Field Name | Description |
|---|---|
id - UUID!
|
|
carrier - ShipStationAccountCarrierType!
|
|
code - String!
|
Service code from ShipStation API |
name - String!
|
Human-readable service name |
description - String!
|
Human-readable service description |
isActive - Boolean!
|
Whether this service is active and available for use |
alwaysDisplay - Boolean!
|
Always return this rate option despite cut off setting |
Example
{
"id": "ed78471e-5d76-454a-a112-cbcd761bccda",
"carrier": ShipStationAccountCarrierType,
"code": "abc123",
"name": "abc123",
"description": "xyz789",
"isActive": false,
"alwaysDisplay": false
}
ShipStationAccountCarrierType
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
account - ShipStationAccountType
|
|
isActive - Boolean!
|
|
shipstationShippingProviderId - Int!
|
|
shipstationCarrier - String!
|
|
shipstationCarrierName - String!
|
|
services - [ShipStationAccountCarrierServiceType]
|
Example
{
"id": 4,
"account": ShipStationAccountType,
"isActive": false,
"shipstationShippingProviderId": 987,
"shipstationCarrier": "abc123",
"shipstationCarrierName": "abc123",
"services": [ShipStationAccountCarrierServiceType]
}
ShipStationAccountType
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
apiKey - String!
|
|
apiSecret - String
|
|
services - String
|
Use ShipStationAccountCarrierServiceType.is_active field instead. |
carriers - [ShipStationAccountCarrierType]
|
Example
{
"id": "4",
"apiKey": "xyz789",
"apiSecret": "xyz789",
"services": "abc123",
"carriers": [ShipStationAccountCarrierType]
}
Shipment
Example
{
"trackingCode": "abc123",
"trackingUrl": "xyz789",
"status": "abc123",
"refunded": false,
"canBeVoided": false,
"commercialInvoiceUrl": "xyz789"
}
ShipmentStatus
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"UNKNOWN"
ShippingMethod
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"FREE"
ShippoAccountCarrierServiceType
Fields
| Field Name | Description |
|---|---|
id - UUID!
|
|
carrier - ShippoAccountCarrierType!
|
|
code - String!
|
Service token from Shippo API |
name - String!
|
Human-readable service name |
description - String!
|
Human-readable service description |
isActive - Boolean!
|
Whether this service is active and available for use |
alwaysDisplay - Boolean!
|
Always return this rate option despite cut off setting |
Example
{
"id": "ed78471e-5d76-454a-a112-cbcd761bccda",
"carrier": ShippoAccountCarrierType,
"code": "abc123",
"name": "abc123",
"description": "xyz789",
"isActive": true,
"alwaysDisplay": true
}
ShippoAccountCarrierType
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
account - ShippoAccountType
|
|
isActive - Boolean!
|
|
shippoObjectId - String!
|
Carrier account ID from Shippo API |
shippoCarrier - String!
|
Carrier code from Shippo API |
shippoCarrierName - String!
|
|
services - [ShippoAccountCarrierServiceType]
|
Example
{
"id": "4",
"account": ShippoAccountType,
"isActive": false,
"shippoObjectId": "xyz789",
"shippoCarrier": "abc123",
"shippoCarrierName": "xyz789",
"services": [ShippoAccountCarrierServiceType]
}
ShippoAccountType
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
useIsReturn - Boolean!
|
|
services - String
|
Use ShippoAccountCarrierServiceType.is_active field instead. |
carriers - [ShippoAccountCarrierType]
|
Example
{
"id": "4",
"useIsReturn": false,
"services": "xyz789",
"carriers": [ShippoAccountCarrierType]
}
ShopPaymentMethod
Fields
| Field Name | Description |
|---|---|
id - UUID!
|
|
createdAt - DateTime!
|
|
stripePaymentMethodId - String!
|
Stripe payment method ID (pm_...) |
paymentMethodType - PaymentMethodType
|
|
brand - String!
|
Card brand (visa, mastercard) or bank name |
lastFour - String!
|
Last 4 digits of card or account number |
expMonth - Int
|
Expiration month for cards (1-12) |
expYear - Int
|
Expiration year for cards |
bankName - String!
|
Bank name for ACH payments |
isActive - Boolean!
|
Whether this payment method is active and can be used |
isDefault - Boolean!
|
Whether this is the default payment method for auto-recharge |
failedChargeAttempts - Int!
|
Number of consecutive failed charge attempts. Reset to 0 on success. |
status - PaymentSetupStatus
|
|
isExpired - Boolean
|
|
isChargeExhausted - Boolean
|
Example
{
"id": "ed78471e-5d76-454a-a112-cbcd761bccda",
"createdAt": "2007-12-03T10:15:30Z",
"stripePaymentMethodId": "xyz789",
"paymentMethodType": "CARD",
"brand": "abc123",
"lastFour": "xyz789",
"expMonth": 987,
"expYear": 123,
"bankName": "abc123",
"isActive": false,
"isDefault": true,
"failedChargeAttempts": 987,
"status": "PENDING",
"isExpired": true,
"isChargeExhausted": true
}
ShopSubscriptionPlan
Fields
| Field Name | Description |
|---|---|
id - Int
|
|
uuid - String!
|
|
subscriptionType - SubscriptionType
|
|
price - Decimal
|
|
perLabelFee - Decimal
|
|
tiered - Boolean
|
|
tierCount - Int
|
|
overagePrice - Decimal
|
|
isCustomPlan - Boolean
|
|
name - String
|
|
features - [SubscriptionFeature]
|
|
featuresInUse - [SubscriptionFeature]
|
|
hasValidSubscriptionCharge - Boolean
|
|
forceSelectSubscriptionPlan - Boolean
|
|
freeTrialDaysRemaining - Int
|
|
billingPeriods - [BillingPeriodType]
|
|
customQuote - CustomQuote
|
|
managedBy - BillingManagedBy!
|
|
managedByLabel - String!
|
|
canChangePlan - Boolean!
|
|
returnProtectionCurrentlyEnabled - Boolean
|
|
hasReturnProtectionFeeHistory - Boolean
|
Example
{
"id": 987,
"uuid": "abc123",
"subscriptionType": "FREE",
"price": Decimal,
"perLabelFee": Decimal,
"tiered": true,
"tierCount": 987,
"overagePrice": Decimal,
"isCustomPlan": false,
"name": "xyz789",
"features": ["ADJUST_RETURN_WINDOWS"],
"featuresInUse": ["ADJUST_RETURN_WINDOWS"],
"hasValidSubscriptionCharge": false,
"forceSelectSubscriptionPlan": false,
"freeTrialDaysRemaining": 987,
"billingPeriods": [BillingPeriodType],
"customQuote": CustomQuote,
"managedBy": "SELF",
"managedByLabel": "xyz789",
"canChangePlan": true,
"returnProtectionCurrentlyEnabled": false,
"hasReturnProtectionFeeHistory": false
}
ShopifyFulfillmentType
Example
{
"id": "abc123",
"name": "xyz789",
"status": "xyz789",
"deliveredAt": "2007-12-03T10:15:30Z",
"totalQuantity": 987,
"trackingInfo": [ShopifyTrackingInfoType]
}
ShopifyLocation
ShopifyReturnSyncStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"UNSYNCABLE"
ShopifyTrackingInfoType
ShopifyUser
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
uuid - String!
|
|
accountOwner - Boolean!
|
|
preferredLocale - String
|
|
hqPreferences - JSONString
|
|
isAdmin - Boolean!
|
|
canManageUsers - Boolean!
|
|
canModifySettings - Boolean!
|
|
canProcessReturns - Boolean!
|
|
shopifyId - String
|
|
email - String!
|
|
firstName - String!
|
|
lastName - String!
|
|
locale - String!
|
|
isActive - Boolean!
|
|
chatHash - String
|
|
shouldUpdate - Boolean
|
|
isDeleted - Boolean!
|
|
shopifyRoles - String
|
Not used anymore |
Example
{
"id": 4,
"uuid": "abc123",
"accountOwner": true,
"preferredLocale": "xyz789",
"hqPreferences": JSONString,
"isAdmin": false,
"canManageUsers": false,
"canModifySettings": true,
"canProcessReturns": false,
"shopifyId": "xyz789",
"email": "xyz789",
"firstName": "xyz789",
"lastName": "abc123",
"locale": "xyz789",
"isActive": true,
"chatHash": "xyz789",
"shouldUpdate": false,
"isDeleted": false,
"shopifyRoles": "xyz789"
}
ShopsPackageUnitChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
in |
|
|
cm |
Example
"IN"
ShopsPackageWeightUnitChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
GRAMS |
|
|
KILOGRAMS |
|
|
OUNCES |
|
|
POUNDS |
Example
"GRAMS"
ShopsShopWithdrawalHandlingModeChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
Automatic |
|
|
Always manual |
Example
"AUTOMATIC"
SignedUrl
Stage
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
systemStage - SystemStage
|
|
label - String!
|
|
notification - Notification
|
|
createShopifyReturn - Boolean!
|
ReturnZap will create the Shopify return when the return's stage is changed to this one. |
tags - [String!]!
|
Tags to apply to the Shopify Order when return is moved to this stage. |
order - Int!
|
Display order for the stage in the pipeline. Lower values appear first. |
uuid - ID!
|
|
behavior - SystemStage
|
|
archived - Boolean!
|
|
shipmentStatus - ShipmentStatus
|
Use shipment_statuses instead. |
shipmentStatuses - [ShipmentStatus]
|
Example
{
"id": 4,
"systemStage": "AUTOMATICALLY_APPROVED",
"label": "xyz789",
"notification": Notification,
"createShopifyReturn": false,
"tags": ["abc123"],
"order": 123,
"uuid": "4",
"behavior": "AUTOMATICALLY_APPROVED",
"archived": true,
"shipmentStatus": "UNKNOWN",
"shipmentStatuses": ["UNKNOWN"]
}
StageShipmentStatusType
Fields
| Field Name | Description |
|---|---|
stage - Stage
|
|
shipmentStatus - ShipmentStatus
|
Example
{"stage": Stage, "shipmentStatus": "UNKNOWN"}
StoreCreditIncentiveType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"ONCE_PER_ITEM"
StoreCreditType
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
created - DateTime
|
|
storeCreditType - AutomatedStoreCreditType
|
|
shopifyId - String!
|
Shopify id of the corresponding shopify object, dependent on store credit type |
code - String!
|
|
shopAmount - Decimal!
|
|
shopCurrency - String!
|
|
presentmentAmount - Decimal
|
|
presentmentCurrency - String!
|
|
returnItems - [ReturnItem!]!
|
|
amount - Decimal
|
Amount in shop currency (alias for shop_amount) |
currency - String
|
Currency code (alias for shop_currency) |
Example
{
"id": 4,
"created": "2007-12-03T10:15:30Z",
"storeCreditType": "DISCOUNT_CODE",
"shopifyId": "abc123",
"code": "abc123",
"shopAmount": Decimal,
"shopCurrency": "abc123",
"presentmentAmount": Decimal,
"presentmentCurrency": "xyz789",
"returnItems": [ReturnItem],
"amount": Decimal,
"currency": "xyz789"
}
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"xyz789"
SubscriptionFeature
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"ADJUST_RETURN_WINDOWS"
SubscriptionType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"FREE"
SuggestedRefundType
Fields
| Field Name | Description |
|---|---|
productsSet - MoneySet
|
|
taxesSet - MoneySet
|
|
subtotalSet - MoneySet
|
|
exchangesSet - MoneySet
|
|
normalizationAdjustmentSet - MoneySet
|
Price normalization adjustment. Positive = price increased (reduces cost), Negative = price decreased (increases cost) |
shippingSet - MoneySet
|
|
availableForRefundSet - MoneySet
|
Maximum refundable on the order; a gross ceiling, not the payable amount. Use netRefundPayableSet. |
suggestedRefundSet - MoneySet
|
Gross suggested refund before outstanding handling and restocking fees |
netRefundPayableSet - MoneySet
|
Amount payable after outstanding handling and restocking fees. Optional shipping reimbursement and store-credit incentives are not included. |
handlingFeeChargedSet - MoneySet
|
|
handlingFeeSuggestedSet - MoneySet
|
|
restockingFeeChargedSet - MoneySet
|
|
restockingFeeSuggestedSet - MoneySet
|
|
storeCreditIncentiveAmountSet - MoneySet
|
Example
{
"productsSet": MoneySet,
"taxesSet": MoneySet,
"subtotalSet": MoneySet,
"exchangesSet": MoneySet,
"normalizationAdjustmentSet": MoneySet,
"shippingSet": MoneySet,
"availableForRefundSet": MoneySet,
"suggestedRefundSet": MoneySet,
"netRefundPayableSet": MoneySet,
"handlingFeeChargedSet": MoneySet,
"handlingFeeSuggestedSet": MoneySet,
"restockingFeeChargedSet": MoneySet,
"restockingFeeSuggestedSet": MoneySet,
"storeCreditIncentiveAmountSet": MoneySet
}
SuggestionRefundType
Fields
| Field Name | Description |
|---|---|
taxesIncluded - Boolean
|
Whether taxes are included in the subtotal price of the order. |
currency - String
|
Currency code e.g. USD |
shopCurrency - String
|
Shop currency code e.g. USD |
discountedSubtotalAmount - Decimal
|
The sum of all the discounted prices of the line items being refunded. |
shopDiscountedSubtotalAmount - Decimal
|
The sum of all the discounted prices of the line items being refunded in Shop currency. |
totalTaxAmount - Decimal
|
Total tax amount on original order |
shopTotalTaxAmount - Decimal
|
Total tax amount on original order in shop currency |
totalTaxAmountForReturnedItems - Decimal
|
Total tax amount for the items being returned |
shopTotalTaxAmountForReturnedItems - Decimal
|
Total tax amount for the items being returned in shop currency |
shippingAmount - Decimal
|
Shipping amount to refund for the selected line items |
shopShippingAmount - Decimal
|
Shipping shop amount to refund for the selected line items |
shippingTaxAmount - Decimal
|
Shipping tax amount to refund for the selected line items |
shopTaxShippingAmount - Decimal
|
Shipping shop tax amount to refund for the selected line items |
shippingTaxAmountForReturnedItems - Decimal
|
Shipping tax amount for the items being returned |
shopShippingTaxAmountForReturnedItems - Decimal
|
Shipping shop tax amount for the items being returned in shop currency |
totalAmount - Decimal
|
Total amount to refund for the selected line items + shipping amount |
shopTotalAmount - Decimal
|
Total shop amount to refund for the selected line items + shipping amount |
suggestedAmountForReturnedItems - Decimal
|
Suggested refund for the returned items |
shopSuggestedAmountForReturnedItems - Decimal
|
Suggested refund for the returned items in shop currency |
Example
{
"taxesIncluded": true,
"currency": "xyz789",
"shopCurrency": "xyz789",
"discountedSubtotalAmount": Decimal,
"shopDiscountedSubtotalAmount": Decimal,
"totalTaxAmount": Decimal,
"shopTotalTaxAmount": Decimal,
"totalTaxAmountForReturnedItems": Decimal,
"shopTotalTaxAmountForReturnedItems": Decimal,
"shippingAmount": Decimal,
"shopShippingAmount": Decimal,
"shippingTaxAmount": Decimal,
"shopTaxShippingAmount": Decimal,
"shippingTaxAmountForReturnedItems": Decimal,
"shopShippingTaxAmountForReturnedItems": Decimal,
"totalAmount": Decimal,
"shopTotalAmount": Decimal,
"suggestedAmountForReturnedItems": Decimal,
"shopSuggestedAmountForReturnedItems": Decimal
}
SystemStage
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"AUTOMATICALLY_APPROVED"
TaxNumberInput
Fields
| Input Field | Description |
|---|---|
id - ID
|
|
taxNumberType - TaxNumberType!
|
|
country - String!
|
|
value - String!
|
Example
{
"id": "4",
"taxNumberType": "VAT",
"country": "xyz789",
"value": "xyz789"
}
TaxNumberOutput
Fields
| Field Name | Description |
|---|---|
id - UUID!
|
|
taxNumberType - TaxNumberType!
|
|
country - String!
|
|
value - String!
|
|
errors - [GQLErrorType]
|
Example
{
"id": "ed78471e-5d76-454a-a112-cbcd761bccda",
"taxNumberType": "VAT",
"country": "abc123",
"value": "xyz789",
"errors": [GQLErrorType]
}
TaxNumberType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"VAT"
TranslatedModel
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"RETURN_REASON"
UUID
Description
Leverages the internal Python implementation of UUID (uuid.UUID) to provide native UUID objects in fields, resolvers and input.
Example
"ed78471e-5d76-454a-a112-cbcd761bccda"
UpdateMissingReturnItems
UpdateReturn
WarehouseEvidence
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
kind - WmsWarehouseEvidenceKindChoices!
|
|
text - String
|
|
visibility - WmsWarehouseEvidenceVisibilityChoices!
|
|
capturedAt - DateTime
|
|
mediaUrl - String
|
Example
{
"id": "4",
"kind": "IMAGE",
"text": "abc123",
"visibility": "INTERNAL",
"capturedAt": "2007-12-03T10:15:30Z",
"mediaUrl": "abc123"
}
WarehouseEvidenceKind
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"IMAGE"
WarehouseMediaInput
Example
{
"kind": "IMAGE",
"storageKey": "abc123",
"mimeType": "xyz789",
"sizeBytes": 123,
"checksum": "abc123",
"capturedAt": "2007-12-03T10:15:30Z"
}
WarehouseNoteInput
WarehouseType
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
name - String!
|
|
isShopifyManaged - Boolean
|
|
address - AddressType
|
Example
{
"id": "4",
"name": "abc123",
"isShopifyManaged": true,
"address": AddressType
}
WebhookEventType
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"RETURN_CREATED"
WithdrawalManualResolutionReason
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"INTERCEPTED_OR_CANCELLED_OUTSIDE_RETURNZAP"
WmsReceiptItemDamageSourceChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
In transit |
|
|
By customer |
|
|
Unknown |
Example
"IN_TRANSIT"
WmsReceiptItemInspectionGradeChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
New |
|
|
Resellable after repack |
|
|
Damaged or used |
|
|
Unsellable |
|
|
Wrong item |
Example
"A"
WmsReceiptItemRecommendedDispositionChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
Restock |
|
|
Hold for customer service |
|
|
Repack or refurbish |
|
|
Donate, recycle, or dispose |
|
|
Return to vendor |
Example
"RESTOCK"
WmsReceiptItemStatusChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
Received |
|
|
Rejected |
|
|
Not received |
|
|
Partial |
|
|
Extra |
|
|
Superseded |
Example
"RECEIVED"
WmsReceiptStatusChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
Draft |
|
|
Finalized |
|
|
Superseded |
|
|
Voided |
Example
"DRAFT"
WmsWarehouseEvidenceKindChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
Image |
|
|
Video |
|
|
Note |
|
|
Document |
Example
"IMAGE"
WmsWarehouseEvidenceVisibilityChoices
Description
An enumeration.
Values
| Enum Value | Description |
|---|---|
|
|
Internal |
|
|
Merchant visible |
|
|
Customer visible |
Example
"INTERNAL"