{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/kdpcoloringbook-com/json-schema/kdpcoloringbook-com-topup-checkout-request-schema.json",
  "title": "TopupCheckoutRequest",
  "x-generated": "2026-11-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/kdpcoloringbook-com-openapi.json#/components/schemas/TopupCheckoutRequest",
  "properties": {
    "pack_id": {
      "type": "string",
      "title": "Pack Id",
      "description": "Internal pack_id (topup_50 | topup_200 | topup_500 | single_book | three_books)"
    },
    "ga_client_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ga Client Id",
      "description": "Browser GA4 client id; only sent when analytics consent let GA load"
    },
    "ga_session_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ga Session Id",
      "description": "Browser GA4 session id"
    },
    "ga_origin_channel": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ga Origin Channel",
      "description": "Visitor's first-party origin channel"
    },
    "ga_origin_source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ga Origin Source",
      "description": "Visitor's first-party origin source"
    },
    "ga_ad_user_data": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ga Ad User Data",
      "description": "Google ad-user-data consent the page declared to GA: granted | denied"
    },
    "ga_consent_basis": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ga Consent Basis",
      "description": "Why GA ran on the page: accepted (banner) | default (no choice, outside the opt-in regions)"
    },
    "revnu_anonymous_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Revnu Anonymous Id",
      "description": "Revnu tag's opaque visitor id; only set once analytics consent let it run"
    },
    "revnu_consent_state": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Revnu Consent State",
      "description": "Revnu tag consent at checkout: granted | denied | pending"
    },
    "revnu_google_ad_user_data": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Revnu Google Ad User Data",
      "description": "Google ad-user-data choice at checkout: granted | denied | unknown"
    },
    "revnu_google_ad_personalization": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Revnu Google Ad Personalization",
      "description": "Google ad-personalization choice at checkout: granted | denied | unknown"
    },
    "openai_oppref": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Openai Oppref",
      "description": "OpenAI Ads click reference (__oppref); only set when consent let the pixel run"
    },
    "openai_obref": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Openai Obref",
      "description": "OpenAI Ads browser reference (__obref); only set when consent let the pixel run"
    },
    "meta_fbp": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Meta Fbp",
      "description": "Meta pixel browser id (_fbp cookie); only set when consent let the pixel run"
    },
    "meta_fbc": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Meta Fbc",
      "description": "Meta ad click id (_fbc cookie); only set when consent let the pixel run"
    },
    "meta_user_agent": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Meta User Agent",
      "description": "Browser user agent, sent with the Meta cookies (required by its Conversions API)"
    },
    "tiktok_ttclid": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Tiktok Ttclid",
      "description": "TikTok ad click id (ttclid); only set when consent let the pixel run"
    },
    "tiktok_ttp": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Tiktok Ttp",
      "description": "TikTok pixel browser id (_ttp cookie); only set when consent let the pixel run"
    },
    "tiktok_user_agent": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Tiktok User Agent",
      "description": "Browser user agent, sent with the TikTok identifiers (a matching signal of its Events API)"
    }
  },
  "type": "object",
  "required": [
    "pack_id"
  ]
}