{
  "openapi": "3.1.0",
  "info": {
    "title": "Skerry",
    "version": "1.0.0",
    "description": "Every call but `/` sends `Authorization: Bearer sk_test_…` or `sk_live_…`. The environment is in the key, not in a header, so the same code runs against sandbox and live by swapping one value.\n\nSend `Idempotency-Key` on every POST. A repeat returns the first response rather than acting twice; a repeat with a different body is refused. This is how a retry after a timeout stays safe.\n\nFailures are `{ error: { code, message, detail, request_id } }`. Branch on `code`, never on `message` — messages are written for people and will change.\n\nEvery response carries `x-request-id`. Keep it on anything you log: it is what lets us find one call out of millions.\n\nList endpoints return newest first and take `?limit=` and `?cursor=`. A response carrying `next_cursor` has more."
  },
  "servers": [
    {
      "url": "https://api.skerry.xyz"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "sk_test_… | sk_live_…"
      }
    }
  },
  "tags": [
    {
      "name": "Getting started",
      "description": "The two calls worth making first. `/` needs no key and lists what exists; `/whoami` proves the key you were given works and says which environment it is in."
    },
    {
      "name": "Customers",
      "description": "A customer is a business you bring to the platform. It is verified in its own right, and everything else — wallets, accounts, payees — hangs off one."
    },
    {
      "name": "Custody",
      "description": "Where a customer's money sits. A wallet holds stablecoin; an account is fiat at a regulated institution; a card spends from one."
    },
    {
      "name": "Paying out",
      "description": "A payee is somewhere money can go; a payout sends it there. Quote first when the amount matters — a quote fixes the rate for a short window."
    },
    {
      "name": "Standing conversion",
      "description": "A standing order converts on a schedule rather than on a call, so a business can hold one currency and settle in another without writing a cron job."
    },
    {
      "name": "Events and webhooks",
      "description": "Most state changes arrive here rather than in a response, because verification and settlement finish long after the call that started them. Replay is deliberate: a missed delivery is recoverable without asking us."
    },
    {
      "name": "Rewards and reporting",
      "description": "What the platform pays on balances, and what this project has consumed against its plan."
    }
  ],
  "paths": {
    "/": {
      "get": {
        "tags": [
          "Getting started"
        ],
        "summary": "The index. Public, so a new developer can look before they have a key.",
        "operationId": "get_",
        "security": [],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "none"
      }
    },
    "/openapi.json": {
      "get": {
        "tags": [
          "Getting started"
        ],
        "summary": "This same reference as an OpenAPI 3.1 document, for Postman, a generator or an agent. Public.",
        "operationId": "get_openapi_json",
        "security": [],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "none"
      }
    },
    "/whoami": {
      "get": {
        "tags": [
          "Getting started"
        ],
        "summary": "The partner, project, mode and scopes behind the key you sent.",
        "operationId": "get_whoami",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "*"
      }
    },
    "/capabilities": {
      "get": {
        "tags": [
          "Getting started"
        ],
        "summary": "What this project may do right now, and what is merely coming.",
        "operationId": "get_capabilities",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "*"
      }
    },
    "/terms": {
      "post": {
        "tags": [
          "Getting started"
        ],
        "summary": "Accept the terms a customer must agree to before they can be verified.",
        "operationId": "post_terms",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ customer_id }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "customers:write"
      }
    },
    "/customers": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Onboard a business.",
        "operationId": "post_customers",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ legal_name, address, external_id? }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "customers:write"
      },
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "The businesses this project has onboarded.",
        "operationId": "get_customers",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "customers:read"
      }
    },
    "/customers/{id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "One business, with its verification state.",
        "operationId": "get_customers_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "customers:read"
      },
      "patch": {
        "tags": [
          "Customers"
        ],
        "summary": "Correct details on a business.",
        "operationId": "patch_customers_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ legal_name?, address?, external_id? }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "customers:write"
      }
    },
    "/customers/{id}/verification": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Start or re-run verification.",
        "operationId": "post_customers_id_verification",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "customers:write"
      },
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Where verification has got to.",
        "operationId": "get_customers_id_verification",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "customers:read"
      }
    },
    "/customers/{id}/wallets": {
      "post": {
        "tags": [
          "Custody"
        ],
        "summary": "Create a stablecoin wallet.",
        "operationId": "post_customers_id_wallets",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ chain, currency }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "wallets:write"
      },
      "get": {
        "tags": [
          "Custody"
        ],
        "summary": "The customer's wallets and balances.",
        "operationId": "get_customers_id_wallets",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "wallets:read"
      }
    },
    "/customers/{id}/accounts": {
      "post": {
        "tags": [
          "Custody"
        ],
        "summary": "Open a fiat account.",
        "operationId": "post_customers_id_accounts",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ currency, country }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "accounts:write"
      },
      "get": {
        "tags": [
          "Custody"
        ],
        "summary": "The customer's fiat accounts.",
        "operationId": "get_customers_id_accounts",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "accounts:read"
      }
    },
    "/customers/{id}/bank-link": {
      "post": {
        "tags": [
          "Custody"
        ],
        "summary": "Link an external bank account.",
        "operationId": "post_customers_id_bank_link",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ account_number, routing, country }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "accounts:write"
      }
    },
    "/customers/{id}/cards": {
      "post": {
        "tags": [
          "Custody"
        ],
        "summary": "Issue a card against an account.",
        "operationId": "post_customers_id_cards",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ account_id }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "cards:write"
      },
      "get": {
        "tags": [
          "Custody"
        ],
        "summary": "The customer's cards.",
        "operationId": "get_customers_id_cards",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "cards:read"
      }
    },
    "/customers/{id}/memos": {
      "post": {
        "tags": [
          "Custody"
        ],
        "summary": "A deposit memo, for chains where one shared address serves everybody.",
        "operationId": "post_customers_id_memos",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ chain, currency }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "accounts:write"
      },
      "get": {
        "tags": [
          "Custody"
        ],
        "summary": "The customer's deposit memos. A payer who omits the memo cannot be attributed.",
        "operationId": "get_customers_id_memos",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "accounts:read"
      }
    },
    "/customers/{id}/payees": {
      "post": {
        "tags": [
          "Paying out"
        ],
        "summary": "Add a destination for money.",
        "operationId": "post_customers_id_payees",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ name, rail, details }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "payees:write"
      },
      "get": {
        "tags": [
          "Paying out"
        ],
        "summary": "The customer's payees.",
        "operationId": "get_customers_id_payees",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "payees:read"
      }
    },
    "/payouts/quote": {
      "post": {
        "tags": [
          "Paying out"
        ],
        "summary": "What a payout would cost, at a rate held briefly.",
        "operationId": "post_payouts_quote",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ from, to, amount, payee_id }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "payouts:write"
      }
    },
    "/payouts": {
      "post": {
        "tags": [
          "Paying out"
        ],
        "summary": "Send money to a payee.",
        "operationId": "post_payouts",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ payee_id, amount, currency, quote_id? }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "payouts:write"
      },
      "get": {
        "tags": [
          "Paying out"
        ],
        "summary": "Payouts this project has made.",
        "operationId": "get_payouts",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "payouts:read"
      }
    },
    "/payouts/{id}": {
      "get": {
        "tags": [
          "Paying out"
        ],
        "summary": "One payout and where it has got to.",
        "operationId": "get_payouts_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "payouts:read"
      },
      "delete": {
        "tags": [
          "Paying out"
        ],
        "summary": "Cancel a payout that has not left yet.",
        "operationId": "delete_payouts_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "payouts:write"
      }
    },
    "/rates": {
      "get": {
        "tags": [
          "Paying out"
        ],
        "summary": "The rate between two currencies. `?from=&to=`",
        "operationId": "get_rates",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "*"
      }
    },
    "/customers/{id}/standing-orders": {
      "post": {
        "tags": [
          "Standing conversion"
        ],
        "summary": "Convert on a schedule.",
        "operationId": "post_customers_id_standing_orders",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ from, to, amount, cadence }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "standing_orders:write"
      },
      "get": {
        "tags": [
          "Standing conversion"
        ],
        "summary": "The customer's standing orders.",
        "operationId": "get_customers_id_standing_orders",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "standing_orders:read"
      }
    },
    "/events": {
      "get": {
        "tags": [
          "Events and webhooks"
        ],
        "summary": "What has happened, newest first.",
        "operationId": "get_events",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "events:read"
      }
    },
    "/events/{id}/replay": {
      "post": {
        "tags": [
          "Events and webhooks"
        ],
        "summary": "Deliver an event again, to every endpoint that wanted it.",
        "operationId": "post_events_id_replay",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "events:write"
      }
    },
    "/webhooks": {
      "post": {
        "tags": [
          "Events and webhooks"
        ],
        "summary": "Register an endpoint.",
        "operationId": "post_webhooks",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ url, event_types }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "webhooks:write"
      },
      "get": {
        "tags": [
          "Events and webhooks"
        ],
        "summary": "The endpoints this project has registered.",
        "operationId": "get_webhooks",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "webhooks:read"
      }
    },
    "/webhooks/{id}": {
      "patch": {
        "tags": [
          "Events and webhooks"
        ],
        "summary": "Change an endpoint's URL, events or status.",
        "operationId": "patch_webhooks_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ url?, event_types?, status? }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "webhooks:write"
      },
      "delete": {
        "tags": [
          "Events and webhooks"
        ],
        "summary": "Remove an endpoint.",
        "operationId": "delete_webhooks_id",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "webhooks:write"
      }
    },
    "/coins": {
      "get": {
        "tags": [
          "Rewards and reporting"
        ],
        "summary": "The stablecoins this project can hold.",
        "operationId": "get_coins",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "*"
      },
      "post": {
        "tags": [
          "Rewards and reporting"
        ],
        "summary": "Enable a coin for this project.",
        "operationId": "post_coins",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              },
              "example": "{ currency }"
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "*"
      }
    },
    "/coins/{currency}/rewards": {
      "get": {
        "tags": [
          "Rewards and reporting"
        ],
        "summary": "What a balance in this coin earns.",
        "operationId": "get_coins_currency_rewards",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "currency",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "*"
      }
    },
    "/usage": {
      "get": {
        "tags": [
          "Rewards and reporting"
        ],
        "summary": "Usage against the plan's limits — the same count a call is refused against.",
        "operationId": "get_usage",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "*"
      }
    },
    "/compliance-requests": {
      "get": {
        "tags": [
          "Rewards and reporting"
        ],
        "summary": "Anything compliance has asked a customer for.",
        "operationId": "get_compliance_requests",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success."
          },
          "400": {
            "description": "invalid_request — The body is wrong. `detail.field` names which part."
          },
          "401": {
            "description": "key_revoked — The key was revoked in the console. Issue another."
          },
          "402": {
            "description": "not_in_plan — The plan does not include this. Usage on the project page says where you stand."
          },
          "403": {
            "description": "partner_suspended — The account is suspended. Nothing will succeed until that is lifted."
          },
          "404": {
            "description": "not_found — No such object in this project — including one that belongs to somebody else."
          },
          "409": {
            "description": "capability_coming_soon — Built, not yet switched on for this project."
          },
          "500": {
            "description": "internal_error — Ours. Quote the `request_id` and we can find the call."
          },
          "502": {
            "description": "platform_error — A provider failed. Safe to retry with the same Idempotency-Key."
          }
        },
        "x-scope": "customers:read"
      }
    }
  }
}
