{
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "https://api.rayt.io",
      "description": "Production server (uses live data)"
    },
    {
      "url": "https://api-sandbox.rayt.io",
      "description": "Sandbox server (uses test data)"
    }
  ],
  "info": {
    "contact": {
      "email": "cameron.beattie@rayt.io",
      "name": "Cameron Beattie",
      "url": "https://www.rayt.io"
    },
    "description": "The Raytio API allows users, organisations, profiles, profile objects, profile object permissions and relationships to be created, updated, read and deleted.",
    "version": "0.1.0",
    "title": "Raytio APIs",
    "x-logo": {
      "url": "raytio-logo-main.svg",
      "altText": "Raytio logo image",
      "href": "https://www.rayt.io"
    }
  },
  "tags": [
    {
      "name": "oauth",
      "description": "Allows Authentication for Raytio APIs"
    },
    {
      "name": "org",
      "description": "Raytio Organisation APIs"
    },
    {
      "name": "graph",
      "description": "Raytio Graph APIs"
    },
    {
      "name": "profile",
      "description": "Raytio Profile APIs"
    },
    {
      "name": "external",
      "description": "Raytio External access APIs"
    },
    {
      "name": "centrix",
      "description": "Provides a wrapper around the Centrix Consumer Information Products."
    },
    {
      "name": "gandalf",
      "description": "Provides a wrapper around the Gandalf Decision Engine"
    },
    {
      "name": "datazoo",
      "description": "Provides a wrapper around the Datazoo APIs"
    }
  ],
  "paths": {
    "/graph/{version}/profile_object": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "addProfileObject",
        "summary": "Add  profile object",
        "description": "Create new profile object(s). Will link the new profile object(s) with the current user via an 'Owns' relationship.\n",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "required": true,
            "description": "The API version",
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/profile_object_create_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/profile_object_create_request"
              }
            }
          },
          "description": "Profile object details",
          "required": true
        }
      },
      "put": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "updateProfileObject",
        "summary": "Update profile object",
        "description": "Update a profile object. ",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/profile_object_create_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/profile_object_update_request"
              }
            }
          },
          "description": "Profile object details",
          "required": true
        }
      }
    },
    "/graph/{version}/profile_object/read": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getProfileObjects",
        "summary": "Get profile objects",
        "description": "Read profile objects. Returns nodes based on node ids (n_id) or based on current user's permissions.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/profile_object_parent"
                    },
                    {
                      "$ref": "#/components/schemas/relationship_object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/profile_objects_read_request"
              }
            }
          },
          "description": "Profile object details",
          "required": true
        }
      }
    },
    "/graph/{version}/profile_object/{n_id}": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getProfileObjectById",
        "summary": "Get profile object by Id",
        "description": "Retrieve a specified profile object.\n",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "n_id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The identifier of the profile object."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/profile_object_create_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/graph/{version}/schema": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "addSchema",
        "summary": "Add schema",
        "description": "Create a new schema.\n",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/schema_create_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/schema_create_request"
                  },
                  {
                    "$ref": "#/components/schemas/schema_draft_07"
                  }
                ]
              }
            }
          },
          "description": "Profile object details",
          "required": true
        }
      }
    },
    "/graph/{version}/schema/{schema_type}/{schema_ID}": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getSchemaById",
        "summary": "Get schema by Id",
        "description": "Read an existing schema.\n",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "schema_ID",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The identifier of the schema object."
          },
          {
            "in": "path",
            "name": "schema_type",
            "required": true,
            "schema": {
              "type": "string",
              "enum": ["os", "ps", "us", "ss"]
            },
            "description": "The type of the schema. os: organisation schema; ps: private schema; us: user schema; ss: system schema"
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/schema_draft_07"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "validateJSON",
        "summary": "Validate JSON object",
        "description": "Validate a JSON object against a schema.\n",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "schema_ID",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The identifier of the schema object."
          },
          {
            "in": "path",
            "name": "schema_type",
            "required": true,
            "schema": {
              "type": "string",
              "enum": ["os", "ps", "us", "ss"]
            },
            "description": "The type of the schema."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/schema_validate_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/schema_validate_request"
              }
            }
          },
          "description": "Schema object",
          "required": true
        }
      },
      "put": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "updateSchema",
        "summary": "Update schema",
        "description": "Update an existing schema.\n",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "schema_ID",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The identifier of the schema object."
          },
          {
            "in": "path",
            "name": "schema_type",
            "required": true,
            "schema": {
              "type": "string",
              "enum": ["os", "ps", "us", "ss"]
            },
            "description": "The type of the schema."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/schema_create_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/schema_create_request"
              }
            }
          },
          "description": "Schema object",
          "required": true
        }
      }
    },
    "/graph/{version}/permission": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "addPermission",
        "summary": "Add permission",
        "description": "Create a permission for a user or group on a profile object. The current user must have IS_OWNER or ADMINS permission relationship with the profile object or the current user must belong to a group which has ADMINS permission on the profile object. Note: this cannot be used to create an IS_OWNER permission relationship; instead use the /owner endpoint to either transfer ownership or link the user to an unowned profile object.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/profile_object_parent"
                    },
                    {
                      "$ref": "#/components/schemas/relationship_object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user_permissions_request_parent"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      }
    },
    "/graph/{version}/permission/{p_id}": {
      "delete": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "deletePermission",
        "summary": "Delete permission",
        "description": "Delete a permission for a user or group on a profile object. The current user must have an IS_OWNER or ADMINS permission relationship with the profile object or the current user must belong to a group which has the ADMINS permission on the profile object. Note: this cannot be used to delete an IS_OWNER permission relationship; instead use the /owner endpoint to unlink the user from the profile object.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "p_id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The unique identifier (p_id) of the permission relationship to be deleted."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/graph/{version}/group": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "addGroup",
        "summary": "Add group",
        "description": "Create a group.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/profile_object_user_group_parent"
                    },
                    {
                      "$ref": "#/components/schemas/relationship_object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/group_request"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      }
    },
    "/graph/{version}/group/{g_id}": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getGroupById",
        "summary": "Get group by Id",
        "description": "List all of the users belonging to the group.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "g_id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The unique identifier (g_id) of the group."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "updateGroupOwner",
        "summary": "Update group owner",
        "description": "Transfer ownership of a group to another user.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "g_id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The unique identifier (g_id) of the group."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/profile_object_user_group_parent"
                    },
                    {
                      "$ref": "#/components/schemas/relationship_object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user_owner_request"
              }
            }
          }
        }
      },
      "delete": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "deleteGroup",
        "summary": "Delete group",
        "description": "Delete a group. Note: there are not any checks to see if any existing group permissions exist, the group and all associated will be deleted.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "g_id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The unique identifier (g_id) of the group to be deleted."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/graph/{version}/group/{g_id}/users": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "addGroupMembers",
        "summary": "Add group members",
        "description": "Add users to the group.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "g_id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The unique identifier (g_id) of the group."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/profile_object_user_group_parent"
                    },
                    {
                      "$ref": "#/components/schemas/relationship_object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user_owner_request"
              }
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "deleteGroupMembers",
        "summary": "Delete group members",
        "description": "Remove a user from a group.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "g_id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The unique identifier (g_id) of the group."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/profile_object_user_group_parent"
                    },
                    {
                      "$ref": "#/components/schemas/relationship_object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user_owner_request"
              }
            }
          }
        }
      }
    },
    "/graph/{version}/owner/{n_id}": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "addProfileObjectOwner",
        "summary": "Add profile object owner",
        "description": "Create the IS_OWNER permission for the current user on the specified profile object. Note: the profile object must be unowned.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "n_id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The unique identifier (n_id) of the node to be owned."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/profile_object_parent"
                    },
                    {
                      "$ref": "#/components/schemas/relationship_object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {}
            }
          }
        }
      },
      "put": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "transferProfileObjectOwner",
        "summary": "Transfer profile object owner",
        "description": "Assign the IS_OWNER permission for the current user on the specified profile object to the specified user.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "n_id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The unique identifier (n_id) of the node on which ownership is to be changed."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/profile_object_parent"
                    },
                    {
                      "$ref": "#/components/schemas/relationship_object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user_owner_request"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      },
      "delete": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "deleteProfileObjectOwner",
        "summary": "Delete profile object owner",
        "description": "Delete the IS_OWNER permission for the current user on the specified profile object.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "n_id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The unique identifier (n_id) of the profile object that the IS_OWNER permission relationship is to be deleted from."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/graph/{version}/relationship": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "addRelationship",
        "summary": "Create relationship",
        "description": "Create a relationship between two profile objects. The current user must have IS_OWNER or ADMINS permission relationship with the profile object or the current user must belong to a group which has ADMINS permission on the profile object.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/profile_object_parent"
                    },
                    {
                      "$ref": "#/components/schemas/relationship_object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/relationship_request"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      }
    },
    "/graph/{version}/relationship/delete": {
      "put": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "deleteRelationship",
        "summary": "Delete relationship",
        "description": "Delete a relationship between two profile objects. The current user must have IS_OWNER or ADMINS permission relationship with the profile object or the current user must belong to a group which has ADMINS permission on the profile object.",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/relationship_delete_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/relationship_request"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      }
    },
    "/graph/{version}/query": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "queryGraph",
        "summary": "Perform a Cypher query on the graph database",
        "description": "Query the graph database. Queries must be valid [Cypher](https://en.wikipedia.org/wiki/Cypher_Query_Language)",
        "tags": ["graph"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/graph_query_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/graph_query_request"
              }
            }
          },
          "description": "Query request details",
          "required": true
        }
      }
    },
    "/external/{version}/app": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "addApplication",
        "description": "Create an access application",
        "tags": ["external"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/application_create_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/application_create_request"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      }
    },
    "/profile/{version}/oauth2": {
      "get": {
        "operationId": "getProfileRequestKey",
        "description": "Get an oauth2 request key",
        "tags": ["profile"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "query",
            "name": "client_id",
            "description": "The application consumer key",
            "required": true,
            "schema": {
              "type": "string",
              "example": "7243067dghlkertyq4t"
            }
          },
          {
            "in": "query",
            "name": "scopes",
            "description": "The scopes being requested",
            "required": true,
            "schema": {
              "type": "string",
              "example": "profile-oauth/read_profile"
            }
          },
          {
            "in": "query",
            "name": "uri",
            "description": "The callback URI",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://api.rayt.io/callback"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/profile_request_key_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "getProfileAccessToken",
        "description": "Get an oauth2 access token",
        "tags": ["profile"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/profile_access_token_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/org/{version}": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getOrgs",
        "summary": "List organisations",
        "description": "Retrieves the details of all organisations that the authenticated user can access.\n",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_read_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "addOrg",
        "summary": "Create an organisation",
        "description": "Creates a new organisation object.\n",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_create_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/org_request"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      }
    },
    "/org/{version}/{orgID}": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getOrgById",
        "summary": "Retrieve an organisation",
        "description": "Retrieves the details of an existing organisation. You need only supply the unique organisation identifier that was returned upon organisation creation.\n",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation to be retrieved."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "updateOrg",
        "summary": "Update an organisation",
        "description": "Updates an existing organisation.\n",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation to be updated."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/org_request"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      }
    },
    "/org/{version}/{orgID}/invite": {
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "inviteOrgMember",
        "summary": "Invite Organisation user",
        "description": "Invite an existing or new user to become a member of an organisation.\n",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_invite_response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/org_invite_request"
              }
            }
          },
          "description": "Organisation invite request details",
          "required": true
        }
      }
    },
    "/org/{version}/{orgID}/verify": {
      "post": {
        "operationId": "verifyOrgMember",
        "summary": "Verify organisation user",
        "description": "Validates the verification code and adds an invited user to the organisation.\n",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_verify_response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/org_verify_request"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      }
    },
    "/org/{version}/plans": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "listOrgPlans",
        "summary": "List plans",
        "description": "List all available billing plans.\n",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "query",
            "name": "active",
            "description": "Only return plans that are active or inactive (e.g., pass false to list all inactive products)",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "created",
            "description": "A filter on the list based on the object created field. The value must be an integer Unix timestamp",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "ending_before",
            "description": "A cursor for use in pagination. ending_before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_bar, your subsequent call can include ending_before=obj_bar in order to fetch the previous page of the list",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "product",
            "description": "Only return plans for the given product",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "starting_after",
            "description": "A cursor for use in pagination. starting_after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include starting_after=obj_foo in order to fetch the next page of the list",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_plans_schema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/org/{version}/plans/{planID}": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getOrgPlanById",
        "summary": "Retrieve a plan",
        "description": "Retrieves a specific billing plan.\n",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "planID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "plan_EzSkxTLvWeHFKa"
            },
            "description": "The identifier of the plan to be retrieved."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_plan_schema"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/org/{version}/{orgID}/subscriptions": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "listOrgSubscriptions",
        "summary": "List subscriptions",
        "description": "By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled\n",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation."
          },
          {
            "in": "query",
            "name": "billing",
            "description": "The billing mode of the subscriptions to retrieve. Either charge_automatically or send_invoice",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "created",
            "description": "A filter on the list based on the object created field. The value must be an integer Unix timestamp",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "current_period_end",
            "description": "A filter on the list based on the object current_period_end field. The value must be an integer Unix timestamp",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "current_period_start",
            "description": "A filter on the list based on the object current_period_start field. The value must be an integer Unix timestamp",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "description": "The ID of the customer whose subscriptions will be retrieved",
            "required": false,
            "schema": {
              "type": "string"
            }
          },

          {
            "in": "query",
            "name": "ending_before",
            "description": "A cursor for use in pagination. ending_before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_bar, your subsequent call can include ending_before=obj_bar in order to fetch the previous page of the list",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "plan",
            "description": "Only return plans for the given plan",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "starting_after",
            "description": "A cursor for use in pagination. starting_after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include starting_after=obj_foo in order to fetch the next page of the list",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "description": "The status of the subscriptions to retrieve. One of: incomplete, incomplete_expired, trialing, active, past_due, unpaid, canceled, or all. Passing in a value of canceled will return all canceled subscriptions, including those belonging to deleted customers. Passing in a value of all will return subscriptions of all statuses",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_subscription_schema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "createOrgSubscriptions",
        "summary": "Create a subscription",
        "description": "Creates a new subscription on an existing customer",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_subscription_schema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/org_subs_cu"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      }
    },
    "/org/{version}/{orgID}/subscriptions/{subscriptionID}": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getOrgSubscriptionById",
        "summary": "Retrieve a subscription",
        "description": "Retrieves a specific subscription.\n",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation."
          },
          {
            "in": "path",
            "name": "subscriptionID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "sub_8epEF0PuRhmltU"
            },
            "description": "The identifier of the subscription to be retrieved."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_subscription_schema"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      },
      "post": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "updateOrgSubscriptions",
        "summary": "Update a subscription",
        "description": "Updates an existing subscription to match the specified parameters. When changing plans or quantities, we will prorate the price we charge next month to make up for any price changes",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation."
          },
          {
            "in": "path",
            "name": "subscriptionID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "sub_8epEF0PuRhmltU"
            },
            "description": "The identifier of the subscription to be retrieved."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_subscription_schema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/org_subs_cu"
              }
            }
          },
          "description": "Organisation request details",
          "required": true
        }
      },
      "delete": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "cancelOrgSubscription",
        "summary": "Cancel a subscription",
        "description": "Cancels a customer’s subscription immediately. The customer will not be charged again for the subscription",
        "tags": ["org"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation."
          },
          {
            "in": "path",
            "name": "subscriptionID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "sub_8epEF0PuRhmltU"
            },
            "description": "The identifier of the subscription to be retrieved."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_subscription_schema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "description": "Consumer details for the subject consumer",
          "required": true
        }
      }
    },
    "/w-nz-datazoo/{version}/verify": {
      "post": {
        "operationId": "datazooVerify",
        "description": "This verifies various data such as a citizenship, name, address and passport details depending on the type of service requested\n",
        "tags": ["datazoo"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Verification response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/DZ_driversLicence_Parent_Response"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_passport_Parent_Response"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_citizenship_Parent_Response"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_birthCertificate_Parent_Response"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_mvrnad_Parent_Response"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_mvrDoB_Parent_Response"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_mvrAll_Parent_Response"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Yellow_Pages_Parent_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Vehicle_Parent_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_dznad_Parent_Response"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_NAD_Credit_Bureau_Parent_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_NAD_Companies_Office_Parent_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_driversLicence_Parent_Response"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request message",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseAuthentication"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/DZ_NZTA_DL_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_DIA-Passport_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_DIA-Cit_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_DIA-Birth_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_MVRVR-NAD_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_MVRVR-DOB_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_MVRVR-ALL_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_Yellow_Pages_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_Vehicle_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_NAD_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_NAD_Credit_Bureau_Parent_Schema"
                  },
                  {
                    "$ref": "#/components/schemas/DZ_NAD_Companies_Office_Parent_Schema"
                  }
                ]
              }
            }
          },
          "description": "Consumer details for the subject consumer",
          "required": true
        }
      }
    },
    "/org/{version}/{orgID}/invoices": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getInvoices",
        "summary": "List invoices",
        "tags": ["org"],
        "description": "<p>You can list all invoices, or list the invoices for a specific customer. The invoices are returned sorted by creation date, with the most recently created invoices appearing first.</p>",
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation."
          },
          {
            "description": "The billing mode of the invoice to retrieve. Either `charge_automatically` or `send_invoice`.",
            "in": "query",
            "name": "billing",
            "required": false,
            "schema": {
              "enum": ["charge_automatically", "send_invoice"],
              "maxLength": 5000,
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "created",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "properties": {
                    "gt": {
                      "type": "integer"
                    },
                    "gte": {
                      "type": "integer"
                    },
                    "lt": {
                      "type": "integer"
                    },
                    "lte": {
                      "type": "integer"
                    }
                  },
                  "title": "range_query_specs",
                  "type": "object"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "style": "deepObject"
          },
          {
            "explode": true,
            "in": "query",
            "name": "due_date",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "properties": {
                    "gt": {
                      "type": "integer"
                    },
                    "gte": {
                      "type": "integer"
                    },
                    "lt": {
                      "type": "integer"
                    },
                    "lte": {
                      "type": "integer"
                    }
                  },
                  "title": "range_query_specs",
                  "type": "object"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "style": "deepObject"
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "maxLength": 5000,
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "Specifies which fields in the response should be expanded.",
            "explode": true,
            "in": "query",
            "name": "expand",
            "required": false,
            "schema": {
              "items": {
                "maxLength": 5000,
                "type": "string"
              },
              "type": "array"
            },
            "style": "deepObject"
          },
          {
            "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "maxLength": 5000,
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "Only return invoices for the subscription specified by this subscription ID.",
            "in": "query",
            "name": "subscription",
            "required": false,
            "schema": {
              "maxLength": 5000,
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_invoice_schema"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/org/{version}/{orgID}/invoices/{invoiceID}": {
      "get": {
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "operationId": "getOrgInvoiceById",
        "summary": "Retrieve an invoice",
        "description": "<p>Retrieves the invoice with the given ID.</p>",
        "tags": ["org"],
        "parameters": [
          {
            "description": "Specifies which fields in the response should be expanded.",
            "explode": true,
            "in": "query",
            "name": "expand",
            "required": false,
            "schema": {
              "items": {
                "maxLength": 5000,
                "type": "string"
              },
              "type": "array"
            },
            "style": "deepObject"
          },          
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          },
          {
            "in": "path",
            "name": "orgID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
            },
            "description": "The identifier of the organisation."
          },
          {
            "in": "path",
            "name": "invoiceID",
            "required": true,
            "schema": {
              "type": "string",
              "example": "in_19t4je2eZvKYlo2C6rE8DrV4"
            },
            "description": "The identifier of the desired invoice."
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/org_invoice_schema"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },    
    "/oauth/{version}/token": {
      "post": {
        "operationId": "generateToken",
        "description": "To make API requests you will need an Authentication Token. Authentication Tokens are temporary \"security codes\" (similar to session cookies) that allow the system to identify who you are, and that you are allowed to do what you are requesting. \nFor Authentication we use JSON Web Tokens (JWTs). JWTs need to be passed via an Authorization header to all of the Raytio endpoints. This token endpoint returns three types of authentication tokens. \nThe identity_token must be passed as a Bearer token to the appropriate endpoint.  \nThe refresh_token can be used to return updated identity_token and access_token values.\n",
        "tags": ["oauth"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/token_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/token_request"
              }
            }
          },
          "description": "Username and Password details for authentication",
          "required": true
        }
      }
    },
    "/oauth/{version}/signup": {
      "post": {
        "operationId": "addUser",
        "description": "The signup endpoint allows the creation of a new username and password. The user must be verified before it can be used.\n",
        "tags": ["oauth"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/signup_response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/signup_request"
              }
            }
          },
          "description": "Username and Password details for signup",
          "required": true
        }
      }
    },
    "/oauth/{version}/verify": {
      "post": {
        "operationId": "verifyUser",
        "description": "The verify endpoint validates a user's email address by requiring that the code sent to that email address has been verified before the user is activated.\nThe confirmation code expires within 24 hours of being generated.\nIf the confirmation code is provided incorrectly then a new code will be generated and emailed to the user.\n",
        "tags": ["oauth"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/verify_response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/verify_request"
              }
            }
          },
          "description": "Username and Confirmation details for verify",
          "required": true
        }
      }
    },
    "/oauth/{version}/password-reset": {
      "post": {
        "operationId": "resetPassword",
        "description": "The password-reset endpoint will allow a user's password to be reset. A confirmation code will be emailed to the user which must then be provided, together with the new password, to the password-confirm endpoint.\nThe confirmation code expires within 24 hours of being generated.\nOnce a password reset request has been made, it will not be possible to authenticate until the new password has been confirmed.\n",
        "tags": ["oauth"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/password-reset_response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/password-reset_request"
              }
            }
          },
          "description": "Username details for password-reset",
          "required": true
        }
      }
    },
    "/oauth/{version}/password-confirm": {
      "post": {
        "operationId": "confirmPassword",
        "description": "The password-confirm endpoint updates a user's password after a request has been made to password-reset. The confirmation code which has been emailed to the user must be provided, together with the new password.\n",
        "tags": ["oauth"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/password-confirm_response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/password-confirm_request"
              }
            }
          },
          "description": "Username details for password-confirm",
          "required": true
        }
      }
    },
    "/oauth/{version}/password-change": {
      "post": {
        "operationId": "updatePassword",
        "description": "The password-change endpoint allows an authenticated user to change their password. The existing password must be provided, together with the new password.\n",
        "tags": ["oauth"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/password-change_response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/password-change_request"
              }
            }
          },
          "description": "Request details for password-change",
          "required": true
        }
      }
    },
    "/w-nz-centrix/{version}/centrix-comprehensive-and-adverse-report": {
      "post": {
        "operationId": "centrix-comprehensive-and-adverse-report",
        "description": "This returns a consumer credit report provided by Centrix. This product will return credit report elements including known bureau demographic data for the subject such as known name, known current and past addresses, date of birth, along with file activity, company affiliations and any adverse credit data held on record by Centrix.\nFor those Subscribers that participate in Comprehensive Reporting additional information is provided including payment history information associated with accounts reported by Comprehensive Reporting participants. \n",
        "tags": ["centrix"],
        "parameters": [
          {
            "in": "path",
            "name": "version",
            "description": "The API version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/api_version"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Consumer comprehensive and adverse report data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComprehensiveAndAdverseReportResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request message",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseAuthentication"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsumerReportRequest"
              }
            }
          },
          "description": "Consumer details for the subject consumer",
          "required": true
        }
      }
    }
  },
  "components": {
    "schemas": {
      "server_type": {
        "description": "The API type e.g. development, test production.",
        "type": "string",
        "enum": ["dev", "prod"]
      },
      "api_version": {
        "description": "The API version",
        "type": "string",
        "enum": ["v1"]
      },
      "profile_object_create_request": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "schema": {
              "description": "The name of the schema to allocate to the profile object. The properties will be validated against this schema.",
              "type": "string",
              "example": "os_person"
            },
            "labels": {
              "description": "The object node type.",
              "type": "array",
              "enum": ["Company", "Person"],
              "items": {
                "type": "string",
                "example": "Person"
              }
            },
            "properties": {
              "description": "The profile object. The object content depends on the profile object (schema) type.",
              "type": "object"
            }
          }
        }
      },
      "profile_objects_read_request": {
        "type": "object",
        "properties": {
          "profile_objects": {
            "description": "An array of profile objects to match.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "n_id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                }
              }
            }
          },
          "permissions": {
            "description": "The permissions to match.",
            "type": "array",
            "enum": ["IS_OWNER", "ADMINS", "EDITS", "VIEWS"],
            "items": {
              "type": "string",
              "example": ["IS_OWNER"]
            }
          }
        }
      },
      "profile_object_update_request": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "n_id": {
              "description": "The id of the profile object.",
              "type": "string",
              "example": "6bf57004-1afe-4edf-9b6d-ede97b6a59fc"
            },
            "labels": {
              "description": "The object node type.",
              "type": "array",
              "items": {
                "type": "string",
                "example": "Person"
              }
            },
            "params": {
              "description": "The profile object. Depends on the profile type.",
              "type": "object"
            }
          }
        }
      },
      "profile_object_create_response": {
        "properties": {
          "n_id": {
            "description": "The id of the profile object.",
            "type": "string",
            "example": "6bf57004-1afe-4edf-9b6d-ede97b6a59fc"
          },
          "labels": {
            "description": "The labels associated with this profile object.",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": ["animal", "vegetable"]
          },
          "properties": {
            "description": "The properties of the profile object.",
            "type": "object",
            "properties": {}
          }
        },
        "type": "object"
      },
      "profile_object_parent": {
        "type": "object",
        "properties": {
          "profile_objects": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/profile_object"
                },
                {
                  "$ref": "#/components/schemas/profile_object_user"
                }
              ]
            }
          }
        }
      },
      "profile_object_user_group_parent": {
        "type": "object",
        "properties": {
          "profile_objects": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/profile_object_group"
                },
                {
                  "$ref": "#/components/schemas/profile_object_user"
                }
              ]
            }
          }
        }
      },
      "profile_object": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The internal id of the profile object. May change over time",
            "type": "integer"
          },
          "n_id": {
            "description": "The id of the profile object.",
            "type": "string",
            "example": "6bf57004-1afe-4edf-9b6d-ede97b6a59fc"
          },
          "properties": {
            "type": "object"
          },
          "labels": {
            "type": "array",
            "items": {}
          }
        }
      },
      "profile_object_user": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The internal id of the profile object. May change over time",
            "type": "integer"
          },
          "u_id": {
            "description": "The id of the profile object.",
            "type": "string",
            "example": "6bf57004-1afe-4edf-9b6d-ede97b6a59fc"
          },
          "labels": {
            "type": "array",
            "items": {
              "enum": ["User"]
            },
            "example": ["User"]
          }
        }
      },
      "profile_object_group": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The internal id of the profile object. May change over time",
            "type": "integer"
          },
          "g_id": {
            "description": "The id of the profile object.",
            "type": "string",
            "example": "6bf57004-1afe-4edf-9b6d-ede97b6a59fc"
          },
          "properties": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "group name"
              }
            }
          },
          "labels": {
            "type": "array",
            "items": {
              "enum": ["Group"]
            },
            "example": ["Group"]
          }
        }
      },
      "graph_query_request": {
        "type": "string",
        "description": "The Cypher query. Must not include \" Only returns nodes to which the logged in user has permission.",
        "example": "MATCH (n:Group {name:'Raytio'}) return n"
      },
      "graph_query_response": {
        "type": "object",
        "properties": {
          "metadata": {},
          "paged_traverse": {},
          "outgoing_relationships": {},
          "outgoing_typed_relationships": {},
          "create_relationship": {},
          "labels": {},
          "traverse": {},
          "all_relationships": {},
          "all_typed_relationships": {},
          "property": {},
          "self": {},
          "incoming_relationships": {},
          "properties": {},
          "incoming_typed_relationships": {},
          "data": {}
        },
        "description": "The Cypher query response object."
      },
      "relationship_object": {
        "type": "object",
        "properties": {
          "relationships": {
            "description": "The relationship type, start and end nodes and properties.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "start": {
                  "type": "integer",
                  "description": "The id of the start node."
                },
                "end": {
                  "type": "integer",
                  "description": "The id of the end node."
                },
                "id": {
                  "type": "integer",
                  "description": "The id of this relationship."
                },
                "p_id": {
                  "type": "integer",
                  "description": "The unique id of this relationship. Only present for permission relationships."
                },
                "type": {
                  "type": "string",
                  "description": "The type of relationship.",
                  "enum": ["IS_OWNER", "ADMINS", "EDITS", "VIEWS"]
                },
                "properties": {
                  "type": "object",
                  "description": "The properties of this relationship.",
                  "properties": {}
                }
              }
            }
          }
        }
      },
      "schema_draft_07": {
        "type": "object",
        "properties": {}
      },
      "schema_create_request": {
        "type": "object",
        "properties": {
          "name": {
            "description": "The name of the schema.",
            "type": "string",
            "example": "person"
          },
          "type": {
            "description": "The object node type.",
            "type": "string",
            "enum": ["ps", "ss", "us"],
            "example": "ss"
          }
        }
      },
      "schema_validate_request": {
        "type": "object",
        "description": "A JSON object to be validated",
        "properties": {}
      },
      "schema_create_response": {
        "type": "object",
        "properties": {
          "name": {
            "description": "The name of the schema.",
            "type": "string",
            "example": "person"
          },
          "type": {
            "description": "The object node type.",
            "type": "string",
            "enum": ["ps", "ss", "us"],
            "example": "us"
          }
        }
      },
      "schema_validate_response": {
        "type": "object",
        "properties": {
          "valid": {
            "description": "Whether the JSON object is valid according to the schema.",
            "type": "boolean",
            "example": false
          },
          "message": {
            "description": "The object node type.",
            "type": "string",
            "example": "'1' is not of type 'number'"
          }
        }
      },
      "user_permissions_request_parent": {
        "type": "array",
        "items": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/user_permissions_request"
            },
            {
              "$ref": "#/components/schemas/group_permissions_request"
            }
          ]
        }
      },
      "user_permissions_request": {
        "properties": {
          "u_id": {
            "description": "The u_id of the user that the permission is being assigned to.",
            "type": "string"
          },
          "n_id": {
            "description": "The n_id of the profile object that the user or group is being granted permissions to.",
            "type": "string"
          },
          "permission": {
            "description": "The permission to assign to the user or group.",
            "enum": ["ADMINS", "EDITS", "VIEWS"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "group_permissions_request": {
        "properties": {
          "g_id": {
            "description": "The g_id of the group that the permission is being assigned to.",
            "type": "string"
          },
          "n_id": {
            "description": "The n_id of the profile object that the user or group is being granted permissions to.",
            "type": "string"
          },
          "permission": {
            "description": "The permission to assign to the user or group.",
            "enum": ["ADMINS", "EDITS", "VIEWS"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "user_owner_request": {
        "properties": {
          "u_id": {
            "description": "The unique id (u_id) of the user.",
            "example": "dc734422-375a-4bea-abf8-a98ddd5456ac",
            "type": "string"
          }
        },
        "type": "object"
      },
      "group_request": {
        "properties": {
          "name": {
            "description": "The name of the group.",
            "example": "My group",
            "type": "string"
          }
        },
        "type": "object"
      },
      "relationship_request": {
        "type": "object",
        "properties": {
          "a": {
            "description": "The profile object that the relationship starts at. In graph terms this is the start node (or vertex) of the edge connecting the end node.",
            "type": "object",
            "properties": {
              "n_id": {
                "type": "string",
                "description": "The unique id of this node.",
                "example": "398f738f-1670-43c5-a49f-3d9b4df0861c"
              },
              "label": {
                "type": "string",
                "description": "The label of the start node that the relationship is being with",
                "example": "ss_NZ_Person"
              }
            }
          },
          "b": {
            "description": "The profile object that the relationship end with. In graph terms this is the end node (or vertex) of the edge connecting the start node.",
            "type": "object",
            "properties": {
              "n_id": {
                "type": "string",
                "description": "The unique id of this node.",
                "example": "398f738f-1670-43c5-a49f-3d9b4df0861c"
              },
              "label": {
                "type": "string",
                "description": "The label of the start node that the relationship is being with",
                "example": "ss_NZ_Employment"
              }
            }
          },
          "type": {
            "type": "string",
            "example": "HAS",
            "description": "The type of relationship"
          },
          "properties": {
            "type": "object",
            "description": "The properties of this relationship.",
            "properties": {
              "fields": {
                "type": "array",
                "example": ["occupation_type"],
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "relationship_delete_response": {
        "type": "string",
        "example": "Success"
      },
      "application_create_request": {
        "type": "object",
        "required": ["name", "scopes", "uri"],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the access application",
            "example": "My app"
          },
          "description": {
            "type": "string",
            "description": "The description of the access application",
            "example": "An application to let you rule the world"
          },
          "scopes": {
            "type": "array",
            "description": "The scopes that this application can use",
            "example": ["profile-oauth/read_profile"],
            "items": {
              "type": "string"
            }
          },
          "uri": {
            "type": "string",
            "description": "The callback URL for the application",
            "example": "https://api.rayt.io/callback"
          },
          "picture": {
            "type": "string",
            "description": "The picture to show to the user when authorising the application"
          },
          "secret": {
            "type": "boolean",
            "description": "Whether to generate a secret or not",
            "example": true
          }
        }
      },
      "application_create_response": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The unique consumer key for the created access application",
            "example": "6ii850gsh749uavkl4aivjhfkgal"
          },
          "secret": {
            "type": "string",
            "description": "The unique consumer secret for the created access application",
            "example": "asdkghaty46thsltgj068ggdskg"
          }
        }
      },
      "profile_request_key_response": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
            "description": "The authentication URL for the user to use",
            "example": "https://raytio.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=6ii850543219uavkl4aiv12345&redirect_uri=https%3A%2F%2Fapi.rayt.io&scope=profile-oauth%2Fread_profile&state=TDLMSdTHFFDSWe2qNNj758gjw8l4nk"
          },
          "state": {
            "type": "string",
            "description": "A randomly generated string required to uniquely identify this authorisation request",
            "example": "TDLMSdTHFFDSWe2qNNj758gjw8l4nk"
          }
        }
      },
      "profile_access_token_request": {
        "type": "object",
        "required": ["code", "client_id", "scopes", "uri", "state"],
        "properties": {
          "code": {
            "type": "string",
            "description": "The code returned by the authorisation request"
          },
          "client_id": {
            "type": "string",
            "description": "The application consumer key",
            "example": "7243067dghlkertyq4t"
          },
          "scopes": {
            "type": "array",
            "items": {
              "description": "The scopes being requested",
              "example": "profile-oauth/read_profile"
            }
          },
          "uri": {
            "type": "string",
            "description": "The callback URI",
            "example": "https://api.rayt.io/callback"
          },
          "state": {
            "type": "string",
            "description": "A randomly generated string required to uniquely identify this authorisation request",
            "example": "TDLMSdTHFFDSWe2qNNj758gjw8l4nk"
          }
        }
      },
      "profile_access_token_response": {
        "type": "object",
        "properties": {
          "access_token": {
            "type": "string",
            "description": "The access token"
          },
          "refresh_token": {
            "type": "string",
            "description": "The refresh token"
          },
          "expires_in": {
            "type": "number",
            "description": "The number of seconds until the access token expires",
            "example": "3600"
          },
          "token_type": {
            "type": "string",
            "description": "A randomly generated string required to uniquely identify this authorisation request",
            "example": "Bearer"
          },
          "expires_at": {
            "type": "number",
            "description": "The time at which the access token expires",
            "example": "1551132253.3519123"
          }
        }
      },
      "error_response": {
        "properties": {
          "message": {
            "description": "Error Response message",
            "type": "string",
            "example": "Incorrect credentials"
          }
        },
        "type": "object"
      },
      "org_request": {
        "$ref": "#/components/schemas/organization_schema"
      },
      "org_invite_request": {
        "properties": {
          "email": {
            "description": "The email address of the user being invited to the organisation.",
            "example": "user@rayt.io",
            "type": "string"
          }
        },
        "type": "object",
        "required": ["email"]
      },
      "org_verify_request": {
        "properties": {
          "verification_code_org": {
            "description": "The verification code for the user being invited to the organisation.",
            "example": "abcd1234",
            "type": "string"
          }
        },
        "type": "object",
        "required": ["verification_code_org"]
      },
      "org_response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/organization_schema"
          },
          {
            "$ref": "#/components/schemas/organization_id_schema"
          }
        ]
      },
      "org_read_response": {
        "properties": {
          "user": {
            "type": "string"
          },
          "organizations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "message": {
            "description": "Organisation Response message",
            "type": "string"
          }
        },
        "example": {
          "user": "dc734422-375a-4bea-abf8-a98ddd5456ab",
          "organizations": [
            "yJUOp003tkWNqBl-hH-OOA",
            "f0017d23_c8da_4501_9339_d84202c421f4"
          ],
          "message": "Organizations assigned to the user dc734422-375a-4bea-abf8-a98ddd5456ab : yJUOp003tkWNqBl-hH-OOA,f0017d23_c8da_4501_9339_d84202c421f4."
        },
        "type": "object"
      },
      "org_create_response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/organization_schema"
          },
          {
            "$ref": "#/components/schemas/organization_id_schema"
          }
        ]
      },
      "organization_schema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Test Organization 5"
          },
          "address": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "location_type": {
                  "type": "string",
                  "enum": ["physical", "postal", "others"]
                },
                "street1": {
                  "type": "string"
                },
                "street2": {
                  "type": "string"
                },
                "city": {
                  "type": "string"
                },
                "region": {
                  "type": "string"
                },
                "country": {
                  "type": "string"
                }
              }
            },
            "example": {
              "location_type": "physical",
              "street1": "123 drake st",
              "street2": "narrow neck",
              "city": "auckland",
              "region": "auckland",
              "country": "new zealand"
            }
          }
        }
      },
      "organization_id_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "de16ed4f-2dc1-4325-a41c-489cf6bad744"
          }
        }
      },
      "org_invite_response": {
        "properties": {
          "message": {
            "description": "Organisation Invite Response message",
            "example": "The user user@rayt.io has been invited to join the Testing organization and an email with a verification code has been sent.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "org_verify_response": {
        "properties": {
          "message": {
            "description": "Verify Response message",
            "enum": [
              "User is verified.",
              "Invalid verification code or verification code expired, please invite the user again."
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "org_plans_schema": {
        "type": "object",
        "properties": {
          "object": {
            "type": "string",
            "description": "String representing the object’s type",
            "example": "list"
          },
          "data": {
            "type": "array",
            "description": "An array containing the actual response elements, paginated by any request parameters",
            "items": {
              "$ref": "#/components/schemas/org_plan_schema"
            }
          },
          "has_more": {
            "type": "boolean",
            "description": "Whether or not there are more elements available after this set. If false, this set comprises the end of the list",
            "example": true
          },
          "url": {
            "type": "string",
            "description": "The URL for accessing this list",
            "example": "v1/plans"
          }
        }
      },
      "org_plan_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the object",
            "example": "plan_FC4dStqv9ZmDGK"
          },
          "object": {
            "type": "string",
            "description": "String representing the object’s type",
            "example": "plan"
          },
          "active": {
            "type": "boolean",
            "description": "Whether the plan is currently available for new subscriptions",
            "example": true
          },
          "aggregate_usage": {
            "type": "string",
            "description": "Specifies a usage aggregation strategy for plans. Not currently used",
            "example": "sum"
          },
          "amount": {
            "type": "integer",
            "description": "The amount in cents to be charged on the interval specified",
            "example": 100
          },
          "billing_scheme": {
            "type": "string",
            "description": "Describes how to compute the price per period. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.",
            "example": "per_unit",
            "enum": ["per_unit", "tiered"]
          },
          "created": {
            "type": "integer",
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch",
            "example": 1559669524
          },
          "currency": {
            "type": "string",
            "description": "Three-letter ISO currency code, in lowercase",
            "example": "nzd"
          },
          "interval": {
            "type": "string",
            "description": "The frequency with which a subscription should be billed",
            "example": "month",
            "enum": ["day", "week", "month", "year"]
          },
          "interval_count": {
            "type": "integer",
            "description": "The number of intervals (specified in the interval property) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months",
            "example": 1
          },
          "livemode": {
            "type": "boolean",
            "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode",
            "example": true
          },
          "metadata": {
            "type": "string",
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format",
            "example": 1
          },
          "nickname": {
            "type": "string",
            "description": "A brief description of the plan",
            "example": "Credit bundle 550 NZ"
          },
          "product": {
            "type": "string",
            "description": "The product whose pricing this plan determines",
            "example": "prod_EzQWJeGLEpVstW"
          },
          "tiers": {
            "type": "string",
            "description": "Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. Not currently used",
            "example": null
          },
          "tiers_mode": {
            "type": "string",
            "description": "Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price, in graduated tiering pricing can successively change as the quantity grows",
            "example": null
          },
          "transform_usage": {
            "type": "string",
            "description": "Apply a transformation to the reported usage or set quantity before computing the billed price. Cannot be combined with tiers",
            "example": null
          },
          "trial_period_days": {
            "type": "integer",
            "description": "Default number of trial days when subscribing a customer to this plan using trial_from_plan=true",
            "example": null
          },
          "usage_type": {
            "type": "string",
            "description": "Configures how the quantity per period should be determined, can be either metered or licensed. licensed will automatically bill the quantity set for a plan when adding it to a subscription, metered will aggregate the total usage based on usage records",
            "example": null,
            "enum": ["metered", "licensed"]
          }
        }
      },
      "org_subscription_list_schema": {
        "type": "object",
        "properties": {
          "object": {
            "type": "string",
            "description": "String representing the object’s type",
            "example": "list"
          },
          "data": {
            "type": "array",
            "description": "An array containing the actual response elements, paginated by any request parameters",
            "items": {
              "$ref": "#/components/schemas/org_sub_items_schema"
            }
          },
          "has_more": {
            "type": "boolean",
            "description": "Whether or not there are more elements available after this set. If false, this set comprises the end of the list",
            "example": true
          },
          "url": {
            "type": "string",
            "description": "The URL for accessing this list",
            "example": "v1/plans"
          }
        }
      },
      "org_subscription_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the object",
            "example": "sub_8epEF0PuRhmltU"
          },
          "object": {
            "type": "string",
            "description": "String representing the object’s type",
            "example": "subscription"
          },
          "application_fee_percent": {
            "type": "number",
            "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice subtotal that will be charged as a fee",
            "example": null
          },
          "billing": {
            "type": "string",
            "description": "When charging automatically, we will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, we will email the customer an invoice with payment instructions",
            "example": "charge_automatically",
            "enum": ["charge_automatically", "send_invoice"]
          },
          "billing_cycle_anchor": {
            "type": "number",
            "description": "Determines the date of the first full invoice, and, for plans with month or year intervals, the day of the month for subsequent invoices",
            "example": 1466202990
          },
          "billing_thresholds": {
            "type": "string",
            "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period",
            "example": null
          },
          "cancel_at_period_end": {
            "type": "boolean",
            "description": "If the subscription has been canceled with the at_period_end flag set to true, cancel_at_period_end on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period",
            "example": true
          },
          "canceled_at": {
            "type": "integer",
            "description": "If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with cancel_at_period_end, canceled_at will still reflect the date of the initial cancellation request, not the end of the subscription period when the subscription is automatically moved to a canceled state",
            "example": 1559669524
          },
          "created": {
            "type": "integer",
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch",
            "example": 1559669524
          },
          "current_period_end": {
            "type": "integer",
            "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created",
            "example": 1559669524
          },
          "current_period_start": {
            "type": "integer",
            "description": "Start of the current period that the subscription has been invoiced for",
            "example": 1559669524
          },
          "customer": {
            "type": "string",
            "description": "ID of the customer who owns the subscription",
            "example": "cus_8epDebVEl8Bs2V"
          },
          "days_until_due": {
            "type": "integer",
            "description": "Number of days a customer has to pay invoices generated by this subscription. This value will be null for subscriptions where billing=charge_automatically",
            "example": null
          },
          "default_payment_method": {
            "type": "string",
            "description": "ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. If not set, invoices will use the default payment method in the customer’s invoice settings",
            "example": null
          },
          "default_source": {
            "type": "string",
            "description": "ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If not set, defaults to the customer’s default source",
            "example": null
          },
          "default_tax_rates": {
            "type": "array",
            "description": "The tax rates that will apply to any subscription item that does not have tax_rates set. Invoices created will have their default_tax_rates populated from the subscription",
            "items": {},
            "example": []
          },
          "discount": {
            "type": "string",
            "description": "Describes the current discount applied to this subscription, if there is one. When billing, a discount applied to a subscription overrides a discount applied on a customer-wide basis",
            "example": null
          },
          "ended_at": {
            "type": "integer",
            "description": "If the subscription has ended, the date the subscription ended",
            "example": 1517528245
          },
          "items": {
            "type": "array",
            "description": "List of subscription items, each with an attached plan",
            "items": {
              "$ref": "#/components/schemas/org_subscription_list_schema"
            }
          },
          "latest_invoice": {
            "type": "string",
            "description": "The most recent invoice this subscription has generated",
            "example": null
          },
          "livemode": {
            "type": "boolean",
            "description": "Has the value true if the object exists in live mode or the value false if the object exists in test mode",
            "example": true
          },
          "metadata": {
            "type": "string",
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format",
            "example": 1
          },
          "plan": {
            "type": "array",
            "description": "Hash describing the plan the customer is subscribed to. Only set if the subscription contains a single plan.",
            "items": { "$ref": "#/components/schemas/org_plan_schema" }
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the plan to which the customer is subscribed. For example, if your plan is $10/user/month, and your customer has 5 users, you could pass 5 as the quantity to have the customer charged $50 (5 x $10) monthly. Only set if the subscription contains a single plan",
            "example": null
          },
          "start": {
            "type": "integer",
            "description": "Date of the last substantial change to this subscription. For example, a change to the items array, or a change of status, will reset this timestamp",
            "example": null
          },
          "start_date": {
            "type": "integer",
            "description": "Date when the subscription was first created. The date might differ from the created date due to backdating",
            "example": null
          },
          "status": {
            "type": "string",
            "description": "For billing=charge_automatically a subscription moves into incomplete if the initial payment attempt fails. A subscription in this state can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an active state. If the first invoice is not paid within 23 hours, the subscription transitions to incomplete_expired. This is a terminal state, the open invoice will be voided and no further invoices will be generated. A subscription that is currently in a trial period is trialing and moves to active when the trial period is over. If subscription billing=charge_automatically it becomes past_due when payment to renew it fails and canceled or unpaid (depending on your subscriptions settings) when Stripe has exhausted all payment retry attempts. If subscription billing=send_invoice it becomes past_due when its invoice is not paid by the due date, and canceled or unpaid if it is still not paid by an additional deadline after that. Note that when a subscription has a status of unpaid, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices",
            "example": "canceled",
            "enum": [
              "incomplete",
              "incomplete_expired",
              "trialing",
              "active",
              "past_due",
              "canceled",
              "unpaid"
            ]
          },
          "trial_end": {
            "type": "integer",
            "description": "If the subscription has a trial, the end of that trial",
            "example": null
          }
        }
      },
      "org_subs_cu": {
        "type": "object",
        "properties": {
          "items": {
            "description": "List of subscription items, each with an attached plan.",
            "items": {
              "properties": {
                "plan": {
                  "maxLength": 5000,
                  "type": "string",
                  "example": "plan_FC4dStqv9ZmDGK"
                },
                "quantity": {
                  "type": "integer",
                  "example": 1
                }
              },
              "required": ["plan"],
              "title": "subscription_item_create_params",
              "type": "object"
            },
            "type": "array"
          }
        }
      },
      "org_sub_items_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the object",
            "example": "si_FC7qJ0OHXyg3w1"
          },
          "object": {
            "type": "string",
            "description": "String representing the object’s type",
            "example": "subscription_item"
          },
          "billing_thresholds": {
            "type": "string",
            "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period",
            "example": null
          },
          "created": {
            "type": "integer",
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch",
            "example": 1559669524
          },
          "metadata": {
            "type": "string",
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format",
            "example": 1
          },
          "plan": {
            "type": "string",
            "description": "Hash describing the plan the customer is subscribed to. Only set if the subscription contains a single plan.",
            "example": "Credit bundle 550 NZ"
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the plan to which the customer is subscribed. For example, if your plan is $10/user/month, and your customer has 5 users, you could pass 5 as the quantity to have the customer charged $50 (5 x $10) monthly. Only set if the subscription contains a single plan",
            "example": 1
          },
          "subscription": {
            "type": "string",
            "description": "The subscription this subscription_item belongs to",
            "example": "sub_FC7qbHNta35n7s"
          },
          "tax_rates": {
            "type": "array",
            "description": "The tax rates which apply to this subscription_item. When set, the default_tax_rates on the subscription do not apply to this subscription_item",
            "example": null,
            "items": {}
          }
        }
      },
      "org_invoice_schema": {
        "properties": {
          "account_country": {
            "description": "The country of the business associated with this invoice, most often the business creating the invoice.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "account_name": {
            "description": "The public name of the business associated with this invoice, most often the business creating the invoice.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "amount_due": {
            "description": "Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the `amount_due` may be 0. If there is a positive `starting_balance` for the invoice (the customer owes money), the `amount_due` will also take that into account. The charge that gets generated for the invoice will be for the amount specified in `amount_due`.",
            "type": "integer"
          },
          "amount_paid": {
            "description": "The amount, in %s, that was paid.",
            "type": "integer"
          },
          "amount_remaining": {
            "description": "The amount remaining, in %s, that is due.",
            "type": "integer"
          },
          "application_fee_amount": {
            "description": "The fee in %s that will be applied to the invoice and transferred to the application owner's Stripe account when the invoice is paid.",
            "nullable": true,
            "type": "integer"
          },
          "attempt_count": {
            "description": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule.",
            "type": "integer"
          },
          "attempted": {
            "description": "Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the `invoice.created` webhook, for example, so you might not want to display that invoice as unpaid to your users.",
            "type": "boolean"
          },
          "auto_advance": {
            "description": "Controls whether Stripe will perform [automatic collection](https://stripe.com/docs/billing/invoices/workflow/#auto_advance) of the invoice. When `false`, the invoice's state will not automatically advance without an explicit action.",
            "type": "boolean"
          },
          "billing": {
            "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.",
            "enum": ["charge_automatically", "send_invoice"],
            "nullable": true,
            "type": "string"
          },
          "billing_reason": {
            "description": "Indicates the reason why the invoice was created. `subscription_cycle` indicates an invoice created by a subscription advancing into a new period. `subscription_create` indicates an invoice created due to creating a subscription. `subscription_update` indicates an invoice created due to updating a subscription. `subscription` is set for all old invoices to indicate either a change to a subscription or a period advancement. `manual` is set for all invoices unrelated to a subscription (for example: created via the invoice editor). The `upcoming` value is reserved for simulated invoices per the upcoming invoice endpoint. `subscription_threshold` indicates an invoice created due to a billing threshold being reached.",
            "enum": [
              "automatic_pending_invoice_item_invoice",
              "manual",
              "subscription",
              "subscription_create",
              "subscription_cycle",
              "subscription_threshold",
              "subscription_update",
              "upcoming"
            ],
            "nullable": true,
            "type": "string"
          },
          "charge": {
            "description": "ID of the latest charge generated for this invoice, if any.",
            "nullable": true,
            "type": "string",
            "example": "ch_19yWpQ2eZvKYlo2Cu0NRSJl6"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "custom_fields": {
            "description": "Custom fields displayed on the invoice.",
            "items": {
              "$ref": "#/components/schemas/invoice_setting_custom_field"
            },
            "nullable": true,
            "type": "array"
          },
          "customer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/customer"
              },
              {
                "$ref": "#/components/schemas/deleted_customer"
              }
            ],
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/customer"
                },
                {
                  "$ref": "#/components/schemas/deleted_customer"
                }
              ]
            }
          },
          "customer_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "The customer's address. Until the invoice is finalized, this field will equal `customer.address`. Once the invoice is finalized, this field will no longer be updated.",
            "nullable": true
          },
          "customer_email": {
            "description": "The customer's email. Until the invoice is finalized, this field will equal `customer.email`. Once the invoice is finalized, this field will no longer be updated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "customer_name": {
            "description": "The customer's name. Until the invoice is finalized, this field will equal `customer.name`. Once the invoice is finalized, this field will no longer be updated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "customer_phone": {
            "description": "The customer's phone number. Until the invoice is finalized, this field will equal `customer.phone`. Once the invoice is finalized, this field will no longer be updated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "customer_shipping": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/shipping"
              }
            ],
            "description": "The customer's shipping information. Until the invoice is finalized, this field will equal `customer.shipping`. Once the invoice is finalized, this field will no longer be updated.",
            "nullable": true
          },
          "customer_tax_exempt": {
            "description": "The customer's tax exempt status. Until the invoice is finalized, this field will equal `customer.tax_exempt`. Once the invoice is finalized, this field will no longer be updated.",
            "enum": ["exempt", "none", "reverse"],
            "nullable": true,
            "type": "string"
          },
          "customer_tax_ids": {
            "description": "The customer's tax IDs. Until the invoice is finalized, this field will contain the same tax IDs as `customer.tax_ids`. Once the invoice is finalized, this field will no longer be updated.",
            "items": {
              "$ref": "#/components/schemas/invoices_resource_invoice_tax_id"
            },
            "nullable": true,
            "type": "array"
          },
          "default_payment_method": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/payment_method"
              }
            ],
            "description": "ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/payment_method"
                }
              ]
            }
          },
          "default_tax_rates": {
            "description": "The tax rates applied to this invoice, if any.",
            "items": {
              "$ref": "#/components/schemas/tax_rate"
            },
            "nullable": true,
            "type": "array"
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "discount": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/discount"
              }
            ],
            "nullable": true
          },
          "due_date": {
            "description": "The date on which payment for this invoice is due. This value will be `null` for invoices where `billing=charge_automatically`.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "ending_balance": {
            "description": "Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null.",
            "nullable": true,
            "type": "integer"
          },
          "footer": {
            "description": "Footer displayed on the invoice.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "hosted_invoice_url": {
            "description": "The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "invoice_pdf": {
            "description": "The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "lines": {
            "description": "The individual line items that make up the invoice. `lines` is sorted as follows: invoice items in reverse chronological order, followed by the subscription, if any.",
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/line_item"
                },
                "type": "array"
              },
              "has_more": {
                "description": "True if this list has another page of items after this one that can be fetched.",
                "type": "boolean"
              },
              "object": {
                "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
                "enum": ["list"],
                "type": "string"
              },
              "url": {
                "description": "The URL where this list can be accessed.",
                "maxLength": 5000,
                "type": "string"
              }
            },
            "required": ["data", "has_more", "object", "url"],
            "title": "InvoiceLinesList",
            "type": "object",
            "x-expandableFields": ["data"]
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "nullable": true,
            "type": "object"
          },
          "next_payment_attempt": {
            "description": "The time at which payment will next be attempted. This value will be `null` for invoices where `billing=send_invoice`.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "number": {
            "description": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["invoice"],
            "type": "string"
          },
          "paid": {
            "description": "Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance.",
            "type": "boolean"
          },
          "payment_intent": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/payment_intent"
              }
            ],
            "description": "The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/payment_intent"
                }
              ]
            }
          },
          "period_end": {
            "description": "End of the usage period during which invoice items were added to this invoice.",
            "format": "unix-time",
            "type": "integer"
          },
          "period_start": {
            "description": "Start of the usage period during which invoice items were added to this invoice.",
            "format": "unix-time",
            "type": "integer"
          },
          "post_payment_credit_notes_amount": {
            "description": "Total amount of all post-payment credit notes issued for this invoice.",
            "type": "integer"
          },
          "pre_payment_credit_notes_amount": {
            "description": "Total amount of all pre-payment credit notes issued for this invoice.",
            "type": "integer"
          },
          "receipt_number": {
            "description": "This is the transaction number that appears on email receipts sent for this invoice.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "starting_balance": {
            "description": "Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance.",
            "type": "integer"
          },
          "statement_descriptor": {
            "description": "Extra information about an invoice for the customer's credit card statement.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The status of the invoice, one of `draft`, `open`, `paid`, `uncollectible`, or `void`. [Learn more](https://stripe.com/docs/billing/invoices/workflow#workflow-overview)",
            "enum": [
              "deleted",
              "draft",
              "open",
              "paid",
              "uncollectible",
              "void"
            ],
            "nullable": true,
            "type": "string"
          },
          "status_transitions": {
            "$ref": "#/components/schemas/invoices_status_transitions"
          },
          "subscription": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/org_subscription_schema"
              }
            ],
            "description": "The subscription that this invoice was prepared for, if any.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/org_subscription_schema"
                }
              ]
            }
          },
          "subscription_proration_date": {
            "description": "Only set for upcoming invoices that preview prorations. The time used to calculate prorations.",
            "type": "integer"
          },
          "subtotal": {
            "description": "Total of all subscriptions, invoice items, and prorations on the invoice before any discount is applied.",
            "type": "integer"
          },
          "tax": {
            "description": "The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.",
            "nullable": true,
            "type": "integer"
          },
          "tax_percent": {
            "description": "This percentage of the subtotal has been added to the total amount of the invoice, including invoice line items and discounts. This field is inherited from the subscription's `tax_percent` field, but can be changed before the invoice is paid. This field defaults to null.",
            "nullable": true,
            "type": "number"
          },
          "threshold_reason": {
            "$ref": "#/components/schemas/invoice_threshold_reason"
          },
          "total": {
            "description": "Total after discount.",
            "type": "integer"
          },
          "total_tax_amounts": {
            "description": "The aggregate amounts calculated per tax rate for all line items.",
            "items": {
              "$ref": "#/components/schemas/tax_amount"
            },
            "nullable": true,
            "type": "array"
          },
          "webhooks_delivered_at": {
            "description": "The time at which webhooks for this invoice were successfully delivered (if the invoice had no webhooks to deliver, this will match `created`). Invoice payment is delayed until webhooks are delivered, or until all webhook delivery attempts have been exhausted.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "amount_due",
          "amount_paid",
          "amount_remaining",
          "attempt_count",
          "attempted",
          "created",
          "currency",
          "customer",
          "lines",
          "livemode",
          "object",
          "paid",
          "period_end",
          "period_start",
          "post_payment_credit_notes_amount",
          "pre_payment_credit_notes_amount",
          "starting_balance",
          "status_transitions",
          "subtotal",
          "total"
        ],
        "title": "Invoice",
        "type": "object",
        "x-expandableFields": [
          "charge",
          "custom_fields",
          "customer",
          "customer_address",
          "customer_shipping",
          "customer_tax_ids",
          "default_payment_method",
          "default_source",
          "default_tax_rates",
          "discount",
          "lines",
          "payment_intent",
          "status_transitions",
          "subscription",
          "threshold_reason",
          "total_tax_amounts"
        ],
        "x-resourceId": "invoice"
      },
      "invoice_setting_custom_field": {
        "properties": {
          "name": {
            "description": "The name of the custom field.",
            "maxLength": 5000,
            "type": "string"
          },
          "value": {
            "description": "The value of the custom field.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": ["name", "value"],
        "title": "InvoiceSettingCustomField",
        "type": "object",
        "x-expandableFields": []
      },
      "customer": {
        "properties": {
          "account_balance": {
            "description": "This field has been renamed to `balance` and will be removed in a future API version.",
            "type": "integer"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "The customer's address.",
            "nullable": true
          },
          "balance": {
            "description": "Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.",
            "nullable": true,
            "type": "integer"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) the customer can be charged in for recurring billing purposes.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "delinquent": {
            "description": "When the customer's latest invoice is billed by charging automatically, delinquent is true if the invoice's latest charge is failed. When the customer's latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.",
            "nullable": true,
            "type": "boolean"
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "discount": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/discount"
              }
            ],
            "description": "Describes the current discount active on the customer, if there is one.",
            "nullable": true
          },
          "email": {
            "description": "The customer's email address.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "invoice_prefix": {
            "description": "The prefix for the customer used to generate unique invoice numbers.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "invoice_settings": {
            "$ref": "#/components/schemas/invoice_setting_customer_setting"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "name": {
            "description": "The customer's full name or business name.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["customer"],
            "type": "string"
          },
          "phone": {
            "description": "The customer's phone number.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "preferred_locales": {
            "description": "The customer's preferred locales (languages), ordered by preference.",
            "items": {
              "maxLength": 5000,
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "shipping": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/shipping"
              }
            ],
            "description": "Mailing and shipping address for the customer. Appears on invoices emailed to this customer.",
            "nullable": true
          },
          "subscriptions": {
            "description": "The customer's current subscriptions, if any.",
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/org_subscription_schema"
                },
                "type": "array"
              },
              "has_more": {
                "description": "True if this list has another page of items after this one that can be fetched.",
                "type": "boolean"
              },
              "object": {
                "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
                "enum": ["list"],
                "type": "string"
              },
              "url": {
                "description": "The URL where this list can be accessed.",
                "maxLength": 5000,
                "type": "string"
              }
            },
            "required": ["data", "has_more", "object", "url"],
            "title": "SubscriptionList",
            "type": "object",
            "x-expandableFields": ["data"]
          },
          "tax_exempt": {
            "description": "Describes the customer's tax exemption status. One of `none`, `exempt`, or `reverse`. When set to `reverse`, invoice and receipt PDFs include the text **\"Reverse charge\"**.",
            "enum": ["exempt", "none", "reverse"],
            "nullable": true,
            "type": "string"
          },
          "tax_ids": {
            "description": "The customer's tax IDs.",
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/tax_id"
                },
                "type": "array"
              },
              "has_more": {
                "description": "True if this list has another page of items after this one that can be fetched.",
                "type": "boolean"
              },
              "object": {
                "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
                "enum": ["list"],
                "type": "string"
              },
              "url": {
                "description": "The URL where this list can be accessed.",
                "maxLength": 5000,
                "type": "string"
              }
            },
            "required": ["data", "has_more", "object", "url"],
            "title": "TaxIDsList",
            "type": "object",
            "x-expandableFields": ["data"]
          },
          "tax_info": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/tax_info"
              }
            ],
            "description": "The customer's tax information. Appears on invoices emailed to this customer. This field has been deprecated and will be removed in a future API version, for further information view the [migration guide](https://stripe.com/docs/billing/migration/taxes#moving-from-taxinfo-to-customer-tax-ids).",
            "nullable": true
          },
          "tax_info_verification": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/tax_info_verification"
              }
            ],
            "description": "Describes the status of looking up the tax ID provided in `tax_info`. This field has been deprecated and will be removed in a future API version, for further information view the [migration guide](https://stripe.com/docs/billing/migration/taxes#moving-from-taxinfo-to-customer-tax-ids).",
            "nullable": true
          }
        },
        "required": ["created", "id", "livemode", "object", "sources"],
        "title": "Customer",
        "type": "object",
        "x-expandableFields": [
          "address",
          "default_source",
          "discount",
          "invoice_settings",
          "shipping",
          "sources",
          "subscriptions",
          "tax_ids",
          "tax_info",
          "tax_info_verification"
        ],
        "x-resourceId": "customer"
      },
      "shipping": {
        "properties": {
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "carrier": {
            "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Recipient name.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "phone": {
            "description": "Recipient phone (including extension).",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "tracking_number": {
            "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": ["address"],
        "title": "Shipping",
        "type": "object",
        "x-expandableFields": ["address"]
      },
      "payment_method_details_card_present_receipt": {
        "properties": {
          "application_cryptogram": {
            "description": "EMV tag 9F26, cryptogram generated by the integrated circuit chip.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "application_preferred_name": {
            "description": "Mnenomic of the Application Identifier.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "authorization_code": {
            "description": "Identifier for this transaction.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "authorization_response_code": {
            "description": "EMV tag 8A. A code returned by the card issuer.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "cardholder_verification_method": {
            "description": "How the cardholder verified ownership of the card.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "dedicated_file_name": {
            "description": "EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "terminal_verification_results": {
            "description": "The outcome of a series of EMV functions performed by the card reader.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "transaction_status_information": {
            "description": "An indication of various EMV functions performed during the transaction.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_card_present_receipt",
        "type": "object",
        "x-expandableFields": []
      },
      "invoices_resource_invoice_tax_id": {
        "properties": {
          "type": {
            "description": "The type of the tax ID, one of `au_abn`, `eu_vat`, `in_gst`, `no_vat`, `nz_gst`, or `unknown`",
            "enum": [
              "au_abn",
              "eu_vat",
              "in_gst",
              "no_vat",
              "nz_gst",
              "unknown"
            ],
            "type": "string"
          },
          "value": {
            "description": "The value of the tax ID.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": ["type"],
        "title": "InvoicesResourceInvoiceTaxID",
        "type": "object",
        "x-expandableFields": []
      },
      "tax_rate": {
        "properties": {
          "active": {
            "description": "Defaults to `true`. When set to `false`, this tax rate cannot be applied to objects in the API, but will still be applied to subscriptions and invoices that already have it set.",
            "type": "boolean"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "description": {
            "description": "An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "display_name": {
            "description": "The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.",
            "maxLength": 5000,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "inclusive": {
            "description": "This specifies if the tax rate is inclusive or exclusive.",
            "type": "boolean"
          },
          "jurisdiction": {
            "description": "The jurisdiction for the tax rate.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["tax_rate"],
            "type": "string"
          },
          "percentage": {
            "description": "This represents the tax rate percent out of 100.",
            "type": "number"
          }
        },
        "required": [
          "active",
          "created",
          "display_name",
          "id",
          "inclusive",
          "livemode",
          "metadata",
          "object",
          "percentage"
        ],
        "title": "TaxRate",
        "type": "object",
        "x-expandableFields": [],
        "x-resourceId": "tax_rate"
      },
      "line_item": {
        "properties": {
          "amount": {
            "description": "The amount, in %s.",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "discountable": {
            "description": "If true, discounts will apply to this line item. Always false for prorations.",
            "type": "boolean"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "invoice_item": {
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Whether this is a test line item.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with `type=subscription` this will reflect the metadata of the subscription that caused the line item to be created.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["line_item"],
            "type": "string"
          },
          "period": {
            "$ref": "#/components/schemas/invoice_line_item_period"
          },
          "plan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/org_plans_schema"
              }
            ],
            "description": "The plan of the subscription, if the line item is a subscription or a proration.",
            "nullable": true
          },
          "proration": {
            "description": "Whether this is a proration.",
            "type": "boolean"
          },
          "quantity": {
            "description": "The quantity of the subscription, if the line item is a subscription or a proration.",
            "nullable": true,
            "type": "integer"
          },
          "subscription": {
            "description": "The subscription that the invoice item pertains to, if any.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "subscription_item": {
            "description": "The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.",
            "maxLength": 5000,
            "type": "string"
          },
          "tax_amounts": {
            "description": "The amount of tax calculated per tax rate for this line item",
            "items": {
              "$ref": "#/components/schemas/tax_amount"
            },
            "nullable": true,
            "type": "array"
          },
          "tax_rates": {
            "description": "The tax rates which apply to the line item.",
            "items": {
              "$ref": "#/components/schemas/tax_rate"
            },
            "nullable": true,
            "type": "array"
          },
          "type": {
            "description": "A string identifying the type of the source of this line item, either an `invoiceitem` or a `subscription`.",
            "enum": ["invoiceitem", "subscription"],
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency",
          "discountable",
          "id",
          "livemode",
          "metadata",
          "object",
          "period",
          "proration",
          "type"
        ],
        "title": "InvoiceLineItem",
        "type": "object",
        "x-expandableFields": ["period", "plan", "tax_amounts", "tax_rates"],
        "x-resourceId": "line_item"
      },
      "payment_intent": {
        "properties": {
          "amount": {
            "description": "Amount intended to be collected by this PaymentIntent.",
            "type": "integer"
          },
          "amount_capturable": {
            "description": "Amount that can be captured from this PaymentIntent.",
            "type": "integer"
          },
          "amount_received": {
            "description": "Amount that was collected by this PaymentIntent.",
            "type": "integer"
          },
          "application": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/application"
              }
            ],
            "description": "ID of the Connect application that created the PaymentIntent.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/application"
                }
              ]
            }
          },
          "application_fee_amount": {
            "description": "The amount of the application fee (if any) for the resulting payment. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/payment-intents/use-cases#connected-accounts) for details.",
            "nullable": true,
            "type": "integer"
          },
          "canceled_at": {
            "description": "Populated when `status` is `canceled`, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "cancellation_reason": {
            "description": "Reason for cancellation of this PaymentIntent, either user-provided (`duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned`) or generated by Stripe internally (`failed_invoice`, `void_invoice`, or `automatic`).",
            "enum": [
              "abandoned",
              "automatic",
              "duplicate",
              "failed_invoice",
              "fraudulent",
              "requested_by_customer",
              "void_invoice"
            ],
            "nullable": true,
            "type": "string"
          },
          "capture_method": {
            "description": "One of `automatic` (default) or `manual`.\n\nWhen the capture method is `automatic`, Stripe automatically captures funds when the customer authorizes the payment.\n\nChange `capture_method` to manual if you wish to [separate authorization and capture](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#separate-authorization-and-capture) for payment methods that support this.",
            "enum": ["automatic", "manual"],
            "type": "string"
          },
          "charges": {
            "description": "Charges that were created by this PaymentIntent, if any.",
            "properties": {
              "data": {
                "description": "This list only contains the latest charge, even if there were previously multiple unsuccessful charges. To view all previous charges for a PaymentIntent, you can filter the charges list using the `payment_intent` [parameter](https://stripe.com/docs/api/charges/list#list_charges-payment_intent).",
                "items": {
                  "$ref": "#/components/schemas/charge"
                },
                "type": "array"
              },
              "has_more": {
                "description": "True if this list has another page of items after this one that can be fetched.",
                "type": "boolean"
              },
              "object": {
                "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
                "enum": ["list"],
                "type": "string"
              },
              "url": {
                "description": "The URL where this list can be accessed.",
                "maxLength": 5000,
                "type": "string"
              }
            },
            "required": ["data", "has_more", "object", "url"],
            "title": "PaymentFlowsPaymentIntentResourceChargeList",
            "type": "object",
            "x-expandableFields": ["data"]
          },
          "client_secret": {
            "description": "The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key. Please refer to our [automatic confirmation quickstart guide](https://stripe.com/docs/payments/payment-intents/quickstart#automatic-confirmation-flow) to learn about how `client_secret` should be handled.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "confirmation_method": {
            "description": "One of `automatic` (default) or `manual`.\n\nWhen the confirmation method is `automatic`, a PaymentIntent can be confirmed using a publishable key. After `next_action`s are handled, no additional confirmation is required to complete the payment.\n\nWhen the confirmation method is `manual`, all payment attempts must be made using a secret key. The PaymentIntent returns to the `requires_confirmation` state after handling `next_action`s, and requires your server to initiate each payment attempt with an explicit confirmation.\n\nLearn more about the different [confirmation flows](https://stripe.com/docs/payments/payment-intents#one-time-payments).",
            "enum": ["automatic", "manual"],
            "type": "string"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "customer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/customer"
              },
              {
                "$ref": "#/components/schemas/deleted_customer"
              }
            ],
            "description": "ID of the Customer this PaymentIntent is for if one exists.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/customer"
                },
                {
                  "$ref": "#/components/schemas/deleted_customer"
                }
              ]
            }
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "invoice": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/org_invoice_schema"
              }
            ],
            "description": "ID of the invoice that created this PaymentIntent, if it exists.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/org_invoice_schema"
                }
              ]
            }
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. For more information, see the [documentation](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata).",
            "type": "object"
          },
          "next_action": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/payment_intent_next_action"
              }
            ],
            "description": "If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source.",
            "nullable": true
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["payment_intent"],
            "type": "string"
          },
          "payment_method": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/payment_method"
              }
            ],
            "description": "ID of the payment method used in this PaymentIntent.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/payment_method"
                }
              ]
            }
          },
          "payment_method_types": {
            "description": "The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.",
            "items": {
              "maxLength": 5000,
              "type": "string"
            },
            "type": "array"
          },
          "receipt_email": {
            "description": "Email address that the receipt for the resulting payment will be sent to.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "review": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/review"
              }
            ],
            "description": "ID of the review associated with this PaymentIntent, if any.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/review"
                }
              ]
            }
          },
          "shipping": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/shipping"
              }
            ],
            "description": "Shipping information for this PaymentIntent.",
            "nullable": true
          },
          "statement_descriptor": {
            "description": "Extra information about a PaymentIntent. This will appear on your customer's statement when this PaymentIntent succeeds in creating a charge.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "Status of this PaymentIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `requires_capture`, `canceled`, or `succeeded`. Read more about each PaymentIntent [status](https://stripe.com/docs/payments/payment-intents/status).",
            "enum": [
              "canceled",
              "processing",
              "requires_action",
              "requires_capture",
              "requires_confirmation",
              "requires_payment_method",
              "succeeded"
            ],
            "type": "string"
          },
          "transfer_group": {
            "description": "A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/payment-intents/use-cases#connected-accounts) for details.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "capture_method",
          "confirmation_method",
          "created",
          "currency",
          "id",
          "livemode",
          "object",
          "payment_method_types",
          "status"
        ],
        "title": "PaymentIntent",
        "type": "object",
        "x-expandableFields": [
          "application",
          "charges",
          "customer",
          "invoice",
          "last_payment_error",
          "next_action",
          "on_behalf_of",
          "payment_method",
          "review",
          "shipping",
          "transfer_data"
        ],
        "x-resourceId": "payment_intent"
      },
      "deleted_customer": {
        "properties": {
          "deleted": {
            "description": "Always true for a deleted object",
            "enum": [true],
            "type": "boolean"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["customer"],
            "type": "string"
          }
        },
        "required": ["deleted", "id", "object"],
        "title": "DeletedCustomer",
        "type": "object",
        "x-expandableFields": [],
        "x-resourceId": "deleted_customer"
      },
      "address": {
        "properties": {
          "city": {
            "description": "City/District/Suburb/Town/Village.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "country": {
            "description": "2-letter country code.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "line1": {
            "description": "Address line 1 (Street address/PO Box/Company name).",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "line2": {
            "description": "Address line 2 (Apartment/Suite/Unit/Building).",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "postal_code": {
            "description": "ZIP or postal code.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "state": {
            "description": "State/County/Province/Region.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "Address",
        "type": "object",
        "x-expandableFields": []
      },
      "discount": {
        "properties": {
          "coupon": {
            "$ref": "#/components/schemas/coupon"
          },
          "customer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/customer"
              },
              {
                "$ref": "#/components/schemas/deleted_customer"
              }
            ],
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/customer"
                },
                {
                  "$ref": "#/components/schemas/deleted_customer"
                }
              ]
            }
          },
          "end": {
            "description": "If the coupon has a duration of `repeating`, the date that this discount will end. If the coupon has a duration of `once` or `forever`, this attribute will be null.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["discount"],
            "type": "string"
          },
          "start": {
            "description": "Date that the coupon was applied.",
            "format": "unix-time",
            "type": "integer"
          },
          "subscription": {
            "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": ["coupon", "object", "start"],
        "title": "Discount",
        "type": "object",
        "x-expandableFields": ["coupon", "customer"],
        "x-resourceId": "discount"
      },
      "invoices_status_transitions": {
        "properties": {
          "finalized_at": {
            "description": "The time that the invoice draft was finalized.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "marked_uncollectible_at": {
            "description": "The time that the invoice was marked uncollectible.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "paid_at": {
            "description": "The time that the invoice was paid.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "voided_at": {
            "description": "The time that the invoice was voided.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          }
        },
        "title": "InvoicesStatusTransitions",
        "type": "object",
        "x-expandableFields": []
      },
      "invoice_threshold_reason": {
        "properties": {
          "amount_gte": {
            "description": "The total invoice amount threshold boundary if it triggered the threshold invoice.",
            "nullable": true,
            "type": "integer"
          },
          "item_reasons": {
            "description": "Indicates which line items triggered a threshold invoice.",
            "items": {
              "$ref": "#/components/schemas/invoice_item_threshold_reason"
            },
            "type": "array"
          }
        },
        "required": ["item_reasons"],
        "title": "InvoiceThresholdReason",
        "type": "object",
        "x-expandableFields": ["item_reasons"]
      },
      "tax_amount": {
        "properties": {
          "amount": {
            "description": "The amount, in %s, of the tax.",
            "type": "integer"
          },
          "inclusive": {
            "description": "Whether this tax amount is inclusive or exclusive.",
            "type": "boolean"
          },
          "tax_rate": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/tax_rate"
              }
            ],
            "description": "The tax rate that was applied to get this tax amount.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/tax_rate"
                }
              ]
            }
          }
        },
        "required": ["amount", "inclusive", "tax_rate"],
        "title": "TaxAmount",
        "type": "object",
        "x-expandableFields": ["tax_rate"]
      },
      "tax_id": {
        "properties": {
          "country": {
            "description": "Two-letter ISO code representing the country of the tax ID.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "customer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/customer"
              }
            ],
            "description": "ID of the customer.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/customer"
                }
              ]
            }
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["tax_id"],
            "type": "string"
          },
          "type": {
            "description": "Type of the tax ID, one of `au_abn`, `eu_vat`, `in_gst`, `no_vat`, `nz_gst`, or `unknown`",
            "enum": [
              "au_abn",
              "eu_vat",
              "in_gst",
              "no_vat",
              "nz_gst",
              "unknown"
            ],
            "type": "string"
          },
          "value": {
            "description": "Value of the tax ID.",
            "maxLength": 5000,
            "type": "string"
          },
          "verification": {
            "$ref": "#/components/schemas/tax_id_verification"
          }
        },
        "required": [
          "created",
          "customer",
          "id",
          "livemode",
          "object",
          "type",
          "value",
          "verification"
        ],
        "title": "tax_id",
        "type": "object",
        "x-expandableFields": ["customer", "verification"],
        "x-resourceId": "tax_id"
      },
      "tax_id_verification": {
        "properties": {
          "status": {
            "description": "Verification status, one of `pending`, `unavailable`, `unverified`, or `verified`.",
            "enum": ["pending", "unavailable", "unverified", "verified"],
            "type": "string"
          },
          "verified_address": {
            "description": "Verified address.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "verified_name": {
            "description": "Verified name.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": ["status"],
        "title": "tax_id_verification",
        "type": "object",
        "x-expandableFields": []
      },
      "coupon": {
        "properties": {
          "amount_off": {
            "description": "Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.",
            "nullable": true,
            "type": "integer"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "If `amount_off` has been set, the three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the amount to take off.",
            "maxLength": 3,
            "nullable": true,
            "type": "string"
          },
          "duration": {
            "description": "One of `forever`, `once`, and `repeating`. Describes how long a customer who applies this coupon will get the discount.",
            "enum": ["forever", "once", "repeating"],
            "type": "string"
          },
          "duration_in_months": {
            "description": "If `duration` is `repeating`, the number of months the coupon applies. Null if coupon `duration` is `forever` or `once`.",
            "nullable": true,
            "type": "integer"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "max_redemptions": {
            "description": "Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.",
            "nullable": true,
            "type": "integer"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "name": {
            "description": "Name of the coupon displayed to customers on for instance invoices or receipts.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["coupon"],
            "type": "string"
          },
          "percent_off": {
            "description": "Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a %s100 invoice %s50 instead.",
            "nullable": true,
            "type": "number"
          },
          "redeem_by": {
            "description": "Date after which the coupon can no longer be redeemed.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "times_redeemed": {
            "description": "Number of times this coupon has been applied to a customer.",
            "type": "integer"
          },
          "valid": {
            "description": "Taking account of the above properties, whether this coupon can still be applied to a customer.",
            "type": "boolean"
          }
        },
        "required": [
          "created",
          "duration",
          "id",
          "livemode",
          "metadata",
          "object",
          "times_redeemed",
          "valid"
        ],
        "title": "Coupon",
        "type": "object",
        "x-expandableFields": [],
        "x-resourceId": "coupon"
      },
      "tax_info": {
        "properties": {
          "tax_id": {
            "description": "The customer's tax ID number.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The type of ID number.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": ["type"],
        "title": "TaxInfo",
        "type": "object",
        "x-expandableFields": []
      },
      "invoice_setting_customer_setting": {
        "properties": {
          "custom_fields": {
            "description": "Default custom fields to be displayed on invoices for this customer.",
            "items": {
              "$ref": "#/components/schemas/invoice_setting_custom_field"
            },
            "nullable": true,
            "type": "array"
          },
          "default_payment_method": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/payment_method"
              }
            ],
            "description": "ID of the default payment method used for subscriptions and invoices for the customer.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/payment_method"
                }
              ]
            }
          },
          "footer": {
            "description": "Default footer to be displayed on invoices for this customer.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "InvoiceSettingCustomerSetting",
        "type": "object",
        "x-expandableFields": ["custom_fields", "default_payment_method"]
      },
      "payment_method": {
        "properties": {
          "billing_details": {
            "$ref": "#/components/schemas/billing_details"
          },
          "card": {
            "$ref": "#/components/schemas/payment_method_card"
          },
          "card_present": {
            "$ref": "#/components/schemas/payment_method_card_present"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "customer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/customer"
              }
            ],
            "description": "The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/customer"
                }
              ]
            }
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["payment_method"],
            "type": "string"
          },
          "type": {
            "description": "The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.",
            "enum": ["card", "card_present"],
            "type": "string"
          }
        },
        "required": [
          "billing_details",
          "created",
          "id",
          "livemode",
          "metadata",
          "object",
          "type"
        ],
        "title": "PaymentMethod",
        "type": "object",
        "x-expandableFields": [
          "billing_details",
          "card",
          "card_present",
          "customer"
        ],
        "x-resourceId": "payment_method"
      },
      "payment_method_card": {
        "properties": {
          "brand": {
            "description": "Card brand. Can be `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.",
            "maxLength": 5000,
            "type": "string"
          },
          "checks": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/payment_method_card_checks"
              }
            ],
            "description": "Checks on Card address and CVC if provided.",
            "nullable": true
          },
          "country": {
            "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "exp_month": {
            "description": "Two-digit number representing the card's expiration month.",
            "type": "integer"
          },
          "exp_year": {
            "description": "Four-digit number representing the card's expiration year.",
            "type": "integer"
          },
          "fingerprint": {
            "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "funding": {
            "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.",
            "maxLength": 5000,
            "type": "string"
          },
          "generated_from": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/payment_method_card_generated_card"
              }
            ],
            "description": "Details of the original PaymentMethod that created this object.",
            "nullable": true
          },
          "last4": {
            "description": "The last four digits of the card.",
            "maxLength": 5000,
            "type": "string"
          },
          "three_d_secure_usage": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/three_d_secure_usage"
              }
            ],
            "description": "Contains details on how this Card maybe be used for 3D Secure authentication.",
            "nullable": true
          },
          "wallet": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/payment_method_card_wallet"
              }
            ],
            "description": "If this Card is part of a card wallet, this contains the details of the card wallet.",
            "nullable": true
          }
        },
        "required": ["brand", "exp_month", "exp_year", "funding", "last4"],
        "title": "payment_method_card",
        "type": "object",
        "x-expandableFields": [
          "checks",
          "generated_from",
          "three_d_secure_usage",
          "wallet"
        ]
      },
      "payment_method_card_checks": {
        "properties": {
          "address_line1_check": {
            "description": "If a address line1 was provided, results of the check, one of 'pass', 'failed', 'unavailable' or 'unchecked'.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "address_postal_code_check": {
            "description": "If a address postal code was provided, results of the check, one of 'pass', 'failed', 'unavailable' or 'unchecked'.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "cvc_check": {
            "description": "If a CVC was provided, results of the check, one of 'pass', 'failed', 'unavailable' or 'unchecked'.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_card_checks",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_card_generated_card": {
        "properties": {
          "charge": {
            "description": "The charge that created this object.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "payment_method_details": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/payment_method_details"
              }
            ],
            "description": "Transaction-specific details of the payment method used in the payment.",
            "nullable": true
          }
        },
        "title": "payment_method_card_generated_card",
        "type": "object",
        "x-expandableFields": ["payment_method_details"]
      },
      "payment_method_card_present": {
        "properties": {},
        "title": "payment_method_card_present",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_card_wallet": {
        "properties": {
          "amex_express_checkout": {
            "$ref": "#/components/schemas/payment_method_card_wallet_amex_express_checkout"
          },
          "apple_pay": {
            "$ref": "#/components/schemas/payment_method_card_wallet_apple_pay"
          },
          "dynamic_last4": {
            "description": "(For tokenized numbers only.) The last four digits of the device account number.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "google_pay": {
            "$ref": "#/components/schemas/payment_method_card_wallet_google_pay"
          },
          "masterpass": {
            "$ref": "#/components/schemas/payment_method_card_wallet_masterpass"
          },
          "samsung_pay": {
            "$ref": "#/components/schemas/payment_method_card_wallet_samsung_pay"
          },
          "type": {
            "description": "The type of the card wallet, one of `amex_express_checkout`, `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, or `visa_checkout`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.",
            "enum": [
              "amex_express_checkout",
              "apple_pay",
              "google_pay",
              "masterpass",
              "samsung_pay",
              "visa_checkout"
            ],
            "type": "string"
          },
          "visa_checkout": {
            "$ref": "#/components/schemas/payment_method_card_wallet_visa_checkout"
          }
        },
        "required": ["type"],
        "title": "payment_method_card_wallet",
        "type": "object",
        "x-expandableFields": [
          "amex_express_checkout",
          "apple_pay",
          "google_pay",
          "masterpass",
          "samsung_pay",
          "visa_checkout"
        ]
      },
      "payment_method_card_wallet_amex_express_checkout": {
        "properties": {},
        "title": "payment_method_card_wallet_amex_express_checkout",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_card_wallet_apple_pay": {
        "properties": {},
        "title": "payment_method_card_wallet_apple_pay",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_card_wallet_google_pay": {
        "properties": {},
        "title": "payment_method_card_wallet_google_pay",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_card_wallet_masterpass": {
        "properties": {
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "nullable": true
          },
          "email": {
            "description": "Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "nullable": true
          }
        },
        "title": "payment_method_card_wallet_masterpass",
        "type": "object",
        "x-expandableFields": ["billing_address", "shipping_address"]
      },
      "payment_method_card_wallet_samsung_pay": {
        "properties": {},
        "title": "payment_method_card_wallet_samsung_pay",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_card_wallet_visa_checkout": {
        "properties": {
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "nullable": true
          },
          "email": {
            "description": "Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "nullable": true
          }
        },
        "title": "payment_method_card_wallet_visa_checkout",
        "type": "object",
        "x-expandableFields": ["billing_address", "shipping_address"]
      },
      "payment_method_details": {
        "properties": {
          "ach_credit_transfer": {
            "$ref": "#/components/schemas/payment_method_details_ach_credit_transfer"
          },
          "ach_debit": {
            "$ref": "#/components/schemas/payment_method_details_ach_debit"
          },
          "alipay": {
            "$ref": "#/components/schemas/payment_method_details_alipay"
          },
          "bancontact": {
            "$ref": "#/components/schemas/payment_method_details_bancontact"
          },
          "card": {
            "$ref": "#/components/schemas/payment_method_details_card"
          },
          "card_present": {
            "$ref": "#/components/schemas/payment_method_details_card_present"
          },
          "eps": {
            "$ref": "#/components/schemas/payment_method_details_eps"
          },
          "giropay": {
            "$ref": "#/components/schemas/payment_method_details_giropay"
          },
          "ideal": {
            "$ref": "#/components/schemas/payment_method_details_ideal"
          },
          "multibanco": {
            "$ref": "#/components/schemas/payment_method_details_multibanco"
          },
          "p24": {
            "$ref": "#/components/schemas/payment_method_details_p24"
          },
          "sepa_debit": {
            "$ref": "#/components/schemas/payment_method_details_sepa_debit"
          },
          "sofort": {
            "$ref": "#/components/schemas/payment_method_details_sofort"
          },
          "stripe_account": {
            "$ref": "#/components/schemas/payment_method_details_stripe_account"
          },
          "type": {
            "description": "The type of transaction-specific details of the payment method used in the payment, one of `ach_credit_transfer`, `ach_debit`, `alipay`, `bancontact`, `card`, `card_present`, `eps`, `giropay`, `ideal`, `multibanco`, `p24`, `sepa_debit`, `sofort`, `stripe_account`, or `wechat`.\nAn additional hash is included on `payment_method_details` with a name matching this value.\nIt contains information specific to the payment method.",
            "maxLength": 5000,
            "type": "string"
          },
          "wechat": {
            "$ref": "#/components/schemas/payment_method_details_wechat"
          }
        },
        "required": ["type"],
        "title": "payment_method_details",
        "type": "object",
        "x-expandableFields": [
          "ach_credit_transfer",
          "ach_debit",
          "alipay",
          "bancontact",
          "card",
          "card_present",
          "eps",
          "giropay",
          "ideal",
          "multibanco",
          "p24",
          "sepa_debit",
          "sofort",
          "stripe_account",
          "wechat"
        ]
      },
      "payment_method_details_ach_credit_transfer": {
        "properties": {
          "account_number": {
            "description": "Account number to transfer funds to.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "bank_name": {
            "description": "Name of the bank associated with the routing number.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "routing_number": {
            "description": "Routing transit number for the bank account to transfer funds to.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "swift_code": {
            "description": "SWIFT code of the bank associated with the routing number.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_ach_credit_transfer",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_ach_debit": {
        "properties": {
          "account_holder_type": {
            "description": "Type of entity that holds the account. This can be either `individual` or `company`.",
            "enum": ["company", "individual"],
            "nullable": true,
            "type": "string"
          },
          "bank_name": {
            "description": "Name of the bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "country": {
            "description": "Two-letter ISO code representing the country the bank account is located in.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "fingerprint": {
            "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "last4": {
            "description": "Last four digits of the bank account number.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "routing_number": {
            "description": "Routing transit number of the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_ach_debit",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_alipay": {
        "properties": {},
        "title": "payment_method_details_alipay",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_bancontact": {
        "properties": {
          "bank_code": {
            "description": "Bank code of bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "bank_name": {
            "description": "Name of the bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "bic": {
            "description": "Bank Identifier Code of the bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "iban_last4": {
            "description": "Last four characters of the IBAN.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "preferred_language": {
            "description": "Preferred language of the Bancontact authorization page that the customer is redirected to.\nCan be one of `en`, `de`, `fr`, or `nl`",
            "enum": ["de", "en", "fr", "nl"],
            "nullable": true,
            "type": "string"
          },
          "verified_name": {
            "description": "Owner's verified full name. Values are verified or provided by Bancontact directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_bancontact",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_card": {
        "properties": {
          "brand": {
            "description": "Card brand. Can be `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "checks": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/payment_method_details_card_checks"
              }
            ],
            "description": "Check results by Card networks on Card address and CVC at time of payment.",
            "nullable": true
          },
          "country": {
            "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "exp_month": {
            "description": "Two-digit number representing the card's expiration month.",
            "nullable": true,
            "type": "integer"
          },
          "exp_year": {
            "description": "Four-digit number representing the card's expiration year.",
            "nullable": true,
            "type": "integer"
          },
          "fingerprint": {
            "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "funding": {
            "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "last4": {
            "description": "The last four digits of the card.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "three_d_secure": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/three_d_secure_details"
              }
            ],
            "description": "Populated if this transaction used 3D Secure authentication.",
            "nullable": true
          },
          "wallet": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/payment_method_details_card_wallet"
              }
            ],
            "description": "If this Card is part of a card wallet, this contains the details of the card wallet.",
            "nullable": true
          }
        },
        "title": "payment_method_details_card",
        "type": "object",
        "x-expandableFields": ["checks", "three_d_secure", "wallet"]
      },
      "payment_method_details_card_checks": {
        "properties": {
          "address_line1_check": {
            "description": "If a address line1 was provided, results of the check, one of 'pass', 'failed', 'unavailable' or 'unchecked'.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "address_postal_code_check": {
            "description": "If a address postal code was provided, results of the check, one of 'pass', 'failed', 'unavailable' or 'unchecked'.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "cvc_check": {
            "description": "If a CVC was provided, results of the check, one of 'pass', 'failed', 'unavailable' or 'unchecked'.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_card_checks",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_card_present": {
        "properties": {
          "brand": {
            "description": "Card brand. Can be `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "country": {
            "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "emv_auth_data": {
            "description": "Authorization response cryptogram.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "exp_month": {
            "description": "Two-digit number representing the card's expiration month.",
            "nullable": true,
            "type": "integer"
          },
          "exp_year": {
            "description": "Four-digit number representing the card's expiration year.",
            "nullable": true,
            "type": "integer"
          },
          "fingerprint": {
            "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "funding": {
            "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "generated_card": {
            "description": "ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "last4": {
            "description": "The last four digits of the card.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "read_method": {
            "description": "How were card details read in this transaction. Can be contact_emv, contactless_emv, magnetic_stripe_fallback, magnetic_stripe_track2, or contactless_magstripe_mode",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "receipt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/payment_method_details_card_present_receipt"
              }
            ],
            "description": "A collection of fields required to be displayed on receipts. Only required for EMV transactions.",
            "nullable": true
          }
        },
        "title": "payment_method_details_card_present",
        "type": "object",
        "x-expandableFields": ["receipt"]
      },
      "payment_method_details_card_present_receipt": {
        "properties": {
          "application_cryptogram": {
            "description": "EMV tag 9F26, cryptogram generated by the integrated circuit chip.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "application_preferred_name": {
            "description": "Mnenomic of the Application Identifier.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "authorization_code": {
            "description": "Identifier for this transaction.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "authorization_response_code": {
            "description": "EMV tag 8A. A code returned by the card issuer.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "cardholder_verification_method": {
            "description": "How the cardholder verified ownership of the card.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "dedicated_file_name": {
            "description": "EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "terminal_verification_results": {
            "description": "The outcome of a series of EMV functions performed by the card reader.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "transaction_status_information": {
            "description": "An indication of various EMV functions performed during the transaction.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_card_present_receipt",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_card_wallet": {
        "properties": {
          "amex_express_checkout": {
            "$ref": "#/components/schemas/payment_method_details_card_wallet_amex_express_checkout"
          },
          "apple_pay": {
            "$ref": "#/components/schemas/payment_method_details_card_wallet_apple_pay"
          },
          "dynamic_last4": {
            "description": "(For tokenized numbers only.) The last four digits of the device account number.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "google_pay": {
            "$ref": "#/components/schemas/payment_method_details_card_wallet_google_pay"
          },
          "masterpass": {
            "$ref": "#/components/schemas/payment_method_details_card_wallet_masterpass"
          },
          "samsung_pay": {
            "$ref": "#/components/schemas/payment_method_details_card_wallet_samsung_pay"
          },
          "type": {
            "description": "The type of the card wallet, one of `amex_express_checkout`, `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, or `visa_checkout`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.",
            "enum": [
              "amex_express_checkout",
              "apple_pay",
              "google_pay",
              "masterpass",
              "samsung_pay",
              "visa_checkout"
            ],
            "type": "string"
          },
          "visa_checkout": {
            "$ref": "#/components/schemas/payment_method_details_card_wallet_visa_checkout"
          }
        },
        "required": ["type"],
        "title": "payment_method_details_card_wallet",
        "type": "object",
        "x-expandableFields": [
          "amex_express_checkout",
          "apple_pay",
          "google_pay",
          "masterpass",
          "samsung_pay",
          "visa_checkout"
        ]
      },
      "payment_method_details_card_wallet_amex_express_checkout": {
        "properties": {},
        "title": "payment_method_details_card_wallet_amex_express_checkout",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_card_wallet_apple_pay": {
        "properties": {},
        "title": "payment_method_details_card_wallet_apple_pay",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_card_wallet_google_pay": {
        "properties": {},
        "title": "payment_method_details_card_wallet_google_pay",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_card_wallet_masterpass": {
        "properties": {
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "nullable": true
          },
          "email": {
            "description": "Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "nullable": true
          }
        },
        "title": "payment_method_details_card_wallet_masterpass",
        "type": "object",
        "x-expandableFields": ["billing_address", "shipping_address"]
      },
      "payment_method_details_card_wallet_samsung_pay": {
        "properties": {},
        "title": "payment_method_details_card_wallet_samsung_pay",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_card_wallet_visa_checkout": {
        "properties": {
          "billing_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "nullable": true
          },
          "email": {
            "description": "Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "shipping_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "nullable": true
          }
        },
        "title": "payment_method_details_card_wallet_visa_checkout",
        "type": "object",
        "x-expandableFields": ["billing_address", "shipping_address"]
      },
      "payment_method_details_eps": {
        "properties": {
          "verified_name": {
            "description": "Owner's verified full name. Values are verified or provided by EPS directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_eps",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_giropay": {
        "properties": {
          "bank_code": {
            "description": "Bank code of bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "bank_name": {
            "description": "Name of the bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "bic": {
            "description": "Bank Identifier Code of the bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "verified_name": {
            "description": "Owner's verified full name. Values are verified or provided by Giropay directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_giropay",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_ideal": {
        "properties": {
          "bank": {
            "description": "The customer's bank. Can be one of `abn_amro`, `asn_bank`, `bunq`, `handelsbanken`, `ing`, `knab`, `moneyou`, `rabobank`, `regiobank`, `sns_bank`, `triodos_bank`, or `van_lanschot`.",
            "enum": [
              "abn_amro",
              "asn_bank",
              "bunq",
              "handelsbanken",
              "ing",
              "knab",
              "moneyou",
              "rabobank",
              "regiobank",
              "sns_bank",
              "triodos_bank",
              "van_lanschot"
            ],
            "nullable": true,
            "type": "string"
          },
          "bic": {
            "description": "The Bank Identifier Code of the customer's bank.",
            "enum": [
              "ABNANL2A",
              "ASNBNL21",
              "BUNQNL2A",
              "FVLBNL22",
              "HANDNL2A",
              "INGBNL2A",
              "KNABNL2H",
              "MOYONL21",
              "RABONL2U",
              "RBRBNL21",
              "SNSBNL2A",
              "TRIONL2U"
            ],
            "nullable": true,
            "type": "string"
          },
          "iban_last4": {
            "description": "Last four characters of the IBAN.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "verified_name": {
            "description": "Owner's verified full name. Values are verified or provided by iDEAL directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_ideal",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_multibanco": {
        "properties": {
          "entity": {
            "description": "Entity number associated with this Multibanco payment.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "reference": {
            "description": "Reference number associated with this Multibanco payment.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_multibanco",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_p24": {
        "properties": {
          "reference": {
            "description": "Unique reference for this Przelewy24 payment.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "verified_name": {
            "description": "Owner's verified full name. Values are verified or provided by Przelewy24 directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_p24",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_sepa_debit": {
        "properties": {
          "bank_code": {
            "description": "Bank code of bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "branch_code": {
            "description": "Branch code of bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "country": {
            "description": "Two-letter ISO code representing the country the bank account is located in.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "fingerprint": {
            "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "last4": {
            "description": "Last four characters of the IBAN.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_sepa_debit",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_sofort": {
        "properties": {
          "bank_code": {
            "description": "Bank code of bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "bank_name": {
            "description": "Name of the bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "bic": {
            "description": "Bank Identifier Code of the bank associated with the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "country": {
            "description": "Two-letter ISO code representing the country the bank account is located in.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "iban_last4": {
            "description": "Last four characters of the IBAN.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "verified_name": {
            "description": "Owner's verified full name. Values are verified or provided by SOFORT directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "payment_method_details_sofort",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_stripe_account": {
        "properties": {},
        "title": "payment_method_details_stripe_account",
        "type": "object",
        "x-expandableFields": []
      },
      "payment_method_details_wechat": {
        "properties": {},
        "title": "payment_method_details_wechat",
        "type": "object",
        "x-expandableFields": []
      },
      "three_d_secure_details": {
        "properties": {
          "authenticated": {
            "description": "Whether or not authentication was performed. 3D Secure will succeed without authentication when the card is not enrolled.",
            "type": "boolean"
          },
          "succeeded": {
            "description": "Whether or not 3D Secure succeeded.",
            "type": "boolean"
          },
          "version": {
            "description": "The version of 3D Secure that was used for this payment.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": ["authenticated", "succeeded", "version"],
        "title": "three_d_secure_details",
        "type": "object",
        "x-expandableFields": []
      },
      "three_d_secure_usage": {
        "properties": {
          "supported": {
            "description": "Whether 3D Secure is supported on this card.",
            "type": "boolean"
          }
        },
        "required": ["supported"],
        "title": "three_d_secure_usage",
        "type": "object",
        "x-expandableFields": []
      },
      "billing_details": {
        "properties": {
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/address"
              }
            ],
            "description": "Billing address.",
            "nullable": true
          },
          "email": {
            "description": "Email address.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Full name.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "phone": {
            "description": "Billing phone number (including extension).",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "billing_details",
        "type": "object",
        "x-expandableFields": ["address"]
      },
      "invoice_line_item_period": {
        "properties": {
          "end": {
            "description": "End of the line item's billing period",
            "type": "integer"
          },
          "start": {
            "description": "Start of the line item's billing period",
            "type": "integer"
          }
        },
        "required": ["end", "start"],
        "title": "InvoiceLineItemPeriod",
        "type": "object",
        "x-expandableFields": []
      },
      "invoice_item_threshold_reason": {
        "properties": {
          "line_item_ids": {
            "description": "The IDs of the line items that triggered the threshold invoice.",
            "items": {
              "maxLength": 5000,
              "type": "string"
            },
            "type": "array"
          },
          "usage_gte": {
            "description": "The quantity threshold boundary that applied to the given line item.",
            "type": "integer"
          }
        },
        "required": ["line_item_ids", "usage_gte"],
        "title": "InvoiceItemThresholdReason",
        "type": "object",
        "x-expandableFields": []
      },
      "review": {
        "properties": {
          "billing_zip": {
            "description": "The ZIP or postal code of the card used, if applicable.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "charge": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/charge"
              }
            ],
            "description": "The charge associated with this review.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/charge"
                }
              ]
            }
          },
          "closed_reason": {
            "description": "The reason the review was closed, or null if it has not yet been closed. One of `approved`, `refunded`, `refunded_as_fraud`, or `disputed`.",
            "enum": ["approved", "disputed", "refunded", "refunded_as_fraud"],
            "nullable": true,
            "type": "string"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "ip_address": {
            "description": "The IP address where the payment originated.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["review"],
            "type": "string"
          },
          "open": {
            "description": "If `true`, the review needs action.",
            "type": "boolean"
          },
          "opened_reason": {
            "description": "The reason the review was opened. One of `rule` or `manual`.",
            "enum": ["manual", "rule"],
            "type": "string"
          },
          "payment_intent": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/payment_intent"
              }
            ],
            "description": "The PaymentIntent ID associated with this review, if one exists.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/payment_intent"
                }
              ]
            }
          },
          "reason": {
            "description": "The reason the review is currently open or closed. One of `rule`, `manual`, `approved`, `refunded`, `refunded_as_fraud`, or `disputed`.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": [
          "created",
          "id",
          "livemode",
          "object",
          "open",
          "opened_reason",
          "reason"
        ],
        "title": "RadarReview",
        "type": "object",
        "x-expandableFields": [
          "charge",
          "ip_address_location",
          "payment_intent",
          "session"
        ],
        "x-resourceId": "review"
      },
      "charge": {
        "properties": {
          "amount": {
            "description": "A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://support.stripe.com/questions/what-is-the-minimum-amount-i-can-charge-with-stripe).",
            "type": "integer"
          },
          "amount_refunded": {
            "description": "Amount in %s refunded (can be less than the amount attribute on the charge if a partial refund was issued).",
            "type": "integer"
          },
          "application": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/application"
              }
            ],
            "description": "ID of the Connect application that created the charge.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/application"
                }
              ]
            }
          },
          "application_fee": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/application_fee"
              }
            ],
            "description": "The application fee (if any) for the charge. [See the Connect documentation](https://stripe.com/docs/connect/direct-charges#collecting-fees) for details.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/application_fee"
                }
              ]
            }
          },
          "application_fee_amount": {
            "description": "The amount of the application fee (if any) for the charge. [See the Connect documentation](https://stripe.com/docs/connect/direct-charges#collecting-fees) for details.",
            "nullable": true,
            "type": "integer"
          },
          "balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "description": "ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "billing_details": {
            "$ref": "#/components/schemas/billing_details"
          },
          "captured": {
            "description": "If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.",
            "type": "boolean"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "customer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/customer"
              },
              {
                "$ref": "#/components/schemas/deleted_customer"
              }
            ],
            "description": "ID of the customer this charge is for if one exists.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/customer"
                },
                {
                  "$ref": "#/components/schemas/deleted_customer"
                }
              ]
            }
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 40000,
            "nullable": true,
            "type": "string"
          },
          "dispute": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/dispute"
              }
            ],
            "description": "Details about the dispute if the charge has been disputed.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/dispute"
                }
              ]
            }
          },
          "failure_code": {
            "description": "Error code explaining reason for charge failure if available (see [the errors section](https://stripe.com/docs/api#errors) for a list of codes).",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "failure_message": {
            "description": "Message to user further explaining reason for charge failure if available.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "fraud_details": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/charge_fraud_details"
              }
            ],
            "description": "Information on fraud assessments for the charge.",
            "nullable": true
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "invoice": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/org_invoice_schema"
              }
            ],
            "description": "ID of the invoice this charge is for if one exists.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/org_invoice_schema"
                }
              ]
            }
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["charge"],
            "type": "string"
          },
          "order": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/order"
              }
            ],
            "description": "ID of the order this charge is for if one exists.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/order"
                }
              ]
            }
          },
          "outcome": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/charge_outcome"
              }
            ],
            "description": "Details about whether the payment was accepted, and why. See [understanding declines](https://stripe.com/docs/declines) for details.",
            "nullable": true
          },
          "paid": {
            "description": "`true` if the charge succeeded, or was successfully authorized for later capture.",
            "type": "boolean"
          },
          "payment_intent": {
            "description": "ID of the PaymentIntent associated with this charge, if one exists.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "payment_method": {
            "description": "ID of the payment method used in this charge.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "payment_method_details": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/payment_method_details"
              }
            ],
            "description": "Details about the payment method at the time of the transaction.",
            "nullable": true
          },
          "receipt_email": {
            "description": "This is the email address that the receipt for this charge was sent to.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "receipt_number": {
            "description": "This is the transaction number that appears on email receipts sent for this charge. This attribute will be `null` until a receipt has been sent.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "receipt_url": {
            "description": "This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt will be stylized as an Invoice receipt.",
            "maxLength": 5000,
            "type": "string"
          },
          "refunded": {
            "description": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.",
            "type": "boolean"
          },
          "refunds": {
            "description": "A list of refunds that have been applied to the charge.",
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/refund"
                },
                "type": "array"
              },
              "has_more": {
                "description": "True if this list has another page of items after this one that can be fetched.",
                "type": "boolean"
              },
              "object": {
                "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
                "enum": ["list"],
                "type": "string"
              },
              "url": {
                "description": "The URL where this list can be accessed.",
                "maxLength": 5000,
                "type": "string"
              }
            },
            "required": ["data", "has_more", "object", "url"],
            "title": "RefundList",
            "type": "object",
            "x-expandableFields": ["data"]
          },
          "review": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/review"
              }
            ],
            "description": "ID of the review associated with this charge if one exists.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/review"
                }
              ]
            }
          },
          "shipping": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/shipping"
              }
            ],
            "description": "Shipping information for the charge.",
            "nullable": true
          },
          "source_transfer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/transfer"
              }
            ],
            "description": "The transfer ID which created this charge. Only present if the charge came from another Stripe account. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/transfer"
                }
              ]
            }
          },
          "statement_descriptor": {
            "description": "Extra information about a charge. This will appear on your customer's credit card statement. It must contain at least one letter.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The status of the payment is either `succeeded`, `pending`, or `failed`.",
            "maxLength": 5000,
            "type": "string"
          },
          "transfer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/transfer"
              }
            ],
            "description": "ID of the transfer to the `destination` account (only applicable if the charge was created using the `destination` parameter).",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/transfer"
                }
              ]
            }
          },
          "transfer_data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/charge_transfer_data"
              }
            ],
            "description": "An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.",
            "nullable": true
          },
          "transfer_group": {
            "description": "A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/charges-transfers#grouping-transactions) for details.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "amount_refunded",
          "billing_details",
          "captured",
          "created",
          "currency",
          "id",
          "livemode",
          "metadata",
          "object",
          "paid",
          "receipt_url",
          "refunded",
          "refunds",
          "status"
        ],
        "title": "Charge",
        "type": "object",
        "x-expandableFields": [
          "application",
          "application_fee",
          "balance_transaction",
          "billing_details",
          "customer",
          "dispute",
          "fraud_details",
          "invoice",
          "on_behalf_of",
          "order",
          "outcome",
          "payment_method_details",
          "refunds",
          "review",
          "shipping",
          "source_transfer",
          "transfer",
          "transfer_data"
        ],
        "x-resourceId": "charge"
      },
      "charge_fraud_details": {
        "properties": {
          "stripe_report": {
            "description": "Assessments from Stripe. If set, the value is `fraudulent`.",
            "maxLength": 5000,
            "type": "string"
          },
          "user_report": {
            "description": "Assessments reported by you. If set, possible values of are `safe` and `fraudulent`.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "title": "ChargeFraudDetails",
        "type": "object",
        "x-expandableFields": []
      },
      "charge_outcome": {
        "properties": {
          "network_status": {
            "description": "Possible values are `approved_by_network`, `declined_by_network`, `not_sent_to_network`, and `reversed_after_approval`. The value `reversed_after_approval` indicates the payment was [blocked by Stripe](https://stripe.com/docs/declines#blocked-payments) after bank authorization, and may temporarily appear as \"pending\" on a cardholder's statement.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "reason": {
            "description": "An enumerated value providing a more detailed explanation of the outcome's `type`. Charges blocked by Radar's default block rule have the value `highest_risk_level`. Charges placed in review by Radar's default review rule have the value `elevated_risk_level`. Charges authorized, blocked, or placed in review by custom rules have the value `rule`. See [understanding declines](https://stripe.com/docs/declines) for more details.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "risk_level": {
            "description": "Stripe's evaluation of the riskiness of the payment. Possible values for evaluated payments are `normal`, `elevated`, `highest`. For non-card payments, and card-based payments predating the public assignment of risk levels, this field will have the value `not_assessed`. In the event of an error in the evaluation, this field will have the value `unknown`.",
            "maxLength": 5000,
            "type": "string"
          },
          "risk_score": {
            "description": "Stripe's evaluation of the riskiness of the payment. Possible values for evaluated payments are between 0 and 100. For non-card payments, card-based payments predating the public assignment of risk scores, or in the event of an error during evaluation, this field will not be present. This field is only available with Radar for Fraud Teams.",
            "type": "integer"
          },
          "rule": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/rule"
              }
            ],
            "description": "The ID of the Radar rule that matched the payment, if applicable.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/rule"
                }
              ]
            }
          },
          "seller_message": {
            "description": "A human-readable description of the outcome type and reason, designed for you (the recipient of the payment), not your customer.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "Possible values are `authorized`, `manual_review`, `issuer_declined`, `blocked`, and `invalid`. See [understanding declines](https://stripe.com/docs/declines) and [Radar reviews](radar/review) for details.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": ["type"],
        "title": "ChargeOutcome",
        "type": "object",
        "x-expandableFields": ["rule"]
      },
      "charge_transfer_data": {
        "properties": {
          "amount": {
            "description": "The amount transferred to the destination account, if specified. By default, the entire charge amount is transferred to the destination account.",
            "nullable": true,
            "type": "integer"
          }
        },
        "required": ["destination"],
        "title": "ChargeTransferData",
        "type": "object",
        "x-expandableFields": ["destination"]
      },
      "order": {
        "properties": {
          "amount": {
            "description": "A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the order.",
            "type": "integer"
          },
          "amount_returned": {
            "nullable": true,
            "type": "integer"
          },
          "application": {
            "description": "ID of the Connect Application that created the order.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "application_fee": {
            "nullable": true,
            "type": "integer"
          },
          "charge": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/charge"
              }
            ],
            "description": "The ID of the payment used to pay for the order. Present if the order status is `paid`, `fulfilled`, or `refunded`.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/charge"
                }
              ]
            }
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "customer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/customer"
              },
              {
                "$ref": "#/components/schemas/deleted_customer"
              }
            ],
            "description": "The customer used for the order.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/customer"
                },
                {
                  "$ref": "#/components/schemas/deleted_customer"
                }
              ]
            }
          },
          "email": {
            "description": "The email address of the customer placing the order.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "external_coupon_code": {
            "maxLength": 5000,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "items": {
            "description": "List of items constituting the order. An order can have up to 25 items.",
            "items": {
              "$ref": "#/components/schemas/order_item"
            },
            "type": "array"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["order"],
            "type": "string"
          },
          "returns": {
            "nullable": true,
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/order_return"
                },
                "type": "array"
              },
              "has_more": {
                "description": "True if this list has another page of items after this one that can be fetched.",
                "type": "boolean"
              },
              "object": {
                "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
                "enum": ["list"],
                "type": "string"
              },
              "url": {
                "description": "The URL where this list can be accessed.",
                "maxLength": 5000,
                "type": "string"
              }
            },
            "required": ["data", "has_more", "object", "url"],
            "title": "OrderReturnList",
            "type": "object",
            "x-expandableFields": ["data"]
          },
          "selected_shipping_method": {
            "description": "The shipping method that is currently selected for this order, if any. If present, it is equal to one of the `id`s of shipping methods in the `shipping_methods` array. At order creation time, if there are multiple shipping methods, Stripe will automatically selected the first method.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "shipping": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/shipping"
              }
            ],
            "description": "The shipping address for the order. Present if the order is for goods to be shipped.",
            "nullable": true
          },
          "status": {
            "description": "Current order status. One of `created`, `paid`, `canceled`, `fulfilled`, or `returned`. More details in the [Orders Guide](https://stripe.com/docs/orders/guide#understanding-order-statuses).",
            "maxLength": 5000,
            "type": "string"
          },
          "status_transitions": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/status_transitions"
              }
            ],
            "description": "The timestamps at which the order status was updated.",
            "nullable": true
          },
          "updated": {
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "upstream_id": {
            "description": "The user's order ID if it is different from the Stripe order ID.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "created",
          "currency",
          "id",
          "items",
          "livemode",
          "metadata",
          "object",
          "status"
        ],
        "title": "Order",
        "type": "object",
        "x-expandableFields": [
          "charge",
          "customer",
          "items",
          "returns",
          "shipping",
          "shipping_methods",
          "status_transitions"
        ],
        "x-resourceId": "order"
      },
      "order_item": {
        "properties": {
          "amount": {
            "description": "A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the line item.",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "description": {
            "description": "Description of the line item, meant to be displayable to the user (e.g., `\"Express shipping\"`).",
            "maxLength": 5000,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["order_item"],
            "type": "string"
          },
          "quantity": {
            "description": "A positive integer representing the number of instances of `parent` that are included in this order item. Applicable/present only if `type` is `sku`.",
            "nullable": true,
            "type": "integer"
          },
          "type": {
            "description": "The type of line item. One of `sku`, `tax`, `shipping`, or `discount`.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": ["amount", "currency", "description", "object", "type"],
        "title": "OrderItem",
        "type": "object",
        "x-expandableFields": ["parent"]
      },
      "order_return": {
        "properties": {
          "amount": {
            "description": "A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the returned line item.",
            "type": "integer"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "items": {
            "description": "The items included in this order return.",
            "items": {
              "$ref": "#/components/schemas/order_item"
            },
            "type": "array"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["order_return"],
            "type": "string"
          },
          "order": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/order"
              }
            ],
            "description": "The order that this return includes items from.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/order"
                }
              ]
            }
          },
          "refund": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/refund"
              }
            ],
            "description": "The ID of the refund issued for this return.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/refund"
                }
              ]
            }
          }
        },
        "required": [
          "amount",
          "created",
          "currency",
          "id",
          "items",
          "livemode",
          "object"
        ],
        "title": "OrderReturn",
        "type": "object",
        "x-expandableFields": ["items", "order", "refund"],
        "x-resourceId": "order_return"
      },
      "refund": {
        "properties": {
          "amount": {
            "description": "Amount, in %s.",
            "type": "integer"
          },
          "balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "description": "Balance transaction that describes the impact on your account balance.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "charge": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/charge"
              }
            ],
            "description": "ID of the charge that was refunded.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/charge"
                }
              ]
            }
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)",
            "maxLength": 5000,
            "type": "string"
          },
          "failure_balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "description": "If the refund failed, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "failure_reason": {
            "description": "If the refund failed, the reason for refund failure if known. Possible values are `lost_or_stolen_card`, `expired_or_canceled_card`, or `unknown`.",
            "maxLength": 5000,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["refund"],
            "type": "string"
          },
          "reason": {
            "description": "Reason for the refund. If set, possible values are `duplicate`, `fraudulent`, and `requested_by_customer`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "receipt_number": {
            "description": "This is the transaction number that appears on email receipts sent for this refund.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "source_transfer_reversal": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/transfer_reversal"
              }
            ],
            "description": "The transfer reversal that is associated with the refund. Only present if the charge came from another Stripe account. See the Connect documentation for details.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/transfer_reversal"
                }
              ]
            }
          },
          "status": {
            "description": "Status of the refund. For credit card refunds, this can be `pending`, `succeeded`, or `failed`. For other types of refunds, it can be `pending`, `succeeded`, `failed`, or `canceled`. Refer to our [refunds](https://stripe.com/docs/refunds#failed-refunds) documentation for more details.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "transfer_reversal": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/transfer_reversal"
              }
            ],
            "description": "If the accompanying transfer was reversed, the transfer reversal object. Only applicable if the charge was created using the destination parameter.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/transfer_reversal"
                }
              ]
            }
          }
        },
        "required": [
          "amount",
          "created",
          "currency",
          "id",
          "metadata",
          "object"
        ],
        "title": "Refund",
        "type": "object",
        "x-expandableFields": [
          "balance_transaction",
          "charge",
          "failure_balance_transaction",
          "source_transfer_reversal",
          "transfer_reversal"
        ],
        "x-resourceId": "refund"
      },
      "transfer_reversal": {
        "properties": {
          "amount": {
            "description": "Amount, in %s.",
            "type": "integer"
          },
          "balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "description": "Balance transaction that describes the impact on your account balance.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "destination_payment_refund": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/refund"
              }
            ],
            "description": "Linked payment refund for the transfer reversal.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/refund"
                }
              ]
            }
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["transfer_reversal"],
            "type": "string"
          },
          "source_refund": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/refund"
              }
            ],
            "description": "ID of the refund responsible for the transfer reversal.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/refund"
                }
              ]
            }
          },
          "transfer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/transfer"
              }
            ],
            "description": "ID of the transfer that was reversed.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/transfer"
                }
              ]
            }
          }
        },
        "required": [
          "amount",
          "created",
          "currency",
          "id",
          "metadata",
          "object",
          "transfer"
        ],
        "title": "TransferReversal",
        "type": "object",
        "x-expandableFields": [
          "balance_transaction",
          "destination_payment_refund",
          "source_refund",
          "transfer"
        ],
        "x-resourceId": "transfer_reversal"
      },
      "balance_transaction": {
        "properties": {
          "amount": {
            "description": "Gross amount of the transaction, in %s.",
            "type": "integer"
          },
          "available_on": {
            "description": "The date the transaction's net funds will become available in the Stripe balance.",
            "format": "unix-time",
            "type": "integer"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "exchange_rate": {
            "nullable": true,
            "type": "number"
          },
          "fee": {
            "description": "Fees (in %s) paid for this transaction.",
            "type": "integer"
          },
          "fee_details": {
            "description": "Detailed breakdown of fees (in %s) paid for this transaction.",
            "items": {
              "$ref": "#/components/schemas/fee"
            },
            "type": "array"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "net": {
            "description": "Net amount of the transaction, in %s.",
            "type": "integer"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["balance_transaction"],
            "type": "string"
          },
          "source": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/application_fee"
              },
              {
                "$ref": "#/components/schemas/charge"
              },
              {
                "$ref": "#/components/schemas/connect_collection_transfer"
              },
              {
                "$ref": "#/components/schemas/dispute"
              },
              {
                "$ref": "#/components/schemas/fee_refund"
              },
              {
                "$ref": "#/components/schemas/issuing.authorization"
              },
              {
                "$ref": "#/components/schemas/issuing.transaction"
              },
              {
                "$ref": "#/components/schemas/payout"
              },
              {
                "$ref": "#/components/schemas/refund"
              },
              {
                "$ref": "#/components/schemas/reserve_transaction"
              },
              {
                "$ref": "#/components/schemas/topup"
              },
              {
                "$ref": "#/components/schemas/transfer"
              },
              {
                "$ref": "#/components/schemas/transfer_reversal"
              }
            ],
            "description": "The Stripe object to which this transaction is related.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/application_fee"
                },
                {
                  "$ref": "#/components/schemas/charge"
                },
                {
                  "$ref": "#/components/schemas/connect_collection_transfer"
                },
                {
                  "$ref": "#/components/schemas/dispute"
                },
                {
                  "$ref": "#/components/schemas/fee_refund"
                },
                {
                  "$ref": "#/components/schemas/issuing.authorization"
                },
                {
                  "$ref": "#/components/schemas/issuing.transaction"
                },
                {
                  "$ref": "#/components/schemas/payout"
                },
                {
                  "$ref": "#/components/schemas/refund"
                },
                {
                  "$ref": "#/components/schemas/reserve_transaction"
                },
                {
                  "$ref": "#/components/schemas/topup"
                },
                {
                  "$ref": "#/components/schemas/transfer"
                },
                {
                  "$ref": "#/components/schemas/transfer_reversal"
                }
              ]
            }
          },
          "status": {
            "description": "If the transaction's net funds are available in the Stripe balance yet. Either `available` or `pending`.",
            "maxLength": 5000,
            "type": "string"
          },
          "type": {
            "description": "Transaction type: `adjustment`, `advance`, `advance_funding`, `application_fee`, `application_fee_refund`, `charge`, `connect_collection_transfer`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_transaction`, `payment`, `payment_failure_refund`, `payment_refund`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`. [Learn more](https://stripe.com/docs/reporting/balance-transaction-types) about balance transaction types and what they represent.",
            "enum": [
              "adjustment",
              "advance",
              "advance_funding",
              "application_fee",
              "application_fee_refund",
              "charge",
              "connect_collection_transfer",
              "issuing_authorization_hold",
              "issuing_authorization_release",
              "issuing_transaction",
              "payment",
              "payment_failure_refund",
              "payment_refund",
              "payout",
              "payout_cancel",
              "payout_failure",
              "refund",
              "refund_failure",
              "reserve_transaction",
              "reserved_funds",
              "stripe_fee",
              "stripe_fx_fee",
              "tax_fee",
              "topup",
              "topup_reversal",
              "transfer",
              "transfer_cancel",
              "transfer_failure",
              "transfer_refund"
            ],
            "type": "string"
          }
        },
        "required": [
          "amount",
          "available_on",
          "created",
          "currency",
          "fee",
          "fee_details",
          "id",
          "net",
          "object",
          "status",
          "type"
        ],
        "title": "BalanceTransaction",
        "type": "object",
        "x-expandableFields": ["fee_details", "source"],
        "x-resourceId": "balance_transaction"
      },
      "status_transitions": {
        "properties": {
          "canceled": {
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "fulfiled": {
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "paid": {
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "returned": {
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          }
        },
        "title": "StatusTransitions",
        "type": "object",
        "x-expandableFields": []
      },
      "dispute": {
        "properties": {
          "amount": {
            "description": "Disputed amount. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed).",
            "type": "integer"
          },
          "balance_transactions": {
            "description": "List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute.",
            "items": {
              "$ref": "#/components/schemas/balance_transaction"
            },
            "type": "array"
          },
          "charge": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/charge"
              }
            ],
            "description": "ID of the charge that was disputed.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/charge"
                }
              ]
            }
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "evidence": {
            "$ref": "#/components/schemas/dispute_evidence"
          },
          "evidence_details": {
            "$ref": "#/components/schemas/dispute_evidence_details"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "is_charge_refundable": {
            "description": "If true, it is still possible to refund the disputed payment. Once the payment has been fully refunded, no further funds will be withdrawn from your Stripe account as a result of this dispute.",
            "type": "boolean"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["dispute"],
            "type": "string"
          },
          "reason": {
            "description": "Reason given by cardholder for dispute. Possible values are `bank_cannot_process`, `check_returned`, `credit_not_processed`, `customer_initiated`, `debit_not_authorized`, `duplicate`, `fraudulent`, `general`, `incorrect_account_details`, `insufficient_funds`, `product_not_received`, `product_unacceptable`, `subscription_canceled`, or `unrecognized`. Read more about [dispute reasons](https://stripe.com/docs/disputes/categories).",
            "maxLength": 5000,
            "type": "string"
          },
          "status": {
            "description": "Current status of dispute. Possible values are `warning_needs_response`, `warning_under_review`, `warning_closed`, `needs_response`, `under_review`, `charge_refunded`, `won`, or `lost`.",
            "enum": [
              "charge_refunded",
              "lost",
              "needs_response",
              "under_review",
              "warning_closed",
              "warning_needs_response",
              "warning_under_review",
              "won"
            ],
            "type": "string"
          }
        },
        "required": [
          "amount",
          "balance_transactions",
          "charge",
          "created",
          "currency",
          "evidence",
          "evidence_details",
          "id",
          "is_charge_refundable",
          "livemode",
          "metadata",
          "object",
          "reason",
          "status"
        ],
        "title": "Dispute",
        "type": "object",
        "x-expandableFields": [
          "balance_transactions",
          "charge",
          "evidence",
          "evidence_details"
        ],
        "x-resourceId": "dispute"
      },
      "dispute_evidence": {
        "properties": {
          "access_activity_log": {
            "description": "Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity.",
            "maxLength": 150000,
            "nullable": true,
            "type": "string"
          },
          "billing_address": {
            "description": "The billing address provided by the customer.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "cancellation_policy": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/file"
              }
            ],
            "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your subscription cancellation policy, as shown to the customer.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/file"
                }
              ]
            }
          },
          "cancellation_policy_disclosure": {
            "description": "An explanation of how and when the customer was shown your refund policy prior to purchase.",
            "maxLength": 150000,
            "nullable": true,
            "type": "string"
          },
          "cancellation_rebuttal": {
            "description": "A justification for why the customer's subscription was not canceled.",
            "maxLength": 150000,
            "nullable": true,
            "type": "string"
          },
          "customer_communication": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/file"
              }
            ],
            "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/file"
                }
              ]
            }
          },
          "customer_email_address": {
            "description": "The email address of the customer.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "customer_name": {
            "description": "The name of the customer.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "customer_purchase_ip": {
            "description": "The IP address that the customer used when making the purchase.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "customer_signature": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/file"
              }
            ],
            "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A relevant document or contract showing the customer's signature.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/file"
                }
              ]
            }
          },
          "duplicate_charge_documentation": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/file"
              }
            ],
            "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/file"
                }
              ]
            }
          },
          "duplicate_charge_explanation": {
            "description": "An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate.",
            "maxLength": 150000,
            "nullable": true,
            "type": "string"
          },
          "duplicate_charge_id": {
            "description": "The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "product_description": {
            "description": "A description of the product or service that was sold.",
            "maxLength": 150000,
            "nullable": true,
            "type": "string"
          },
          "receipt": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/file"
              }
            ],
            "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any receipt or message sent to the customer notifying them of the charge.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/file"
                }
              ]
            }
          },
          "refund_policy": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/file"
              }
            ],
            "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your refund policy, as shown to the customer.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/file"
                }
              ]
            }
          },
          "refund_policy_disclosure": {
            "description": "Documentation demonstrating that the customer was shown your refund policy prior to purchase.",
            "maxLength": 150000,
            "nullable": true,
            "type": "string"
          },
          "refund_refusal_explanation": {
            "description": "A justification for why the customer is not entitled to a refund.",
            "maxLength": 150000,
            "nullable": true,
            "type": "string"
          },
          "service_date": {
            "description": "The date on which the customer received or began receiving the purchased service, in a clear human-readable format.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "service_documentation": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/file"
              }
            ],
            "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/file"
                }
              ]
            }
          },
          "shipping_address": {
            "description": "The address to which a physical product was shipped. You should try to include as complete address information as possible.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "shipping_carrier": {
            "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "shipping_date": {
            "description": "The date on which a physical product began its route to the shipping address, in a clear human-readable format.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "shipping_documentation": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/file"
              }
            ],
            "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/file"
                }
              ]
            }
          },
          "shipping_tracking_number": {
            "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "uncategorized_file": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/file"
              }
            ],
            "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any additional evidence or statements.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/file"
                }
              ]
            }
          },
          "uncategorized_text": {
            "description": "Any additional evidence or statements.",
            "maxLength": 150000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "DisputeEvidence",
        "type": "object",
        "x-expandableFields": [
          "cancellation_policy",
          "customer_communication",
          "customer_signature",
          "duplicate_charge_documentation",
          "receipt",
          "refund_policy",
          "service_documentation",
          "shipping_documentation",
          "uncategorized_file"
        ]
      },
      "dispute_evidence_details": {
        "properties": {
          "due_by": {
            "description": "Date by which evidence must be submitted in order to successfully challenge dispute. Will be null if the customer's bank or credit card company doesn't allow a response for this particular dispute.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "has_evidence": {
            "description": "Whether evidence has been staged for this dispute.",
            "type": "boolean"
          },
          "past_due": {
            "description": "Whether the last evidence submission was submitted past the due date. Defaults to `false` if no evidence submissions have occurred. If `true`, then delivery of the latest evidence is *not* guaranteed.",
            "type": "boolean"
          },
          "submission_count": {
            "description": "The number of times evidence has been submitted. Typically, you may only submit evidence once.",
            "type": "integer"
          }
        },
        "required": ["has_evidence", "past_due", "submission_count"],
        "title": "DisputeEvidenceDetails",
        "type": "object",
        "x-expandableFields": []
      },
      "file": {
        "properties": {
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "filename": {
            "description": "A filename for the file, suitable for saving to a filesystem.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "links": {
            "nullable": true,
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/file_link"
                },
                "type": "array"
              },
              "has_more": {
                "description": "True if this list has another page of items after this one that can be fetched.",
                "type": "boolean"
              },
              "object": {
                "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
                "enum": ["list"],
                "type": "string"
              },
              "url": {
                "description": "The URL where this list can be accessed.",
                "maxLength": 5000,
                "type": "string"
              }
            },
            "required": ["data", "has_more", "object", "url"],
            "title": "FileFileLinkList",
            "type": "object",
            "x-expandableFields": ["data"]
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["file"],
            "type": "string"
          },
          "purpose": {
            "description": "The purpose of the file. Possible values are `business_icon`, `business_logo`, `customer_signature`, `dispute_evidence`, `finance_report_run`, `identity_document`, `pci_document`, `sigma_scheduled_query`, or `tax_document_user_upload`.",
            "maxLength": 5000,
            "type": "string"
          },
          "size": {
            "description": "The size in bytes of the file object.",
            "type": "integer"
          },
          "title": {
            "description": "A user friendly title for the document.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The type of the file returned (e.g., `csv`, `pdf`, `jpg`, or `png`).",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The URL from which the file can be downloaded using your live secret API key.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": ["created", "id", "object", "purpose", "size"],
        "title": "File",
        "type": "object",
        "x-expandableFields": ["links"],
        "x-resourceId": "file"
      },
      "file_link": {
        "properties": {
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "expired": {
            "description": "Whether this link is already expired.",
            "type": "boolean"
          },
          "expires_at": {
            "description": "Time at which the link expires.",
            "format": "unix-time",
            "nullable": true,
            "type": "integer"
          },
          "file": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/file"
              }
            ],
            "description": "The file object this link points to.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/file"
                }
              ]
            }
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": ["file_link"],
            "type": "string"
          },
          "url": {
            "description": "The publicly accessible URL to download the file.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "created",
          "expired",
          "file",
          "id",
          "livemode",
          "metadata",
          "object"
        ],
        "title": "FileLink",
        "type": "object",
        "x-expandableFields": ["file"],
        "x-resourceId": "file_link"
      },
      "application": {
        "properties": {
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "name": {
            "description": "The name of the application.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "application"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "object"
        ],
        "title": "Application",
        "type": "object",
        "x-expandableFields": [

        ]
      },
      "payment_intent_next_action": {
        "properties": {
          "redirect_to_url": {
            "$ref": "#/components/schemas/payment_intent_next_action_redirect_to_url"
          },
          "type": {
            "description": "Type of the next action to perform, one of `redirect_to_url` or `use_stripe_sdk`.",
            "maxLength": 5000,
            "type": "string"
          },
          "use_stripe_sdk": {
            "description": "When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.",
            "type": "object"
          }
        },
        "required": [
          "type"
        ],
        "title": "PaymentIntentNextAction",
        "type": "object",
        "x-expandableFields": [
          "redirect_to_url"
        ]
      },
      "payment_intent_next_action_redirect_to_url": {
        "properties": {
          "return_url": {
            "description": "If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The URL you must redirect your customer to in order to authenticate the payment.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "PaymentIntentNextActionRedirectToUrl",
        "type": "object",
        "x-expandableFields": [

        ]
      },
      "rule": {
        "properties": {
          "action": {
            "description": "The action taken on the payment.",
            "maxLength": 5000,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "predicate": {
            "description": "The predicate to evaluate the payment against.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": [
          "action",
          "id",
          "predicate"
        ],
        "title": "RadarRule",
        "type": "object",
        "x-expandableFields": [

        ]
      },
      "transfer": {
        "properties": {
          "amount": {
            "description": "Amount in %s to be transferred.",
            "type": "integer"
          },
          "amount_reversed": {
            "description": "Amount in %s reversed (can be less than the amount attribute on the transfer if a partial reversal was issued).",
            "type": "integer"
          },
          "balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "description": "Balance transaction that describes the impact of this transfer on your account balance.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "created": {
            "description": "Time that this record of the transfer was first created.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "destination_payment": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/charge"
              }
            ],
            "description": "If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/charge"
                }
              ]
            }
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "A set of key-value pairs that you can attach to a transfer object. It can be useful for storing additional information about the transfer in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "transfer"
            ],
            "type": "string"
          },
          "reversals": {
            "description": "A list of reversals that have been applied to the transfer.",
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/transfer_reversal"
                },
                "type": "array"
              },
              "has_more": {
                "description": "True if this list has another page of items after this one that can be fetched.",
                "type": "boolean"
              },
              "object": {
                "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
                "enum": [
                  "list"
                ],
                "type": "string"
              },
              "url": {
                "description": "The URL where this list can be accessed.",
                "maxLength": 5000,
                "type": "string"
              }
            },
            "required": [
              "data",
              "has_more",
              "object",
              "url"
            ],
            "title": "TransferReversalList",
            "type": "object",
            "x-expandableFields": [
              "data"
            ]
          },
          "reversed": {
            "description": "Whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false.",
            "type": "boolean"
          },
          "source_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/charge"
              }
            ],
            "description": "ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/charge"
                }
              ]
            }
          },
          "source_type": {
            "description": "The source balance this transfer came from. One of `card` or `bank_account`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "transfer_group": {
            "description": "A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/charges-transfers#grouping-transactions) for details.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "amount_reversed",
          "created",
          "currency",
          "id",
          "livemode",
          "metadata",
          "object",
          "reversals",
          "reversed"
        ],
        "title": "Transfer",
        "type": "object",
        "x-expandableFields": [
          "balance_transaction",
          "destination",
          "destination_payment",
          "reversals",
          "source_transaction"
        ],
        "x-resourceId": "transfer"
      },
      "application_fee": {
        "properties": {
          "amount": {
            "description": "Amount earned, in %s.",
            "type": "integer"
          },
          "amount_refunded": {
            "description": "Amount in %s refunded (can be less than the amount attribute on the fee if a partial refund was issued)",
            "type": "integer"
          },
          "application": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/application"
              }
            ],
            "description": "ID of the Connect application that earned the fee.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/application"
                }
              ]
            }
          },
          "balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "description": "Balance transaction that describes the impact of this collected application fee on your account balance (not including refunds).",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "charge": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/charge"
              }
            ],
            "description": "ID of the charge that the application fee was taken from.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/charge"
                }
              ]
            }
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "application_fee"
            ],
            "type": "string"
          },
          "originating_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/charge"
              }
            ],
            "description": "ID of the corresponding charge on the platform account, if this fee was the result of a charge using the `destination` parameter.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/charge"
                }
              ]
            }
          },
          "refunded": {
            "description": "Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false.",
            "type": "boolean"
          },
          "refunds": {
            "description": "A list of refunds that have been applied to the fee.",
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/fee_refund"
                },
                "type": "array"
              },
              "has_more": {
                "description": "True if this list has another page of items after this one that can be fetched.",
                "type": "boolean"
              },
              "object": {
                "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
                "enum": [
                  "list"
                ],
                "type": "string"
              },
              "url": {
                "description": "The URL where this list can be accessed.",
                "maxLength": 5000,
                "type": "string"
              }
            },
            "required": [
              "data",
              "has_more",
              "object",
              "url"
            ],
            "title": "FeeRefundList",
            "type": "object",
            "x-expandableFields": [
              "data"
            ]
          }
        },
        "required": [
          "amount",
          "amount_refunded",
          "application",
          "charge",
          "created",
          "currency",
          "id",
          "livemode",
          "object",
          "refunded",
          "refunds"
        ],
        "title": "PlatformFee",
        "type": "object",
        "x-expandableFields": [
          "application",
          "balance_transaction",
          "charge",
          "originating_transaction",
          "refunds"
        ],
        "x-resourceId": "application_fee"
      },
      "fee": {
        "properties": {
          "amount": {
            "description": "Amount of the fee, in cents.",
            "type": "integer"
          },
          "application": {
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "Type of the fee, one of: `application_fee`, `stripe_fee` or `tax`.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency",
          "type"
        ],
        "title": "Fee",
        "type": "object",
        "x-expandableFields": [

        ]
      },      
      "fee_refund": {
        "properties": {
          "amount": {
            "description": "Amount, in %s.",
            "type": "integer"
          },
          "balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "description": "Balance transaction that describes the impact on your account balance.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "fee": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/application_fee"
              }
            ],
            "description": "ID of the application fee that was refunded.",
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/application_fee"
                }
              ]
            }
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "fee_refund"
            ],
            "type": "string"
          }
        },
        "required": [
          "amount",
          "created",
          "currency",
          "fee",
          "id",
          "metadata",
          "object"
        ],
        "title": "FeeRefund",
        "type": "object",
        "x-expandableFields": [
          "balance_transaction",
          "fee"
        ],
        "x-resourceId": "fee_refund"
      },
      "connect_collection_transfer": {
        "properties": {
          "amount": {
            "description": "Amount transferred, in %s.",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "connect_collection_transfer"
            ],
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency",
          "destination",
          "id",
          "livemode",
          "object"
        ],
        "title": "ConnectCollectionTransfer",
        "type": "object",
        "x-expandableFields": [
          "destination"
        ]
      },
      "issuing.authorization": {
        "properties": {
          "approved": {
            "description": "Whether the authorization has been approved.",
            "type": "boolean"
          },
          "authorization_method": {
            "description": "How the card details were provided. One of `keyed_in`, `swipe`, `chip`, `contactless`, or `online`.",
            "maxLength": 5000,
            "type": "string"
          },
          "authorized_amount": {
            "description": "The amount that has been authorized. This will be `0` when the object is created, and increase after it has been approved.",
            "type": "integer"
          },
          "authorized_currency": {
            "description": "The currency that was presented to the cardholder for the authorization. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "balance_transactions": {
            "items": {
              "$ref": "#/components/schemas/balance_transaction"
            },
            "type": "array"
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "held_amount": {
            "description": "The amount the authorization is expected to be in `held_currency`. When Stripe holds funds from you, this is the amount reserved for the authorization. This will be `0` when the object is created, and increase after it has been approved. For multi-currency transactions, `held_amount` can be used to determine the expected exchange rate.",
            "type": "integer"
          },
          "held_currency": {
            "description": "The currency of the [held amount](https://stripe.com/docs/api#issuing_authorization_object-held_amount). This will always be the card currency.",
            "maxLength": 3,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "is_held_amount_controllable": {
            "type": "boolean"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "issuing.authorization"
            ],
            "type": "string"
          },
          "pending_authorized_amount": {
            "description": "The amount the user is requesting to be authorized. This field will only be non-zero during an `issuing.authorization.request` webhook.",
            "type": "integer"
          },
          "pending_held_amount": {
            "description": "The additional amount Stripe will hold if the authorization is approved. This field will only be non-zero during an `issuing.authorization.request` webhook.",
            "type": "integer"
          },
          "status": {
            "description": "One of `pending`, `reversed`, or `closed`.",
            "maxLength": 5000,
            "type": "string"
          },
          "transactions": {
            "items": {
              "$ref": "#/components/schemas/issuing.transaction"
            },
            "type": "array"
          },
          "wallet_provider": {
            "description": "What, if any, digital wallet was used for this authorization. One of `apple_pay`, `google_pay`, or `samsung_pay`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "approved",
          "authorization_method",
          "authorized_amount",
          "authorized_currency",
          "balance_transactions",
          "card",
          "created",
          "held_amount",
          "held_currency",
          "id",
          "is_held_amount_controllable",
          "livemode",
          "merchant_data",
          "metadata",
          "object",
          "pending_authorized_amount",
          "pending_held_amount",
          "request_history",
          "status",
          "transactions",
          "verification_data"
        ],
        "title": "IssuingAuthorization",
        "type": "object",
        "x-expandableFields": [
          "balance_transactions",
          "card",
          "cardholder",
          "merchant_data",
          "request_history",
          "transactions",
          "verification_data"
        ],
        "x-resourceId": "issuing.authorization"
      },
      "issuing.transaction": {
        "properties": {
          "amount": {
            "type": "integer"
          },
          "authorization": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/issuing.authorization"
              }
            ],
            "description": "The `Authorization` object that led to this transaction.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/issuing.authorization"
                }
              ]
            }
          },
          "balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "issuing.transaction"
            ],
            "type": "string"
          },
          "type": {
            "description": "One of `capture`, `refund`, `cash_withdrawal`, `refund_reversal`, `dispute`, or `dispute_loss`.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "card",
          "created",
          "currency",
          "id",
          "livemode",
          "merchant_data",
          "metadata",
          "object",
          "type"
        ],
        "title": "IssuingTransaction",
        "type": "object",
        "x-expandableFields": [
          "authorization",
          "balance_transaction",
          "card",
          "cardholder",
          "dispute",
          "merchant_data"
        ],
        "x-resourceId": "issuing.transaction"
      },
      "payout": {
        "properties": {
          "amount": {
            "description": "Amount (in %s) to be transferred to your bank account or debit card.",
            "type": "integer"
          },
          "arrival_date": {
            "description": "Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.",
            "format": "unix-time",
            "type": "integer"
          },
          "automatic": {
            "description": "Returns `true` if the payout was created by an [automated payout schedule](https://stripe.com/docs/payouts#payout-schedule), and `false` if it was [requested manually](https://stripe.com/docs/payouts#manual-payouts).",
            "type": "boolean"
          },
          "balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "description": "ID of the balance transaction that describes the impact of this payout on your account balance.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "destination": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/bank_account"
              },
              {
                "$ref": "#/components/schemas/card"
              },
              {
                "$ref": "#/components/schemas/deleted_bank_account"
              },
              {
                "$ref": "#/components/schemas/deleted_card"
              }
            ],
            "description": "ID of the bank account or card the payout was sent to.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/bank_account"
                },
                {
                  "$ref": "#/components/schemas/card"
                },
                {
                  "$ref": "#/components/schemas/deleted_bank_account"
                },
                {
                  "$ref": "#/components/schemas/deleted_card"
                }
              ]
            }
          },
          "failure_balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "description": "If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "failure_code": {
            "description": "Error code explaining reason for payout failure if available. See [Types of payout failures](https://stripe.com/docs/api#payout_failures) for a list of failure codes.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "failure_message": {
            "description": "Message to user further explaining reason for payout failure if available.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "method": {
            "description": "The method used to send this payout, which can be `standard` or `instant`. `instant` is only supported for payouts to debit cards. (See [Instant payouts for marketplaces](/blog/instant-payouts-for-marketplaces) for more information.)",
            "maxLength": 5000,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "payout"
            ],
            "type": "string"
          },
          "source_type": {
            "description": "The source balance this payout came from. One of `card` or `bank_account`.",
            "maxLength": 5000,
            "type": "string"
          },
          "statement_descriptor": {
            "description": "Extra information about a payout to be displayed on the user's bank statement.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "Current status of the payout (`paid`, `pending`, `in_transit`, `canceled` or `failed`). A payout will be `pending` until it is submitted to the bank, at which point it becomes `in_transit`. It will then change to `paid` if the transaction goes through. If it does not go through successfully, its status will change to `failed` or `canceled`.",
            "maxLength": 5000,
            "type": "string"
          },
          "type": {
            "description": "Can be `bank_account` or `card`.",
            "enum": [
              "bank_account",
              "card"
            ],
            "type": "string"
          }
        },
        "required": [
          "amount",
          "arrival_date",
          "automatic",
          "created",
          "currency",
          "id",
          "livemode",
          "metadata",
          "method",
          "object",
          "source_type",
          "status",
          "type"
        ],
        "title": "Payout",
        "type": "object",
        "x-expandableFields": [
          "balance_transaction",
          "destination",
          "failure_balance_transaction"
        ],
        "x-resourceId": "payout"
      },
      "bank_account": {
        "properties": {
          "account_holder_name": {
            "description": "The name of the person or business that owns the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "account_holder_type": {
            "description": "The type of entity that holds the account. This can be either `individual` or `company`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "bank_name": {
            "description": "Name of the bank associated with the routing number (e.g., `WELLS FARGO`).",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "country": {
            "description": "Two-letter ISO code representing the country the bank account is located in.",
            "maxLength": 5000,
            "type": "string"
          },
          "currency": {
            "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account.",
            "maxLength": 3,
            "type": "string"
          },
          "customer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/customer"
              },
              {
                "$ref": "#/components/schemas/deleted_customer"
              }
            ],
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/customer"
                },
                {
                  "$ref": "#/components/schemas/deleted_customer"
                }
              ]
            }
          },
          "default_for_currency": {
            "description": "Whether this bank account is the default external account for its currency.",
            "nullable": true,
            "type": "boolean"
          },
          "fingerprint": {
            "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "last4": {
            "maxLength": 5000,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "nullable": true,
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "bank_account"
            ],
            "type": "string"
          },
          "routing_number": {
            "description": "The routing transit number for the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "For bank accounts, possible values are `new`, `validated`, `verified`, `verification_failed`, or `errored`. A bank account that hasn't had any activity or validation performed is `new`. If Stripe can determine that the bank account exists, its status will be `validated`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be `verified`. If the verification failed for any reason, such as microdeposit failure, the status will be `verification_failed`. If a transfer sent to this bank account fails, we'll set the status to `errored` and will not continue to send transfers until the bank details are updated.\n\nFor external accounts, possible values are `new` and `errored`. Validations aren't run against external accounts because they're only used for payouts. This means the other statuses don't apply. If a transfer fails, the status is set to `errored` and transfers are stopped until account details are updated.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": [
          "country",
          "currency",
          "id",
          "last4",
          "object",
          "status"
        ],
        "title": "BankAccount",
        "type": "object",
        "x-expandableFields": [
          "account",
          "customer"
        ],
        "x-resourceId": "bank_account"
      },
      "card": {
        "properties": {
          "address_city": {
            "description": "City/District/Suburb/Town/Village.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "address_country": {
            "description": "Billing address country, if provided when creating card.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "address_line1": {
            "description": "Address line 1 (Street address/PO Box/Company name).",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "address_line1_check": {
            "description": "If `address_line1` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "address_line2": {
            "description": "Address line 2 (Apartment/Suite/Unit/Building).",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "address_state": {
            "description": "State/County/Province/Region.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "address_zip": {
            "description": "ZIP or postal code.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "address_zip_check": {
            "description": "If `address_zip` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "available_payout_methods": {
            "description": "A set of available payout methods for this card. Will be either `[\"standard\"]` or `[\"standard\", \"instant\"]`. Only values from this set should be passed as the `method` when creating a transfer.",
            "items": {
              "maxLength": 5000,
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "brand": {
            "description": "Card brand. Can be `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay`, `Visa`, or `Unknown`.",
            "maxLength": 5000,
            "type": "string"
          },
          "country": {
            "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "currency": {
            "maxLength": 3,
            "nullable": true,
            "type": "string"
          },
          "customer": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/customer"
              },
              {
                "$ref": "#/components/schemas/deleted_customer"
              }
            ],
            "description": "The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/customer"
                },
                {
                  "$ref": "#/components/schemas/deleted_customer"
                }
              ]
            }
          },
          "cvc_check": {
            "description": "If a CVC was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "default_for_currency": {
            "description": "Whether this card is the default external account for its currency.",
            "nullable": true,
            "type": "boolean"
          },
          "dynamic_last4": {
            "description": "(For tokenized numbers only.) The last four digits of the device account number.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "exp_month": {
            "description": "Two-digit number representing the card's expiration month.",
            "type": "integer"
          },
          "exp_year": {
            "description": "Four-digit number representing the card's expiration year.",
            "type": "integer"
          },
          "fingerprint": {
            "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number, for example.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "funding": {
            "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.",
            "maxLength": 5000,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "last4": {
            "description": "The last four digits of the card.",
            "maxLength": 5000,
            "type": "string"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "name": {
            "description": "Cardholder name.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "card"
            ],
            "type": "string"
          },
          "recipient": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/recipient"
              }
            ],
            "description": "The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/recipient"
                }
              ]
            }
          },
          "tokenization_method": {
            "description": "If the card number is tokenized, this is the method that was used. Can be `apple_pay` or `google_pay`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "brand",
          "exp_month",
          "exp_year",
          "funding",
          "id",
          "last4",
          "metadata",
          "object"
        ],
        "title": "Card",
        "type": "object",
        "x-expandableFields": [
          "account",
          "customer",
          "recipient"
        ],
        "x-resourceId": "card"
      },
      "deleted_card": {
        "properties": {
          "currency": {
            "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "deleted": {
            "description": "Always true for a deleted object",
            "enum": [
              true
            ],
            "type": "boolean"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "card"
            ],
            "type": "string"
          }
        },
        "required": [
          "deleted",
          "id",
          "object"
        ],
        "title": "DeletedCard",
        "type": "object",
        "x-expandableFields": [

        ]
      },
      "deleted_bank_account": {
        "properties": {
          "currency": {
            "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "deleted": {
            "description": "Always true for a deleted object",
            "enum": [
              true
            ],
            "type": "boolean"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "bank_account"
            ],
            "type": "string"
          }
        },
        "required": [
          "deleted",
          "id",
          "object"
        ],
        "title": "DeletedBankAccount",
        "type": "object",
        "x-expandableFields": [

        ]
      },      
      "recipient": {
        "properties": {
          "active_account": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/bank_account"
              }
            ],
            "description": "Hash describing the current account on the recipient, if there is one.",
            "nullable": true
          },
          "cards": {
            "nullable": true,
            "properties": {
              "data": {
                "items": {
                  "$ref": "#/components/schemas/card"
                },
                "type": "array"
              },
              "has_more": {
                "description": "True if this list has another page of items after this one that can be fetched.",
                "type": "boolean"
              },
              "object": {
                "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.",
                "enum": [
                  "list"
                ],
                "type": "string"
              },
              "url": {
                "description": "The URL where this list can be accessed.",
                "maxLength": 5000,
                "type": "string"
              }
            },
            "required": [
              "data",
              "has_more",
              "object",
              "url"
            ],
            "title": "CardList",
            "type": "object",
            "x-expandableFields": [
              "data"
            ]
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "default_card": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/card"
              }
            ],
            "description": "The default card to use for creating transfers to this recipient.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/card"
                }
              ]
            }
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "email": {
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "name": {
            "description": "Full, legal name of the recipient.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "recipient"
            ],
            "type": "string"
          },
          "type": {
            "description": "Type of the recipient, one of `individual` or `corporation`.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": [
          "created",
          "id",
          "livemode",
          "metadata",
          "object",
          "type"
        ],
        "title": "TransferRecipient",
        "type": "object",
        "x-expandableFields": [
          "active_account",
          "cards",
          "default_card",
          "migrated_to",
          "rolled_back_from"
        ],
        "x-resourceId": "recipient"
      },
      "topup": {
        "properties": {
          "amount": {
            "description": "Amount transferred.",
            "type": "integer"
          },
          "balance_transaction": {
            "anyOf": [
              {
                "maxLength": 5000,
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/balance_transaction"
              }
            ],
            "description": "ID of the balance transaction that describes the impact of this top-up on your account balance. May not be specified depending on status of top-up.",
            "nullable": true,
            "x-expansionResources": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/balance_transaction"
                }
              ]
            }
          },
          "created": {
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "unix-time",
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 5000,
            "type": "string"
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "expected_availability_date": {
            "description": "Date the funds are expected to arrive in your Stripe account for payouts. This factors in delays like weekends or bank holidays. May not be specified depending on status of top-up.",
            "nullable": true,
            "type": "integer"
          },
          "failure_code": {
            "description": "Error code explaining reason for top-up failure if available (see [the errors section](https://stripe.com/docs/api#errors) for a list of codes).",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "failure_message": {
            "description": "Message to user further explaining reason for top-up failure if available.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "livemode": {
            "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.",
            "type": "boolean"
          },
          "metadata": {
            "additionalProperties": {
              "maxLength": 500,
              "type": "string"
            },
            "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.",
            "type": "object"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "topup"
            ],
            "type": "string"
          },
          "statement_descriptor": {
            "description": "Extra information about a top-up. This will appear on your source's bank statement. It must contain at least one letter.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The status of the top-up is either `canceled`, `failed`, `pending`, `reversed`, or `succeeded`.",
            "enum": [
              "canceled",
              "failed",
              "pending",
              "reversed",
              "succeeded"
            ],
            "type": "string"
          },
          "transfer_group": {
            "description": "A string that identifies this top-up as part of a group.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "created",
          "currency",
          "id",
          "livemode",
          "metadata",
          "object",
          "source",
          "status"
        ],
        "title": "Topup",
        "type": "object",
        "x-expandableFields": [
          "balance_transaction",
          "source"
        ],
        "x-resourceId": "topup"
      },             
      "token_request": {
        "properties": {
          "grant_type": {
            "description": "The type of grant that is being requested",
            "enum": ["refresh_token", "password"],
            "type": "string"
          },
          "username": {
            "description": "User Name. Required where grant_type is password.",
            "enum": ["user@rayt.io"],
            "type": "string"
          },
          "password": {
            "description": "Password. Required where grant_type is password.",
            "enum": ["abcdefabcdef"],
            "type": "string"
          },
          "refresh_token": {
            "description": "The refresh token. Required where grant_type is refresh_token.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "tax_info_verification": {
        "properties": {
          "status": {
            "description": "The state of verification for this customer. Possible values are `unverified`, `pending`, or `verified`.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "verified_name": {
            "description": "The official name associated with the tax ID returned from the external provider.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "TaxInfoVerification",
        "type": "object",
        "x-expandableFields": []
      },
      "reserve_transaction": {
        "properties": {
          "amount": {
            "type": "integer"
          },
          "currency": {
            "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).",
            "maxLength": 3,
            "type": "string"
          },
          "description": {
            "description": "An arbitrary string attached to the object. Often useful for displaying to users.",
            "maxLength": 5000,
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object.",
            "maxLength": 5000,
            "type": "string"
          },
          "object": {
            "description": "String representing the object's type. Objects of the same type share the same value.",
            "enum": [
              "reserve_transaction"
            ],
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency",
          "id",
          "object"
        ],
        "title": "ReserveTransaction",
        "type": "object",
        "x-expandableFields": [

        ]
      },      
      "token_response": {
        "properties": {
          "message": {
            "description": "Token Response message",
            "enum": [
              "user@rayt.io has been authenticated.",
              "Tokens refreshed."
            ],
            "type": "string"
          },
          "identity_token": {
            "description": "Identity Token Response",
            "enum": ["abcdefabcdef"],
            "type": "string"
          },
          "refresh_token": {
            "description": "Refresh Token Response",
            "enum": ["abcdefabcdef"],
            "type": "string"
          },
          "access_token": {
            "description": "Access Token Response",
            "enum": ["abcdefabcdef"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "signup_request": {
        "properties": {
          "username": {
            "description": "Username",
            "enum": ["user@rayt.io"],
            "type": "string"
          },
          "password": {
            "description": "Password",
            "enum": ["abcdefabcdef"],
            "type": "string"
          },
          "verification_code_org": {
            "description": "The verification code for the user being invited to the organisation. Only relevant if a non-existent user has been invited to join an existing organisation.",
            "enum": ["abcd1234"],
            "type": "string"
          }
        },
        "type": "object",
        "required": ["username", "password"]
      },
      "signup_response": {
        "properties": {
          "message": {
            "description": "Signup Response message",
            "enum": [
              "User user@rayt.io has been created and an email with a verification code has been sent to the email address. Please confirm the verification code to complete the registration process."
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "verify_request": {
        "properties": {
          "username": {
            "description": "Username",
            "enum": ["user@rayt.io"],
            "type": "string"
          },
          "verification_code": {
            "description": "Verification code as emailed to the user.",
            "enum": ["123456789"],
            "type": "string"
          }
        },
        "type": "object",
        "required": ["username", "verification_code"]
      },
      "verify_response": {
        "properties": {
          "message": {
            "description": "Verify Response message",
            "enum": [
              "User user@rayt.io is verified.",
              "Invalid verification code , please try again."
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "password-reset_request": {
        "properties": {
          "username": {
            "description": "Username",
            "enum": ["user@rayt.io"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "password-reset_response": {
        "properties": {
          "message": {
            "description": "Password Reset Response message",
            "enum": [
              "Password for user@rayt.io has been reset and an email with a verification code has been sent to the email address. Please confirm the verification code to reset the password."
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "password-confirm_request": {
        "properties": {
          "username": {
            "description": "Username",
            "enum": ["user@rayt.io"],
            "type": "string"
          },
          "verification_code": {
            "description": "Verification code as emailed to the user.",
            "enum": ["123456789"],
            "type": "string"
          },
          "password": {
            "description": "Password",
            "enum": ["abcdefabcdef"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "password-confirm_response": {
        "properties": {
          "message": {
            "description": "Password Confirm Response message.",
            "enum": ["Password for user@rayt.io has been reset."],
            "type": "string"
          }
        },
        "type": "object"
      },
      "password-change_request": {
        "properties": {
          "access_token": {
            "description": "A valid authentication token. Note that this is the access_token as returned by the token endpoint, not the identity_token.",
            "enum": ["1234abcd"],
            "type": "string"
          },
          "password_existing": {
            "description": "The user's current password.",
            "enum": ["abcdefabcdef"],
            "type": "string"
          },
          "password_new": {
            "description": "The password to update to.",
            "enum": ["abcdefabcdefg"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "password-change_response": {
        "properties": {
          "message": {
            "description": "Password Change Response message",
            "enum": ["Password for user@rayt.io has been changed."],
            "type": "string"
          }
        },
        "type": "object"
      },
      "DZ_NZTA_DL_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_NZTA_DL"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_DOB_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_DL_Schema"
          }
        ]
      },
      "DZ_DIA-Passport_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_DIA-Passport"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_DOB_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_Passport_Schema"
          }
        ]
      },
      "DZ_DIA-Cit_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_DIA-Citizenship"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_DOB_Schema"
          }
        ]
      },
      "DZ_DIA-Birth_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_DIA-Birth"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_DOB_Schema"
          }
        ]
      },
      "DZ_MVRVR-NAD_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_MVRVR-NAD"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_DOB_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_Vehicle_Schema"
          }
        ]
      },
      "DZ_MVRVR-DOB_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_MVRVR-DOB"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_DOB_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_Vehicle_Schema"
          }
        ]
      },
      "DZ_MVRVR-ALL_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_MVRVR-ALL"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_DOB_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_Vehicle_Schema"
          }
        ]
      },
      "DZ_Yellow_Pages_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_Yellow_Pages"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_Address_Schema"
          }
        ]
      },
      "DZ_Vehicle_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_Vehicle"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_Address_Schema"
          }
        ]
      },
      "DZ_NAD_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_NAD"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_Address_Schema"
          }
        ]
      },
      "DZ_NAD_Credit_Bureau_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_Credit_Bureau"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_DOB_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_Address_Schema"
          }
        ]
      },
      "DZ_NAD_Companies_Office_Parent_Schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Data_Sources_Companies_Office"
          },
          {
            "$ref": "#/components/schemas/DZ_Name_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_DOB_Schema"
          },
          {
            "$ref": "#/components/schemas/DZ_Address_Schema"
          }
        ]
      },
      "DZ_mvrnad_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "mvrnad": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Address_Response_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_mvrDoB_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "mvrDoB": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_mvrAll_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "mvrAll": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Gender"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Address_Response_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Vehicle_Response_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_citizenship_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "citizenship": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_DOB_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Citizenship_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_birthCertificate_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "birthCertificate": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_DOB_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Parent_Name_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_passport_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "passport": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_DOB_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Passport_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_dznad_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "dznad": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Address_Response_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_linzProperty_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "linzProperty": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Address_Response_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_DPID_Response_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_LINZ_Additional_Response_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_driversLicence_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "driversLicence": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_DOB_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Fields_Response_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_yellowPages_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "yellowPages": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Address_Response_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Phone"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_dzVehicle_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "dzVehicle": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Address_Response_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_DPID_Response_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Vehicle_Other_Owners_Response_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_creditBureau_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "creditBureau": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Known_Names_Response_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Other_Addresses_Response_Schema"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_companiesOffice_Parent_Response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DZ_Response_Header"
          },
          {
            "properties": {
              "companiesOffice": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DZ_Response_Body"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Status_Message"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Name_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Address_Response_Schema"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Company"
                    },
                    {
                      "$ref": "#/components/schemas/DZ_Company_Relationship"
                    }
                  ]
                }
              }
            },
            "type": "object"
          }
        ]
      },
      "DZ_Data_Sources_NZTA_DL": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["NZTA Drivers License"]
            }
          },
          "driversLicenceConsentObtained": {
            "type": "boolean",
            "title": "Consent",
            "description": "Has consent been given by the individual to check the Driver's Licence?"
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_MVRVR-NAD": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["MVRVR-NAD"]
            }
          },
          "mvrnadConsentObtained": {
            "type": "boolean",
            "title": "Consent",
            "description": "Has consent been given by the individual to check the Motor Vehicle Register?"
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_MVRVR-DOB": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["MVRVR-DOB"]
            }
          },
          "mvrdobConsentObtained": {
            "type": "boolean",
            "title": "Consent",
            "description": "Has consent been given by the individual to check the Motor Vehicle Register?"
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_MVRVR-ALL": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["MVRVR-ALL"]
            }
          },
          "mvrAllConsentObtained": {
            "type": "boolean",
            "title": "Consent",
            "description": "Has consent been given by the individual to check the Motor Vehicle Register?"
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_DIA-Citizenship": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["DIA-Citizenship"]
            }
          },
          "citizenshipConsentObtained": {
            "type": "boolean",
            "title": "Consent",
            "description": "Has consent been given by the individual to check their citizenship status?"
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_DIA-Passport": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["DIA-Passport"]
            }
          },
          "passportConsentObtained": {
            "type": "boolean",
            "title": "Consent",
            "description": "Has consent been given by the individual to check their passport status?"
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_DIA-Birth": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["DIA-Birth"]
            }
          },
          "birthCertificateConsentObtained": {
            "type": "boolean",
            "title": "Consent",
            "description": "Has consent been given by the individual to check their citizenship status?"
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_Yellow_Pages": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["Yellow Pages"]
            }
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_Vehicle": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["Vehicle"]
            }
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_NAD": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["DZ NAD"]
            }
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_Credit_Bureau": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["Credit Bureau"]
            }
          }
        },
        "type": "object"
      },
      "DZ_Data_Sources_Companies_Office": {
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": ["Companies Office"]
            }
          }
        },
        "type": "object"
      },
      "DZ_Name_Schema": {
        "properties": {
          "firstName": {
            "type": "string",
            "title": "First name",
            "description": "The persons given name",
            "example": "Leroy"
          },
          "middleName": {
            "type": "string",
            "title": "Middle name",
            "description": "The persons middle name",
            "example": "John"
          },
          "lastName": {
            "type": "string",
            "title": "Family name",
            "description": "The persons family name",
            "example": "Brown"
          }
        },
        "required": ["lastName", "firstName"],
        "type": "object"
      },
      "DZ_DOB_Schema": {
        "properties": {
          "dateOfBirth": {
            "format": "date",
            "type": "string",
            "title": "Date of birth",
            "description": "The date of birth of the individual"
          }
        },
        "required": ["dateOfBirth"],
        "type": "object"
      },
      "DZ_Vehicle_Schema": {
        "properties": {
          "vehiclePlate": {
            "type": "string",
            "title": "Vehicle licence plate",
            "description": "The licence plate of the motor vehicle"
          }
        },
        "required": ["vehiclePlate"],
        "type": "object"
      },
      "DZ_Gender": {
        "properties": {
          "gender": {
            "description": "Person's gender",
            "enum": ["M", "F", "U"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "DZ_Phone": {
        "properties": {
          "homePhoneNo": {
            "description": "Home phone number",
            "type": "string",
            "example": "09 123 4567"
          }
        },
        "type": "object"
      },
      "DZ_Passport_Schema": {
        "properties": {
          "passportExpiryDate": {
            "format": "date",
            "type": "string",
            "title": "Expiry Date",
            "description": "The date on which the passport will expire"
          },
          "passportNo": {
            "type": "string",
            "title": "Passport Number",
            "description": "The unique identifier of the passport"
          }
        },
        "required": ["passportNo", "passportExpiryDate"],
        "type": "object"
      },
      "DZ_DL_Schema": {
        "properties": {
          "driversLicenceNo": {
            "title": "Driver licence number",
            "description": "The unique identifier of the driver licence",
            "example": "BJ620700",

            "type": "string"
          },
          "driversLicenceVersion": {
            "title": "Driver licence version",
            "description": "The version number of the driver licence",
            "example": "354",

            "format": "int32",
            "type": "integer"
          }
        },
        "required": ["driversLicenceNo", "driversLicenceVersion"],
        "type": "object"
      },
      "DZ_Address_Schema": {
        "properties": {
          "streetNo": {
            "type": "string",
            "title": "Street Number",
            "description": "The address street number",
            "example": "80-85"
          },
          "streetName": {
            "type": "string",
            "title": "Route",
            "description": "The address route",
            "example": "Queen Street"
          },
          "city": {
            "type": "string",
            "title": "Address locality",
            "description": "The address locality",
            "example": "Ponsonby"
          },
          "postCode": {
            "type": "string",
            "title": "Post code",
            "description": "The post code",
            "example": "0624"
          },
          "suburb": {
            "type": "string",
            "title": "Address sublocality",
            "description": "The address sublocality",
            "example": "Ponsonby"
          }
        },
        "required": ["streetNo", "streetName", "city", "postCode"],
        "type": "object"
      },
      "DZ_Address_Response_Schema": {
        "properties": {
          "address1": {
            "type": "string",
            "title": "Address Line 1",
            "description": "Address Line 1",
            "example": "First floor"
          },
          "address2": {
            "type": "string",
            "title": "Address Line 1",
            "description": "Address Line 2",
            "example": "123 Queen Street"
          },
          "city": {
            "type": "string",
            "title": "City",
            "description": "The city",
            "example": "Auckland"
          },
          "postCode": {
            "type": "string",
            "title": "Post code",
            "description": "The post code",
            "example": "0624"
          },
          "suburb": {
            "type": "string",
            "title": "Suburb",
            "description": "The suburb",
            "example": "Ponsonby"
          }
        },
        "type": "object"
      },
      "DZ_DPID_Response_Schema": {
        "properties": {
          "dpid": {
            "type": "integer",
            "title": "DPID",
            "description": "NZ Post delivery point ID",
            "example": 123456
          }
        },
        "type": "object"
      },
      "DZ_LINZ_Additional_Response_Schema": {
        "properties": {
          "titleNo": {
            "type": "string",
            "title": "Title No",
            "description": "LINZ identifier for this property",
            "example": "ABCDEFG"
          },
          "encumbrance": {
            "type": "string",
            "title": "Encumbrance Name",
            "description": "Name of the party that the encumbrance is in favour of",
            "example": "Hi Kitty Bank"
          },
          "encumbranceLodged": {
            "type": "string",
            "format": "date",
            "title": "Encumbrance lodged",
            "description": "Date on which the encumbrance was lodged",
            "example": "2018-01-01"
          },
          "otherOwners": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Other owners",
            "description": "List of other owners of the property",
            "example": ["H Wild", "Cat Stevens"]
          }
        },
        "type": "object"
      },
      "DZ_Vehicle_Other_Owners_Response_Schema": {
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Other owners",
            "description": "List of other owners or the vehicle",
            "example": ["H Wild", "Cat Stevens"]
          }
        },
        "type": "object"
      },
      "DZ_Fields_Response_Schema": {
        "properties": {
          "fields": {
            "properties": {
              "firstName": {
                "type": "string",
                "title": "First Name",
                "description": "Has the persons first name been verified",
                "example": "Yes",
                "enum": ["Yes", "No"]
              },
              "middleName": {
                "type": "string",
                "title": "Middle Name",
                "description": "Has the persons middle name been verified",
                "example": "Yes",
                "enum": ["Yes", "No"]
              },
              "lastName": {
                "type": "string",
                "title": "Last Name",
                "description": "Has the persons last name been verified",
                "example": "Yes",
                "enum": ["Yes", "No"]
              },
              "dateOfBirth": {
                "type": "string",
                "title": "Date of Birth",
                "description": "Has the persons date of birth been verified",
                "example": "Yes",
                "enum": ["Yes", "No"]
              },
              "licenceNo": {
                "type": "string",
                "title": "Licence Number",
                "description": "Has the persons licence number been verified",
                "example": "Yes",
                "enum": ["Yes", "No"]
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "DZ_Other_Addresses_Response_Schema": {
        "properties": {
          "otherAddresses": {
            "items": {
              "$ref": "#/components/schemas/KnownAddress"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DZ_Known_Names_Response_Schema": {
        "properties": {
          "knownNames": {
            "items": {
              "$ref": "#/components/schemas/KnownName"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DZ_Response_Header": {
        "properties": {
          "reportingReference": {
            "title": "Reporting reference",
            "description": "A unique reference for this response",
            "example": "DZ-KWT-000000001076196",
            "type": "string"
          },
          "safeHarbour": {
            "title": "Safe Harbour",
            "description": "Whether this meets safe harbour requirements",
            "example": false,
            "type": "boolean"
          }
        },
        "required": ["reportingReference", "safeHarbour"],
        "type": "object"
      },
      "DZ_Response_Body": {
        "properties": {
          "status": {
            "title": "Status",
            "description": "The status of this response",
            "example": 1,
            "type": "integer"
          },
          "safeHarbourScore": {
            "title": "Safe Harbour score",
            "description": "Whether this meets safe harbour requirements",
            "example": "N1",
            "type": "string"
          },
          "verified": {
            "title": "Verified",
            "description": "Whether the values have been validated",
            "example": false,
            "type": "boolean"
          }
        },
        "required": ["status", "safeHarbourScore", "verified"],
        "type": "object"
      },
      "DZ_Status_Message": {
        "properties": {
          "statusMessage": {
            "title": "Status message",
            "description": "The message passed in response to the status check",
            "example": "Unmatched: ",
            "type": "string"
          }
        },
        "required": ["statusMessage"],
        "type": "object"
      },
      "DZ_Company": {
        "properties": {
          "companyName": {
            "title": "Company name",
            "description": "The name of the company",
            "example": "UNDERWATER HIGH TEA LIMITED",
            "type": "string"
          }
        },
        "required": ["companyName"],
        "type": "object"
      },
      "DZ_Company_Relationship": {
        "properties": {
          "companyRelationship": {
            "title": "Company relationship",
            "description": "The relationship of the company with person",
            "example": "Shareholder",
            "type": "string"
          }
        },
        "required": ["companyRelationship"],
        "type": "object"
      },
      "DZ_Parent_Name_Schema": {
        "properties": {
          "mothersFirstName": {
            "type": "string",
            "title": "Mothers given name",
            "description": "The persons mothers given name",
            "example": "Leroy"
          },
          "mothersLastName": {
            "type": "string",
            "title": "Mothers family name",
            "description": "The persons mothers family name",
            "example": "Brown"
          },
          "fathersFirstName": {
            "type": "string",
            "title": "Fathers given name",
            "description": "The persons fathers given name",
            "example": "Leroy"
          },
          "fathersLastName": {
            "type": "string",
            "title": "Fathers family name",
            "description": "The persons fathers family name",
            "example": "Brown"
          }
        },
        "type": "object"
      },
      "DZ_Citizenship_Schema": {
        "properties": {
          "citizenshipCertificateNo": {
            "type": "string",
            "title": "Citizenship certificate number",
            "description": "The persons citizenship certificate number",
            "example": "AB12345"
          },
          "countryOfBirth": {
            "type": "string",
            "title": "Country of birth",
            "description": "The persons country of birth",
            "example": "New Zealand"
          }
        },
        "type": "object"
      },
      "DZ_Vehicle_Response_Schema": {
        "properties": {
          "vehicleMake": {
            "type": "string",
            "title": "Vehicle make",
            "description": "The vehicle make",
            "example": "ISUZU"
          },
          "vehicleModel": {
            "type": "string",
            "title": "Vehicle model",
            "description": "The vehicle model",
            "example": "BIGHORN"
          },
          "vehicleSubmodel": {
            "type": "string",
            "title": "Vehicle submodel",
            "description": "The vehicle submodel",
            "example": "IRMSCHER"
          },
          "vehicleBodyStyle": {
            "type": "string",
            "title": "Vehicle body style",
            "description": "The vehicle body style",
            "example": "SW"
          },
          "vehicleYear": {
            "type": "string",
            "title": "Vehicle year",
            "description": "The vehicle year of registration",
            "example": "1998"
          },
          "vehicleColour": {
            "type": "string",
            "title": "Vehicle colour",
            "description": "The vehicle colour",
            "example": "BLACK"
          },
          "vehicleVin": {
            "type": "string",
            "title": "VIN",
            "description": "Vehicle identification number",
            "example": "7A898130796102318"
          },
          "lastOdometerReading": {
            "type": "string",
            "title": "Last odometer reading value",
            "description": "Value of the last odometer reading",
            "example": "123456"
          },
          "lastOdometerReadingDate": {
            "type": "string",
            "format": "date",
            "title": "Last odometer reading date",
            "description": "Date of the last odometer reading",
            "example": "2018-03-01"
          }
        },
        "type": "object"
      },
      "Account": {
        "properties": {
          "AccountId": {
            "type": "string"
          },
          "AccountRelationship": {
            "type": "string"
          },
          "AccountRelationshipDescription": {
            "type": "string"
          },
          "AccountStatus": {
            "type": "string"
          },
          "AccountStatusDate": {
            "format": "date",
            "type": "string"
          },
          "AccountStatusDescription": {
            "type": "string"
          },
          "AccountType": {
            "type": "string"
          },
          "AccountTypeDescription": {
            "type": "string"
          },
          "CentrixReference": {
            "format": "int32",
            "type": "number"
          },
          "CreditLimit": {
            "format": "float",
            "type": "number"
          },
          "CreditPurpose": {
            "type": "string"
          },
          "CreditPurposeDescription": {
            "type": "string"
          },
          "CreditType": {
            "type": "string"
          },
          "CreditTypeDescription": {
            "type": "string"
          },
          "CustomerCeaseDate": {
            "format": "date",
            "type": "string"
          },
          "CustomerStartDate": {
            "format": "date",
            "type": "string"
          },
          "IndustryType": {
            "type": "string"
          },
          "IndustryTypeDescription": {
            "type": "string"
          },
          "PaymentFrequency": {
            "type": "string"
          },
          "PaymentFrequencyDescription": {
            "type": "string"
          },
          "PaymentType": {
            "type": "string"
          },
          "PaymentTypeDescription": {
            "type": "string"
          },
          "SecuredCreditType": {
            "type": "string"
          },
          "SecuredCreditTypeDescription": {
            "type": "string"
          },
          "Supplier": {
            "type": "string"
          },
          "TermOfLoan": {
            "type": "string"
          }
        },
        "required": [
          "CentrixReference",
          "AccountId",
          "AccountType",
          "AccountTypeDescription",
          "Supplier",
          "CustomerStartDate",
          "AccountRelationship",
          "AccountRelationshipDescription",
          "IndustryType",
          "IndustryTypeDescription",
          "CreditLimit",
          "CreditType",
          "CreditTypeDescription",
          "CreditPurpose",
          "CreditPurposeDescription",
          "SecuredCreditType",
          "SecuredCreditTypeDescription",
          "TermOfLoan",
          "PaymentFrequency",
          "PaymentFrequencyDescription",
          "PaymentType",
          "PaymentTypeDescription"
        ],
        "type": "object"
      },
      "Address": {
        "properties": {
          "AddressLine1": {
            "type": "string"
          },
          "AddressLine2": {
            "type": "string"
          },
          "AddressType": {
            "description": "Type of addresses associated with the consumer.\nPossible values - C = Current or Last Known Address\n                - P = Previous Address\n                - M = Mailing Address\n",
            "enum": ["C", "P", "M"],
            "type": "string"
          },
          "City": {
            "description": "Either Suburb or City mandatory",
            "type": "string"
          },
          "Country": {
            "type": "string"
          },
          "NumberOfYearsAtAddress": {
            "format": "int32",
            "type": "integer"
          },
          "Postcode": {
            "type": "string"
          },
          "Suburb": {
            "description": "Either Suburb or City mandatory",
            "type": "string"
          }
        },
        "example": {
          "AddressLine1": "8 Dillon Bell RD",
          "AddressType": "C",
          "City": "Gisborne",
          "Suburb": "Whataupoko",
          "Country": "NZL"
        },
        "required": ["AddressType", "AddressLine1", "Country"],
        "type": "object"
      },
      "CompanyAffiliation": {
        "properties": {
          "AffiliationType": {
            "type": "string"
          },
          "CompanyName": {
            "type": "string"
          },
          "CompanyNumber": {
            "type": "string"
          },
          "CompanyStatus": {
            "type": "string"
          },
          "CompanyStatusDescription": {
            "type": "string"
          },
          "DateAppointed": {
            "format": "date",
            "type": "string"
          },
          "DateLastUpdated": {
            "format": "date",
            "type": "string"
          },
          "DateResigned": {
            "format": "date",
            "type": "string"
          },
          "LastDocumentDate": {
            "format": "date",
            "type": "string"
          }
        },
        "required": [
          "DateLastUpdated",
          "AffiliationType",
          "CompanyNumber",
          "CompanyName",
          "CompanyStatus",
          "CompanyStatusDescription"
        ],
        "type": "object"
      },
      "ComprehensiveAndAdverseReportResponse": {
        "properties": {
          "CompaniesOfficeAcknowledgement": {
            "type": "string"
          },
          "DataSets": {
            "properties": {
              "ApplicationDecision": {
                "properties": {
                  "Decision": {
                    "type": "string"
                  },
                  "DecisionReasons": {
                    "items": {
                      "$ref": "#/components/schemas/DecisionReason"
                    },
                    "type": "array"
                  },
                  "RulesModificationNumber": {
                    "format": "int32",
                    "type": "number"
                  },
                  "RulesOwner": {
                    "type": "string"
                  },
                  "RulesVersionNumber": {
                    "format": "int32",
                    "type": "number"
                  }
                },
                "required": [
                  "RulesOwner",
                  "RulesVersionNumber",
                  "RulesModificationNumber",
                  "Decision"
                ],
                "type": "object"
              },
              "CompanyAffiliations": {
                "items": {
                  "$ref": "#/components/schemas/CompanyAffiliation"
                },
                "type": "array"
              },
              "ConsumerFile": {
                "properties": {
                  "AgeOfFile": {
                    "format": "date",
                    "type": "string"
                  },
                  "FileNumber": {
                    "type": "string"
                  },
                  "Personal": {
                    "$ref": "#/components/schemas/Personal"
                  }
                },
                "required": ["FileNumber", "AgeOfFile", "Personal"],
                "type": "object"
              },
              "Defaults": {
                "items": {
                  "$ref": "#/components/schemas/Default"
                },
                "type": "array"
              },
              "ExtraDataItems": {
                "items": {
                  "$ref": "#/components/schemas/ExtraDataItem"
                },
                "type": "array"
              },
              "FileNotes": {
                "items": {
                  "$ref": "#/components/schemas/FileNote"
                },
                "type": "array"
              },
              "Insolvencies": {
                "items": {
                  "$ref": "#/components/schemas/Insolvency"
                },
                "type": "array"
              },
              "Judgments": {
                "items": {
                  "$ref": "#/components/schemas/Judgement"
                },
                "type": "array"
              },
              "KnownAddresses": {
                "items": {
                  "$ref": "#/components/schemas/KnownAddress"
                },
                "type": "array"
              },
              "KnownNames": {
                "items": {
                  "$ref": "#/components/schemas/KnownName"
                },
                "type": "array"
              },
              "PaymentHistory": {
                "properties": {
                  "PaymentProfile": {
                    "items": {
                      "$ref": "#/components/schemas/PaymentPeriod"
                    },
                    "type": "array"
                  }
                },
                "required": ["PaymentProfile"],
                "type": "object"
              },
              "PreviousEnquiries": {
                "items": {
                  "$ref": "#/components/schemas/PreviousEnquiry"
                },
                "type": "array"
              },
              "PropertyOwnership": {
                "properties": {
                  "CxProperties": {
                    "items": {
                      "$ref": "#/components/schemas/CxProperty"
                    },
                    "type": "array"
                  }
                },
                "required": ["CxProperties"],
                "type": "object"
              },
              "RedArrearsMonthList": {
                "items": {
                  "$ref": "#/components/schemas/RedArrearsMonth"
                },
                "type": "array"
              },
              "SummaryItems": {
                "items": {
                  "$ref": "#/components/schemas/SummaryItem"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "EnteredConsumerData": {
            "properties": {
              "Addresses": {
                "items": {
                  "$ref": "#/components/schemas/Address"
                },
                "type": "array"
              },
              "Passport": {
                "$ref": "#/components/schemas/Passport"
              },
              "Personal": {
                "$ref": "#/components/schemas/Personal"
              },
              "Telephones": {
                "items": {
                  "$ref": "#/components/schemas/Telephone"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "EnteredRequestDetails": {
            "properties": {
              "AmountSought": {
                "format": "double",
                "type": "number"
              },
              "ApplicantType": {
                "type": "string"
              },
              "ApplicantTypeDescription": {
                "type": "string"
              },
              "EnquiryReason": {
                "type": "string"
              },
              "EnquiryReasonDescription": {
                "type": "string"
              },
              "SubscriberReference": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "InsolvencyTrusteeServiceAcknowledgement": {
            "type": "string"
          },
          "NameOnlyDataReportDisclaimer": {
            "type": "string"
          },
          "ReportDisclaimer": {
            "type": "string"
          },
          "ResponseDetails": {
            "properties": {
              "EnquiryNumber": {
                "type": "string"
              },
              "EnquiryTimestamp": {
                "format": "date-time",
                "type": "string"
              },
              "IsSuccess": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "ServiceProducts": {
            "items": {
              "$ref": "#/components/schemas/ProductCode"
            },
            "type": "array"
          },
          "StatusMessages": {
            "items": {
              "$ref": "#/components/schemas/StatusMessage"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Consent": {
        "properties": {
          "ConsentGiven": {
            "type": "boolean"
          },
          "Name": {
            "description": "Consent Name (see individual ProductCode definitions)",
            "type": "string"
          }
        },
        "required": ["Name", "ConsentGiven"],
        "type": "object"
      },
      "ConsumerReportRequest": {
        "properties": {
          "ConsumerData": {
            "properties": {
              "Addresses": {
                "items": {
                  "$ref": "#/components/schemas/Address"
                },
                "type": "array"
              },
              "Personal": {
                "$ref": "#/components/schemas/Personal"
              }
            },
            "required": ["Personal", "Addresses"],
            "type": "object"
          },
          "ExtraParameters": {
            "items": {
              "$ref": "#/components/schemas/NameValuePair"
            },
            "type": "array"
          },
          "RequestDetails": {
            "properties": {
              "AmountSought": {
                "description": "Amount of credit applied for.",
                "format": "float",
                "type": "number"
              },
              "ApplicantType": {
                "description": "Refer Applicant Type Table. Default to 'SNGL'",
                "type": "string"
              },
              "EnquiryReason": {
                "description": "Reason for the enquiry",
                "type": "string"
              },
              "ProductType": {
                "description": "Product consumer is applying for. Refer Product Type Table.",
                "type": "string"
              },
              "SubscriberReference": {
                "description": "Your own reference, if applicable. If provided this will display on the end of month invoice.",
                "type": "string"
              }
            },
            "required": ["EnquiryReason"],
            "type": "object"
          }
        },
        "required": ["Credentials", "RequestDetails", "ConsumerData"],
        "type": "object"
      },
      "CxProperty": {
        "properties": {
          "CertificateOfTitle": {
            "type": "string"
          },
          "CxPropertyDetails": {
            "$ref": "#/components/schemas/CxPropertyDetails"
          },
          "IssueDate": {
            "format": "date",
            "type": "string"
          },
          "QPID": {
            "type": "string"
          }
        },
        "required": ["QPID", "CertificateOfTitle", "CxPropertyDetails"],
        "type": "object"
      },
      "CxPropertyDetails": {
        "properties": {
          "PhysicalAddress": {
            "type": "string"
          },
          "Suburb": {
            "type": "string"
          },
          "TerritorialAuthority": {
            "type": "string"
          }
        },
        "required": ["PhysicalAddress", "Suburb", "TerritorialAuthority"],
        "type": "object"
      },
      "DIAPassport": {
        "properties": {
          "DIAPassportVerified": {
            "description": "True = Consistent False = Not Consistent",
            "type": "boolean"
          },
          "ErrorMessage": {
            "enum": [
              "Success",
              "Failure",
              "First bane abd last name required",
              "Last name is required",
              "First name is required"
            ],
            "type": "string"
          },
          "FirstName": {
            "description": "First name sent to DIA",
            "type": "string"
          },
          "IsSuccess": {
            "description": "Indicates that the DIA Passport Verification Service completed successfully or not. True = DIA Passport verification Service successfully completed False = DIA Passport Verification Service did not successfully complete. Ignore DIAPassportVerified value",
            "type": "boolean"
          },
          "MiddleName": {
            "description": "Middle name sent to DIA",
            "type": "string"
          },
          "Surname": {
            "description": "Surname sent to DIA",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DIAPassportVerificationRequest": {
        "properties": {
          "Consents": {
            "items": {
              "$ref": "#/components/schemas/Consent"
            },
            "type": "array"
          },
          "ConsumerData": {
            "properties": {
              "Addresses": {
                "items": {
                  "$ref": "#/components/schemas/Address"
                },
                "type": "array"
              },
              "Passport": {
                "$ref": "#/components/schemas/Passport"
              },
              "Personal": {
                "$ref": "#/components/schemas/Personal"
              }
            },
            "required": ["Personal", "Passport"],
            "type": "object"
          },
          "Credentials": {
            "properties": {
              "SubscriberID": {
                "description": "Subscriber identifier, as provided to you by Centrix.",
                "type": "string"
              },
              "UserID": {
                "description": "User identifier, as provided to you by Centrix.",
                "type": "string"
              },
              "UserKey": {
                "description": "User secret key, as provided to you by Centrix.",
                "type": "string"
              }
            },
            "required": ["SubscriberID", "UserID", "UserKey"],
            "type": "object"
          },
          "ExtraParameters": {
            "items": {
              "$ref": "#/components/schemas/NameValuePair"
            },
            "type": "array"
          },
          "RequestDetails": {
            "properties": {
              "AmountSought": {
                "description": "Amount of credit applied for.",
                "format": "float",
                "type": "number"
              },
              "ApplicantType": {
                "description": "Refer Applicant Type Table. Default to 'SNGL'",
                "type": "string"
              },
              "EnquiryReason": {
                "description": "Reason for the enquiry",
                "enum": ["IDVF"],
                "type": "string"
              },
              "ProductType": {
                "description": "Product consumer is applying for. Refer Product Type Table.",
                "type": "string"
              },
              "SubscriberReference": {
                "description": "Your own reference, if applicable. If provided this will display on the end of month invoice.",
                "type": "string"
              }
            },
            "required": ["EnquiryReason"],
            "type": "object"
          }
        },
        "required": [
          "Credentials",
          "RequestDetails",
          "ConsumerData",
          "Consents"
        ],
        "type": "object"
      },
      "DIAPassportVerificationResponse": {
        "properties": {
          "CompaniesOfficeAcknowledgement": {
            "type": "string"
          },
          "DataSets": {
            "properties": {
              "ConsumerFile": {
                "properties": {
                  "AgeOfFile": {
                    "format": "date",
                    "type": "string"
                  },
                  "FileNumber": {
                    "type": "string"
                  },
                  "Personal": {
                    "$ref": "#/components/schemas/Personal"
                  }
                },
                "required": ["FileNumber", "AgeOfFile", "Personal"],
                "type": "object"
              },
              "DIAPassport": {
                "$ref": "#/components/schemas/DIAPassport"
              }
            },
            "type": "object"
          },
          "EnteredRequestDetails": {
            "properties": {
              "AmountSought": {
                "format": "double",
                "type": "number"
              },
              "ApplicantType": {
                "type": "string"
              },
              "ApplicantTypeDescription": {
                "type": "string"
              },
              "EnquiryReason": {
                "type": "string"
              },
              "EnquiryReasonDescription": {
                "type": "string"
              },
              "SubscriberReference": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "InsolvencyTrusteeServiceAcknowledgement": {
            "type": "string"
          },
          "ReportDisclaimer": {
            "type": "string"
          },
          "ResponseDetails": {
            "properties": {
              "EnquiryNumber": {
                "type": "string"
              },
              "EnquiryTimestamp": {
                "format": "date-time",
                "type": "string"
              },
              "IsSuccess": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "ServiceProducts": {
            "items": {
              "$ref": "#/components/schemas/ProductCode"
            },
            "type": "array"
          },
          "StatusMessages": {
            "items": {
              "$ref": "#/components/schemas/StatusMessage"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "DecisionReason": {
        "properties": {
          "Priority": {
            "format": "int32",
            "type": "number"
          },
          "Reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Default": {
        "properties": {
          "AccountType": {
            "type": "string"
          },
          "AccountTypeDescription": {
            "type": "string"
          },
          "CollectionIndustrySupplier": {
            "type": "string"
          },
          "CreditProvider": {
            "type": "string"
          },
          "CurrentDefaultBalance": {
            "format": "float",
            "type": "number"
          },
          "DateOfDefault": {
            "format": "date",
            "type": "string"
          },
          "DefaultStatus": {
            "type": "string"
          },
          "DefaultStatusDescription": {
            "type": "string"
          },
          "OriginalDefaultAmount": {
            "format": "float",
            "type": "number"
          },
          "Reference": {
            "type": "string"
          },
          "StatusDate": {
            "format": "date",
            "type": "string"
          }
        },
        "required": [
          "DateOfDefault",
          "AccountType",
          "AccountTypeDescription",
          "CreditProvider",
          "CollectionIndustrySupplier",
          "Reference",
          "OriginalDefaultAmount",
          "CurrentDefaultBalance",
          "DefaultStatus",
          "DefaultStatusDescription",
          "StatusDate"
        ],
        "type": "object"
      },
      "DriverLicenceVerification": {
        "properties": {
          "DriverLicenceNumber": {
            "type": "string"
          },
          "DriverLicenceVersion": {
            "format": "int32",
            "type": "integer"
          },
          "IsDriverLicenceDateOfBirthMatched": {
            "type": "boolean"
          },
          "IsDriverLicenceFirstNameMatched": {
            "type": "boolean"
          },
          "IsDriverLicenceLastNameMatched": {
            "type": "boolean"
          },
          "IsDriverLicenceMiddleNameMatched": {
            "type": "boolean"
          },
          "IsDriverLicenceVerified": {
            "type": "boolean"
          },
          "IsDriverLicenceVerifiedAndMatched": {
            "description": "is True if number, version, name and date of birth (as supplied) has been verified and matched.",
            "type": "boolean"
          },
          "IsSuccess": {
            "type": "boolean"
          }
        },
        "required": ["DriverLicenceNumber"],
        "type": "object"
      },
      "DriverLicenceVerificationRequest": {
        "properties": {
          "ConsumerData": {
            "properties": {
              "Addresses": {
                "items": {
                  "$ref": "#/components/schemas/Address"
                },
                "type": "array"
              },
              "Personal": {
                "$ref": "#/components/schemas/Personal"
              }
            },
            "required": ["Personal"],
            "type": "object"
          },
          "Credentials": {
            "properties": {
              "SubscriberID": {
                "description": "Subscriber identifier, as provided to you by Centrix.",
                "type": "string"
              },
              "UserID": {
                "description": "User identifier, as provided to you by Centrix.",
                "type": "string"
              },
              "UserKey": {
                "description": "User secret key, as provided to you by Centrix.",
                "type": "string"
              }
            },
            "required": ["SubscriberID", "UserID", "UserKey"],
            "type": "object"
          },
          "DriverLicence": {
            "properties": {
              "DriverLicenceNumber": {
                "description": "The driver licence number. Item 5a on the licence.",
                "type": "string"
              },
              "DriverLicenceVersion": {
                "description": "The driver licence version. Item 5b on the licence.",
                "format": "int32",
                "type": "integer"
              }
            },
            "required": ["DriverLicenceNumber", "DriverLicenceVersion"],
            "type": "object"
          },
          "ExtraParameters": {
            "items": {
              "$ref": "#/components/schemas/NameValuePair"
            },
            "type": "array"
          },
          "RequestDetails": {
            "properties": {
              "AmountSought": {
                "description": "Amount of credit applied for.",
                "format": "float",
                "type": "number"
              },
              "ApplicantType": {
                "description": "Refer Applicant Type Table. Default to 'SNGL'",
                "type": "string"
              },
              "EnquiryReason": {
                "description": "Reason for the enquiry",
                "enum": ["DLVN"],
                "type": "string"
              },
              "ProductType": {
                "description": "Product consumer is applying for. Refer Product Type Table.",
                "type": "string"
              },
              "SubscriberReference": {
                "description": "Your own reference, if applicable. If provided this will display on the end of month invoice.",
                "type": "string"
              }
            },
            "required": ["EnquiryReason"],
            "type": "object"
          }
        },
        "required": [
          "Credentials",
          "RequestDetails",
          "DriverLicence",
          "ConsumerData"
        ],
        "type": "object"
      },
      "DriverLicenceVerificationResponse": {
        "properties": {
          "CompaniesOfficeAcknowledgement": {
            "type": "string"
          },
          "DataSets": {
            "properties": {
              "ConsumerFile": {
                "properties": {
                  "AgeOfFile": {
                    "format": "date",
                    "type": "string"
                  },
                  "FileNumber": {
                    "type": "string"
                  },
                  "Personal": {
                    "$ref": "#/components/schemas/Personal"
                  }
                },
                "required": ["FileNumber", "AgeOfFile", "Personal"],
                "type": "object"
              },
              "DriverLicenceVerification": {
                "$ref": "#/components/schemas/DriverLicenceVerification"
              }
            },
            "type": "object"
          },
          "EnteredRequestDetails": {
            "properties": {
              "AmountSought": {
                "format": "double",
                "type": "number"
              },
              "ApplicantType": {
                "type": "string"
              },
              "ApplicantTypeDescription": {
                "type": "string"
              },
              "EnquiryReason": {
                "type": "string"
              },
              "EnquiryReasonDescription": {
                "type": "string"
              },
              "SubscriberReference": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "InsolvencyTrusteeServiceAcknowledgement": {
            "type": "string"
          },
          "ReportDisclaimer": {
            "type": "string"
          },
          "ResponseDetails": {
            "properties": {
              "EnquiryNumber": {
                "type": "string"
              },
              "EnquiryTimestamp": {
                "format": "date-time",
                "type": "string"
              },
              "IsSuccess": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "ServiceProducts": {
            "items": {
              "$ref": "#/components/schemas/ProductCode"
            },
            "type": "array"
          },
          "StatusMessages": {
            "items": {
              "$ref": "#/components/schemas/StatusMessage"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ErrorItem": {
        "properties": {
          "code": {
            "type": "string",
            "enum": ["J001", "J002", "J003", "J004"],
            "description": "J001    Received request message did not match schema. This is a client side issue where the request message was not properly formed. J002    An error occurred trying to build the Centrix Bureau Request. This is most likely to be a server side issue where Smartlink could not create the Centrix XML request message. J003    An error occurred trying to check received request message. This could be either a client or server issue. J004    Error occurred parsing the received request message. This could be either a client or server issue but most likely a server one."
          },
          "message": {
            "type": "string",
            "enum": [
              "Required properties are missing from object",
              "Required properties are missing from header"
            ]
          },
          "type": {
            "description": "The type of error encountered Possible values - RequestFormatException = The request message to\n                  not conform to the Json Schema\n                - CentrixBureauException = The request message passed the schema requirements but the bureau could not process the request including authorisation failures\n                - ServerException = An unexpected error occured which the Centrix application could not recover from\n                - MissingHeaderException\n",
            "enum": [
              "RequestFormatException",
              "CentrixBureauException",
              "ServerException"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "ErrorResponse": {
        "properties": {
          "error": {
            "properties": {
              "domain": {
                "description": "Scope of error",
                "enum": ["ComprehensiveAndAdverseReport"],
                "type": "string"
              },
              "errors": {
                "items": {
                  "$ref": "#/components/schemas/ErrorItem"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "ErrorResponseAuthentication": {
        "properties": {
          "message": {
            "description": "Authentication error",
            "enum": ["The incoming token has expired", "Unauthorized"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "ExtraDataItem": {
        "properties": {
          "ExtraItemType": {
            "type": "string"
          },
          "NameValuePairs": {
            "items": {
              "$ref": "#/components/schemas/NameValuePair"
            },
            "type": "array"
          }
        },
        "required": ["ExtraItemType", "NameValuePairs"],
        "type": "object"
      },
      "FileNote": {
        "properties": {
          "DataReferencedAmount": {
            "format": "float",
            "type": "number"
          },
          "DataReferencedCreatedDate": {
            "format": "date",
            "type": "string"
          },
          "DataReferencedText": {
            "type": "string"
          },
          "DataReferencedType": {
            "type": "string"
          },
          "DataReferencedTypeDescription": {
            "type": "string"
          },
          "FileNoteNarrative": {
            "type": "string"
          },
          "NoteCreatedDate": {
            "format": "date",
            "type": "string"
          },
          "NoteTypeCode": {
            "type": "string"
          },
          "NoteTypeDescription": {
            "type": "string"
          }
        },
        "required": [
          "NoteCreatedDate",
          "NoteTypeCode",
          "NoteTypeDescription",
          "FileNoteNarrative"
        ],
        "type": "object"
      },
      "Insolvency": {
        "properties": {
          "AdjudicationDate": {
            "format": "date",
            "type": "string"
          },
          "DischargeDate": {
            "format": "date",
            "type": "string"
          },
          "InsolvencyNumber": {
            "format": "int32",
            "type": "number"
          },
          "InsolvencyStatus": {
            "type": "string"
          },
          "InsolvencyType": {
            "type": "string"
          },
          "ModifiedDate": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "InsolvencyNumber",
          "AdjudicationDate",
          "InsolvencyType",
          "InsolvencyStatus"
        ],
        "type": "object"
      },
      "Judgement": {
        "properties": {
          "Amount": {
            "format": "float",
            "type": "number"
          },
          "DateOfJudgement": {
            "format": "date",
            "type": "string"
          },
          "JudgementNumber": {
            "type": "string"
          },
          "JudgementType": {
            "type": "string"
          },
          "MultipleDefendants": {
            "type": "string"
          },
          "Plaintiffs": {
            "items": {
              "$ref": "#/components/schemas/Plaintiff"
            },
            "type": "array"
          },
          "Status": {
            "type": "string"
          },
          "StatusDate": {
            "format": "date",
            "type": "string"
          }
        },
        "required": [
          "JudgementNumber",
          "DateOfJudgement",
          "MultipleDefendants",
          "Plaintiffs",
          "JudgementType",
          "Amount"
        ],
        "type": "object"
      },
      "KnownAddress": {
        "properties": {
          "AddressDate": {
            "format": "date",
            "type": "string"
          },
          "AddressLine1": {
            "type": "string"
          },
          "AddressLine2": {
            "type": "string"
          },
          "City": {
            "type": "string"
          },
          "Country": {
            "type": "string"
          },
          "DeliveryPointID": {
            "type": "string"
          },
          "LastKnown": {
            "type": "boolean"
          },
          "Postcode": {
            "type": "string"
          },
          "Suburb": {
            "type": "string"
          }
        },
        "required": ["LastKnown", "AddressDate", "AddressLine1"],
        "type": "object"
      },
      "KnownName": {
        "properties": {
          "DateOfBirth": {
            "format": "date",
            "type": "string"
          },
          "FirstName": {
            "type": "string"
          },
          "MiddleName": {
            "type": "string"
          },
          "Surname": {
            "type": "string"
          }
        },
        "required": ["Surname", "FirstName"],
        "type": "object"
      },
      "NameValuePair": {
        "properties": {
          "Name": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          }
        },
        "required": ["Name", "Value"],
        "type": "object"
      },
      "Passport": {
        "properties": {
          "Expiry": {
            "format": "date",
            "type": "string"
          },
          "MRZ1": {
            "description": "PLEASE IGNORE � HAS BEEN RETIRED (Included in this document for backward compatibility)",
            "type": "string"
          },
          "MRZ2": {
            "description": "PLEASE IGNORE � HAS BEEN RETIRED (Included in this document for backward compatibility)",
            "type": "string"
          },
          "PassportNumber": {
            "type": "string"
          }
        },
        "required": ["PassportNumber", "Expiry"],
        "type": "object"
      },
      "PaymentPeriod": {
        "properties": {
          "Month": {
            "format": "int32",
            "type": "number"
          },
          "MonthDescription": {
            "type": "string"
          },
          "PaymentStatus": {
            "type": "string"
          },
          "PaymentStatusDescription": {
            "type": "string"
          },
          "Year": {
            "format": "int32",
            "type": "number"
          }
        },
        "required": [
          "Month",
          "MonthDescription",
          "PaymentStatus",
          "PaymentStatusDescription",
          "Year"
        ],
        "type": "object"
      },
      "Personal": {
        "properties": {
          "DateOfBirth": {
            "format": "date",
            "type": "string"
          },
          "FirstName": {
            "type": "string"
          },
          "Gender": {
            "description": "Person's gender",
            "enum": ["M", "F", "U"],
            "type": "string"
          },
          "MiddleName": {
            "type": "string"
          },
          "Surname": {
            "type": "string"
          },
          "Email": {
            "type": "string"
          }
        },
        "required": ["Surname", "FirstName", "Email"],
        "type": "object"
      },
      "Plaintiff": {
        "properties": {
          "Name": {
            "type": "string"
          }
        },
        "required": ["Name"],
        "type": "object"
      },
      "PreviousEnquiry": {
        "properties": {
          "AmountSought": {
            "format": "float",
            "type": "number"
          },
          "ApplicantType": {
            "type": "string"
          },
          "ApplicantTypeDescription": {
            "type": "string"
          },
          "DateOfAccess": {
            "format": "date",
            "type": "string"
          },
          "EnquirerName": {
            "type": "string"
          },
          "EnquiryReason": {
            "type": "string"
          },
          "EnquiryReasonDescription": {
            "type": "string"
          },
          "EnquiryReference": {
            "type": "string"
          },
          "JointApplication": {
            "type": "string"
          },
          "ProductType": {
            "type": "string"
          },
          "ProductTypeDescription": {
            "type": "string"
          }
        },
        "required": [
          "DateOfAccess",
          "EnquirerName",
          "EnquiryReason",
          "EnquiryReasonDescription",
          "EnquiryReference",
          "ProductType",
          "ProductTypeDescription",
          "AmountSought",
          "JointApplication"
        ],
        "type": "object"
      },
      "ProductCode": {
        "description": "A Centrix product requested",
        "type": "string"
      },
      "RedArrears": {
        "properties": {
          "BalanceOverdue120Days": {
            "format": "float",
            "type": "number"
          },
          "BalanceOverdue30Days": {
            "format": "float",
            "type": "number"
          },
          "BalanceOverdue60Days": {
            "format": "float",
            "type": "number"
          },
          "BalanceOverdue90Days": {
            "format": "float",
            "type": "number"
          },
          "SupplierCode": {
            "type": "string"
          },
          "SupplierName": {
            "type": "string"
          }
        },
        "required": [
          "SupplierCode",
          "SupplierName",
          "BalanceOverdue30Days",
          "BalanceOverdue60Days",
          "BalanceOverdue90Days",
          "BalanceOverdue120Days"
        ],
        "type": "object"
      },
      "RedArrearsMonth": {
        "properties": {
          "Active": {
            "type": "boolean"
          },
          "Month": {
            "format": "int32",
            "type": "number"
          },
          "MonthName": {
            "type": "string"
          },
          "RedArrearsList": {
            "items": {
              "$ref": "#/components/schemas/RedArrears"
            },
            "type": "array"
          },
          "Year": {
            "format": "int32",
            "type": "number"
          }
        },
        "required": ["Year", "Month", "MonthName", "Active", "RedArrearsList"],
        "type": "object"
      },
      "StatusMessage": {
        "description": "Status messages used to provide information pertaining to the enquiry",
        "properties": {
          "MessageCode": {
            "type": "string"
          },
          "MessageText": {
            "type": "string"
          },
          "MessageType": {
            "description": "The type of status message returned",
            "enum": ["Information"],
            "type": "string"
          },
          "SupportData": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "SummaryItem": {
        "properties": {
          "NameValuePairs": {
            "items": {
              "$ref": "#/components/schemas/NameValuePair"
            },
            "type": "array"
          },
          "SummaryItemType": {
            "type": "string"
          }
        },
        "required": ["SummaryItemType", "NameValuePairs"],
        "type": "object"
      },
      "Telephone": {
        "properties": {
          "TelephoneNumber": {
            "description": "Telephone Number (can include area code)",
            "type": "string"
          }
        },
        "required": ["TelephoneNumber"],
        "type": "object"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT.",
        "description": "Use the identity_token from the /token endpoint"
      }
    }
  }
}
