AlmondTill/G3N API

deidentifyOrder

mutation · in the family Privacy and compliance

What it does

Erase the personal details on one guest sale, under its privacy request.

Erase the personal details on ONE guest sale, under its privacy request. The sale's customer block reads 'Erased customer': the email, phone, delivery address and buyer names go. The money, lines, tax, status, consent choices, platform and receipt token stay. Its invoice, return, store-credit, gift-card and fulfillment copies follow. Requires a PrivacyRequest of your group in verified or in_progress whose subjectOrderId IS this order. A request in received, a request naming another order, or a missing request refuses. A second call writes nothing (customer.deidentifiedAt). Then fulfill the request with the Order ref. Template class (privacy & compliance).

Before you call

A bearer session from an API key (see Authentication and key hygiene) or a signed-in user.

Capability area: Privacy and compliance — Tax and fiscal configuration, certificates and privacy requests.

Roles that may call it:

What happens

It rewrites the customer block, the ship-to and the buyer names; the money, lines, tax and status stay. The request must be verified or in progress and name this sale.

Careful

PERMANENT. There is no un-erase; a second call on the same sale writes nothing.

Arguments

NameTypeRequiredNotes
idID ID!yesThe id of the record.
revisionID ID!yesThe revision id you read on the record; the change is refused if an edit landed in the meantime.
privacyRequestIdID ID!yes
reasonStringno

Concurrency

Send the record’s current revision from your last read as revision. A stale revision is refused as CONFLICT/REVISION_STALE — read the record again and retry with the new value.

Returns

Order Order! — See Order.

Example request

graphql
mutation ExampleDeidentifyOrder($id: ID!, $revision: ID!, $privacyRequestId: ID!, $reason: String) {
  deidentifyOrder(id: $id, revision: $revision, privacyRequestId: $privacyRequestId, reason: $reason) {
    id
    sysId
    type
    caption
    status
    parentId
    rootId
    createdAt
    updatedAt
    revisionNum
    revision
    organizationId
    channel
    orderType
    validUntil
    termEndsAt
    convertedOrderId
    sourceDocumentId
    reorderOfOrderId
    logicalFacilityId
    currency
    exemptionCertificateId
    paymentState
    fulfillmentState
    recognitionState
    taxJurisdictionId
    subtotalMinor
    discountTotalMinor
    taxTotalMinor
    totalMinor
    fulfillmentFeeMinor
    fulfillmentFeeTaxMinor
    tenderedNetMinor
    tipTotalMinor
    paymentIds
    refundIds
    disputeIds
    invoiceIds
    couponIds
    sourcingSagaId
    commissionAgentUserIds
    affiliateId
  }
}

Variables:

json
{
  "id": "01900000-0000-7000-8000-18e782370000",
  "revision": "01900000-0000-7000-8000-b7960e180000",
  "privacyRequestId": "01900000-0000-7000-8000-22f6d6580000",
  "reason": "Correcting a miscount."
}

Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.

Example response

json
{
  "data": {
    "deidentifyOrder": {
      "id": "01900000-0000-7000-8000-18e782370000",
      "sysId": "SO-EXMP-0000-000F",
      "type": "Order",
      "caption": "Blue jeans",
      "status": "open",
      "parentId": "01900000-0000-7000-8000-10c08c590000",
      "rootId": "01900000-0000-7000-8000-a1295a650000",
      "createdAt": "2027-01-31T00:00:00.000Z",
      "updatedAt": "2027-01-31T00:00:00.000Z",
      "revisionNum": 1,
      "revision": "01900000-0000-7000-8000-53c6eea90000",
      "organizationId": "01900000-0000-7000-8000-1971e30a0000",
      "channel": "pos",
      "orderType": "sale",
      "validUntil": "<valid until>",
      "termEndsAt": "2027-01-31T00:00:00.000Z",
      "convertedOrderId": "01900000-0000-7000-8000-989e22cb0000",
      "sourceDocumentId": "01900000-0000-7000-8000-6c7148310000",
      "reorderOfOrderId": "01900000-0000-7000-8000-88fd3fab0000",
      "logicalFacilityId": "01900000-0000-7000-8000-10c08c590000",
      "currency": "USD",
      "exemptionCertificateId": "01900000-0000-7000-8000-b793be5b0000",
      "paymentState": "<payment state>",
      "fulfillmentState": "<fulfillment state>",
      "recognitionState": "<recognition state>",
      "taxJurisdictionId": "01900000-0000-7000-8000-33d0df4f0000",
      "subtotalMinor": 1250,
      "discountTotalMinor": 0,
      "taxTotalMinor": 0,
      "totalMinor": 1250,
      "fulfillmentFeeMinor": 1250,
      "fulfillmentFeeTaxMinor": 1250,
      "tenderedNetMinor": 1250,
      "tipTotalMinor": 0,
      "paymentIds": [
        "01900000-0000-7000-8000-20f641110000"
      ],
      "refundIds": [
        "01900000-0000-7000-8000-7900117f0000"
      ],
      "disputeIds": [
        "01900000-0000-7000-8000-c8f04d1b0000"
      ],
      "invoiceIds": [
        "01900000-0000-7000-8000-71ec87b00000"
      ],
      "couponIds": [
        "01900000-0000-7000-8000-d554478b0000"
      ],
      "sourcingSagaId": "01900000-0000-7000-8000-70f7ad270000",
      "commissionAgentUserIds": [
        "01900000-0000-7000-8000-8bb1c91e0000"
      ],
      "affiliateId": "01900000-0000-7000-8000-c6e63db40000"
    }
  },
  "extensions": {
    "at": {
      "callId": "01EXAMPLE-CALL-ID",
      "version": {
        "requested": {
          "name": "genesis",
          "number": 0
        },
        "serviced": {
          "name": "genesis",
          "number": 0
        }
      }
    }
  }
}

Errors this call can answer