AlmondTill/G3N API

On this page

provisionStripeAccount

mutation · in the family Organization structure

What it does

Create your organization’s Stripe payments account — the money destination for card payments.

PROVISION the org's Stripe Connect account: creates the account (the Standard production shape — Stripe-hosted onboarding via createStripeOnboardingLink) and stamps stripeAccountRef/stripeChargesEnabled/stripeDetailsSubmitted in ONE revision. An already-provisioned org refuses CONFLICT/REFERENCED (the ref is IMMUTABLE); a dark org refuses CONFLICT/REF_STATE; a processor refusal maps VALIDATION/INVALID naming the reason (nothing stamped — the adapter's org-keyed idempotency makes a retry converge on the SAME account). testProgrammatic = the DVLP arm (sk_test-only, US-only): the API-completable TEST shape for AFK E2E — structurally dead at PROD LOCK. Requires the unrestricted capability + the CURRENT revision (OCC).

What happens

One connected account per organization; the reference is permanent once set.

Careful

Card money settles into THIS account — it is your organization’s money identity with the processor.

Who may call it

Capability area: Organization structure — Opening and closing organizations and facilities — the legal and physical structure of your group.

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.
testProgrammaticBooleannoNo further notes.

Returns

Organization Organization! — An organization — THE CONTAINER: a merchant's operating organization within its org group.

Example request

mutation ExampleProvisionStripeAccount($id: ID!, $revision: ID!, $testProgrammatic: Boolean) {
  provisionStripeAccount(id: $id, revision: $revision, testProgrammatic: $testProgrammatic) {
    id
    sysId
    type
    caption
    status
    parentId
    rootId
    createdAt
    updatedAt
    revisionNum
    revision
    jurisdiction
    code
    legalName
    brandName
    operatingAsName
    owners
    costCentre
    primaryPhysicalFacility
    defaultCurrency
    stripeAccountRef
    stripeChargesEnabled
    stripeDetailsSubmitted
  }
}

Variables:

{
  "id": "01900000-0000-7000-8000-37386ae00000",
  "revision": "01900000-0000-7000-8000-b7960e180000",
  "testProgrammatic": true
}

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

Example response

{
  "data": {
    "provisionStripeAccount": {
      "id": "01900000-0000-7000-8000-37386ae00000",
      "sysId": "OR-EXMP-0000-000F",
      "type": "Organization",
      "caption": "Blue jeans",
      "status": "<status>",
      "parentId": "01900000-0000-7000-8000-065235280000",
      "rootId": "01900000-0000-7000-8000-a093dd800000",
      "createdAt": "2027-01-31T00:00:00.000Z",
      "updatedAt": "2027-01-31T00:00:00.000Z",
      "revisionNum": 1,
      "revision": "01900000-0000-7000-8000-b7960e180000",
      "jurisdiction": "<jurisdiction>",
      "code": "BJ-001",
      "legalName": "Blue jeans",
      "brandName": "Blue jeans",
      "operatingAsName": "Blue jeans",
      "owners": [
        "01900000-0000-7000-8000-f89daae50000"
      ],
      "costCentre": "<cost centre>",
      "primaryPhysicalFacility": "01900000-0000-7000-8000-925e35910000",
      "defaultCurrency": "<default currency>",
      "stripeAccountRef": "<stripe account ref>",
      "stripeChargesEnabled": true,
      "stripeDetailsSubmitted": true
    }
  },
  "extensions": {
    "at": {
      "callId": "01EXAMPLE-CALL-ID",
      "version": {
        "requested": {
          "name": "genesis",
          "number": 0
        },
        "serviced": {
          "name": "genesis",
          "number": 0
        }
      }
    }
  }
}

Errors this call can answer

Used in