Civic · Schema

Civic Pass Customer API Schemas

JSON Schema definitions extracted from the Civic Pass Customer API (OpenAPI 3.0.3)

AI AgentsAuthenticationDigital IdentityIdentity VerificationKYCMCPOAuthSecuritySolanaWeb3Wallets
View JSON Schema on GitHub

JSON Schema

civic-pass-customer-api.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/civic/main/json-schema/civic-pass-customer-api.json",
  "title": "Civic Pass Customer API Schemas",
  "description": "JSON Schema definitions extracted from the Civic Pass Customer API (OpenAPI 3.0.3)",
  "definitions": {
    "Chain": {
      "type": "string",
      "description": "The blockchain programming model type",
      "enum": ["solana", "ethereum"]
    },
    "ChainNetwork": {
      "type": "string",
      "description": "A specific network within a blockchain type",
      "enum": [
        "mainnet-beta",
        "devnet",
        "mainnet",
        "sepolia",
        "polygonAmoy",
        "polygonMainnet",
        "polygonZKEVM",
        "polygonZKEVMTestnet",
        "optimismSepolia",
        "optimismMainnet",
        "arbitrumSepolia",
        "arbitrumMainnet",
        "avalancheCChain",
        "avalancheCChainFuji",
        "xdcMainnet",
        "xdcApothem",
        "fantomMainnet",
        "fantomTestnet",
        "baseSepolia",
        "baseMainnet",
        "bscMainnet",
        "bscTestnet",
        "xlayerMainnet",
        "xlayerTestnet",
        "unichainMainnet",
        "unichainSepolia",
        "sonicMainnet",
        "sonicTestnet"
      ]
    },
    "State": {
      "type": "string",
      "description": "The status of a Civic Pass",
      "enum": ["ACTIVE", "REVOKED", "FROZEN", "REQUESTED", "REJECTED"]
    },
    "Wallet": {
      "type": "object",
      "description": "The wallet address to issue a Civic Pass to",
      "properties": {
        "walletAddress": {
          "type": "string",
          "example": "0xEA5Ce8F9C81b681876DC713d33371c3E262A5888"
        }
      },
      "required": ["walletAddress"]
    },
    "UpdateState": {
      "type": "object",
      "description": "Payload to update a Civic Pass state or expiration",
      "properties": {
        "state": {
          "$ref": "#/definitions/State"
        },
        "expiryTimestamp": {
          "type": "number",
          "description": "The new expiration timestamp (Unix epoch seconds)",
          "example": 1677593295
        }
      }
    },
    "PassEvent": {
      "type": "object",
      "description": "An event recorded against a Civic Pass",
      "properties": {
        "eventType": {
          "type": "string",
          "enum": [
            "TOKEN_ISSUED_INITIATED",
            "TOKEN_ISSUED",
            "TOKEN_FROZEN_INITIATED",
            "TOKEN_FROZEN",
            "TOKEN_EXPIRY_CHANGED_INITIATED",
            "TOKEN_EXPIRY_CHANGED",
            "TOKEN_UNFROZEN_INITIATED",
            "TOKEN_UNFROZEN",
            "TOKEN_REVOKED_INITIATED",
            "TOKEN_REVOKED"
          ]
        },
        "timestamp": {
          "type": "number",
          "example": 1677588899
        },
        "transaction": {
          "type": "object",
          "description": "Associated blockchain transaction details",
          "properties": {
            "identifier": {
              "type": "string",
              "example": "4GWazp2AqMmxkE6GKCoYf9rbgFL6eDTuMx9z7719eccSeCEYu9hiCvmcr9cK6ioiTUGZzvcWf6iB7fd3YCg39PT6"
            },
            "status": {
              "type": "string",
              "enum": ["sent", "confirmed", "failed"]
            }
          },
          "required": ["identifier"]
        }
      },
      "required": ["eventType", "timestamp"]
    },
    "PassResponse": {
      "type": "object",
      "description": "Full details of a Civic Pass",
      "properties": {
        "id": {
          "type": "string",
          "description": "A unique, Civic-specific identifier for the Civic Pass",
          "example": "63fdf96c58f1ae40a26a89be"
        },
        "chain": {
          "type": "object",
          "properties": {
            "type": {
              "$ref": "#/definitions/Chain"
            },
            "network": {
              "$ref": "#/definitions/ChainNetwork"
            }
          },
          "required": ["type", "network"]
        },
        "gatekeeperNetwork": {
          "type": "string",
          "description": "The address of the Gatekeeper Network this Civic Pass was issued for",
          "example": "tgnuXXNMDLK8dy7Xm1TdeGyc95MDym4bvAQCwcW21Bf"
        },
        "walletAddress": {
          "type": "string",
          "description": "The wallet address that the Civic Pass is issued for",
          "example": "4v4PL5bMZXXvQB3mvWPXLvqfJpjJmPRnPrmENnUESQQQ"
        },
        "state": {
          "type": "string",
          "enum": ["ACTIVE", "FROZEN", "REVOKED", "REQUESTED"]
        },
        "onChainState": {
          "type": "string",
          "enum": ["ACTIVE", "FROZEN", "REVOKED"]
        },
        "events": {
          "type": "array",
          "description": "Any action on a Civic Pass results in an event appended to this list",
          "items": {
            "$ref": "#/definitions/PassEvent"
          }
        }
      },
      "required": ["chain", "gatekeeperNetwork", "walletAddress", "events", "id", "onChainState", "state"]
    },
    "GetPiiResponse": {
      "type": "object",
      "description": "User PII data returned after verification",
      "properties": {
        "status": {
          "type": "string",
          "description": "The status of this PII request",
          "enum": [
            "awaiting-user",
            "user-acknowledged",
            "verification-success",
            "verification-failed",
            "user-cancelled",
            "partner-pass",
            "partner-fail"
          ]
        },
        "verifiedInformation": {
          "type": "object",
          "description": "All user PII that Civic could verify; fields vary by pass configuration",
          "example": {
            "email": "[email protected]",
            "documentType": "passport",
            "issueCountry": "GBR",
            "name": "First Middle Last",
            "dateOfBirth": "1990-01-01",
            "dateOfExpiry": "2035-05-28",
            "documentNumber": "0123456789",
            "address": "0x1234abcd"
          }
        },
        "links": {
          "type": "array",
          "description": "URLs for evidence items collected from the user",
          "items": {
            "type": "object",
            "properties": {
              "rel": {
                "type": "string",
                "example": "idDocumentFront"
              },
              "href": {
                "type": "string",
                "example": "https://api.civic.com/partner/piirequest/9a7a77af-a58e-4e54-83c9-5daa96ccbf11"
              }
            }
          }
        }
      }
    },
    "ListPassRequest": {
      "type": "object",
      "description": "Request body for listing Civic Passes with optional pagination and filtering",
      "properties": {
        "limit": {
          "type": "number",
          "default": 20,
          "description": "Number of records to return per page"
        },
        "skip": {
          "type": "number",
          "default": 0,
          "description": "Number of records to skip for pagination"
        },
        "filter": {
          "type": "object",
          "properties": {
            "state": {
              "$ref": "#/definitions/State"
            },
            "walletAddress": {
              "type": "string",
              "example": "4v4PL5bMZXXvQB3mvWPXLvqfJpjJmPRnPrmENnUESQQQ"
            }
          }
        }
      }
    }
  }
}