openapi: 3.0.0 info: title: Stripe Identity API description: >- Use Stripe Identity to confirm the identity of global users to prevent fraud, streamline risk operations, and increase trust and safety. contact: email: dev-platform@stripe.com name: Stripe Dev Platform Team url: https://stripe.com termsOfService: https://stripe.com/us/terms/ version: '2023-10-16' x-stripeSpecFilename: spec3 security: - basicAuth: [] - bearerAuth: [] servers: - url: https://api.stripe.com/ paths: /v1/identity/verification_reports: get: description:

List all verification reports.

operationId: getIdentityVerificationReports parameters: - 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 - 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 VerificationReports of this type in: query name: type required: false schema: enum: - document - id_number type: string x-stripeBypassValidation: true style: form - description: >- Only return VerificationReports created by this VerificationSession ID. It is allowed to provide a VerificationIntent ID. in: query name: verification_session required: false schema: maxLength: 5000 type: string style: form requestBody: content: application/x-www-form-urlencoded: encoding: {} schema: additionalProperties: false $ref: '#/components/schemas/GetIdentityVerificationReportsRequest' required: false responses: '200': content: application/json: schema: description: '' x-expandableFields: - data $ref: '#/components/schemas/GelatoVerificationReportList' description: Successful response. default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error response. summary: Stripe Get Identity Verification Reports x-api-evangelist-processing: GenerateOperationSummariesFromPath: true PascalCaseOperationSummaries: true CaselCaseOperationIds: true ChooseTags: true tags: - Get - Identity - Reports - Verification /v1/identity/verification_reports/{report}: get: description:

Retrieves an existing VerificationReport

operationId: getIdentityVerificationReportsReport 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: report required: true schema: maxLength: 5000 type: string style: simple requestBody: content: application/x-www-form-urlencoded: encoding: {} schema: additionalProperties: false $ref: '#/components/schemas/GetIdentityVerificationReportsReportRequest' required: false responses: '200': content: application/json: schema: $ref: '#/components/schemas/identity.verification_report' description: Successful response. default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error response. summary: Stripe Get Identity Verification Reports Report x-api-evangelist-processing: GenerateOperationSummariesFromPath: true PascalCaseOperationSummaries: true CaselCaseOperationIds: true ChooseTags: true tags: - Get - Identity - Reports - Verification /v1/identity/verification_sessions: get: description:

Returns a list of VerificationSessions

operationId: getIdentityVerificationSessions parameters: - 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 - 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 VerificationSessions with this status. [Learn more about the lifecycle of sessions](https://stripe.com/docs/identity/how-sessions-work). in: query name: status required: false schema: enum: - canceled - processing - requires_input - verified type: string style: form requestBody: content: application/x-www-form-urlencoded: encoding: {} schema: additionalProperties: false $ref: '#/components/schemas/GetIdentityVerificationSessionsRequest' required: false responses: '200': content: application/json: schema: description: '' x-expandableFields: - data $ref: '#/components/schemas/GelatoVerificationSessionList' description: Successful response. default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error response. summary: Stripe Get Identity Verification Sessions x-api-evangelist-processing: GenerateOperationSummariesFromPath: true PascalCaseOperationSummaries: true CaselCaseOperationIds: true ChooseTags: true tags: - Get - Identity - Sessions - Verification post: description: >-

Creates a VerificationSession object.

After the VerificationSession is created, display a verification modal using the session client_secret or send your users to the session’s url.

If your API key is in test mode, verification checks won’t actually process, though everything else will occur as if in live mode.

Related guide: Verify your users’ identity documents

operationId: postIdentityVerificationSessions requestBody: content: application/x-www-form-urlencoded: encoding: expand: explode: true style: deepObject metadata: explode: true style: deepObject options: explode: true style: deepObject schema: additionalProperties: false $ref: '#/components/schemas/PostIdentityVerificationSessionsRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/identity.verification_session' description: Successful response. default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error response. summary: Stripe Post Identity Verification Sessions x-api-evangelist-processing: GenerateOperationSummariesFromPath: true PascalCaseOperationSummaries: true CaselCaseOperationIds: true ChooseTags: true tags: - Identity - Post - Sessions - Verification /v1/identity/verification_sessions/{session}: get: description: >-

Retrieves the details of a VerificationSession that was previously created.

When the session status is requires_input, you can use this method to retrieve a valid client_secret or url to allow re-submission.

operationId: getIdentityVerificationSessionsSession 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: session required: true schema: maxLength: 5000 type: string style: simple requestBody: content: application/x-www-form-urlencoded: encoding: {} schema: additionalProperties: false $ref: >- #/components/schemas/GetIdentityVerificationSessionsSessionRequest required: false responses: '200': content: application/json: schema: $ref: '#/components/schemas/identity.verification_session' description: Successful response. default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error response. summary: Stripe Get Identity Verification Sessions Session x-api-evangelist-processing: GenerateOperationSummariesFromPath: true PascalCaseOperationSummaries: true CaselCaseOperationIds: true ChooseTags: true tags: - Get - Identity - Sessions - Verification post: description: >-

Updates a VerificationSession object.

When the session status is requires_input, you can use this method to update the verification check and options.

operationId: postIdentityVerificationSessionsSession parameters: - in: path name: session required: true schema: maxLength: 5000 type: string style: simple requestBody: content: application/x-www-form-urlencoded: encoding: expand: explode: true style: deepObject metadata: explode: true style: deepObject options: explode: true style: deepObject schema: additionalProperties: false $ref: >- #/components/schemas/PostIdentityVerificationSessionsSessionRequest required: false responses: '200': content: application/json: schema: $ref: '#/components/schemas/identity.verification_session' description: Successful response. default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error response. summary: Stripe Post Identity Verification Sessions Session x-api-evangelist-processing: GenerateOperationSummariesFromPath: true PascalCaseOperationSummaries: true CaselCaseOperationIds: true ChooseTags: true tags: - Identity - Post - Sessions - Verification /v1/identity/verification_sessions/{session}/cancel: post: description: >-

A VerificationSession object can be canceled when it is in requires_input status.

Once canceled, future submission attempts are disabled. This cannot be undone. Learn more.

operationId: postIdentityVerificationSessionsSessionCancel parameters: - in: path name: session required: true schema: maxLength: 5000 type: string style: simple requestBody: content: application/x-www-form-urlencoded: encoding: expand: explode: true style: deepObject schema: additionalProperties: false $ref: >- #/components/schemas/PostIdentityVerificationSessionsSessionCancelRequest required: false responses: '200': content: application/json: schema: $ref: '#/components/schemas/identity.verification_session' description: Successful response. default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error response. summary: Stripe Post Identity Verification Sessions Session Cancel x-api-evangelist-processing: GenerateOperationSummariesFromPath: true PascalCaseOperationSummaries: true CaselCaseOperationIds: true ChooseTags: true tags: - Cancel - Identity - Post - Sessions - Verification /v1/identity/verification_sessions/{session}/redact: post: description: >-

Redact a VerificationSession to remove all collected information from Stripe. This will redact the VerificationSession and all objects related to it, including VerificationReports, Events, request logs, etc.

A VerificationSession object can be redacted when it is in requires_input or verified status. Redacting a VerificationSession in requires_action state will automatically cancel it.

The redaction process may take up to four days. When the redaction process is in progress, the VerificationSession’s redaction.status field will be set to processing; when the process is finished, it will change to redacted and an identity.verification_session.redacted event will be emitted.

Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the fields that contain personal data will be replaced by the string [redacted] or a similar placeholder. The metadata field will also be erased. Redacted objects cannot be updated or used for any purpose.

Learn more.

operationId: postIdentityVerificationSessionsSessionRedact parameters: - in: path name: session required: true schema: maxLength: 5000 type: string style: simple requestBody: content: application/x-www-form-urlencoded: encoding: expand: explode: true style: deepObject schema: additionalProperties: false $ref: >- #/components/schemas/PostIdentityVerificationSessionsSessionRedactRequest required: false responses: '200': content: application/json: schema: $ref: '#/components/schemas/identity.verification_session' description: Successful response. default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error response. summary: Stripe Post Identity Verification Sessions Session Redact x-api-evangelist-processing: GenerateOperationSummariesFromPath: true PascalCaseOperationSummaries: true CaselCaseOperationIds: true ChooseTags: true tags: - Identity - Post - Redact - Sessions - Verification components: schemas: error: description: An error response from the Stripe API properties: error: $ref: '#/components/schemas/api_errors' required: - error type: object identity.verification_report: description: >- A VerificationReport is the result of an attempt to collect and verify data from a user. The collection of verification checks performed is determined from the `type` and `options` parameters used. You can find the result of each verification check performed in the appropriate sub-resource: `document`, `id_number`, `selfie`. Each VerificationReport contains a copy of any data collected by the user as well as reference IDs which can be used to access collected images through the [FileUpload](https://stripe.com/docs/api/files) API. To configure and create VerificationReports, use the [VerificationSession](https://stripe.com/docs/api/identity/verification_sessions) API. Related guides: [Accessing verification results](https://stripe.com/docs/identity/verification-sessions#results). properties: created: description: >- Time at which the object was created. Measured in seconds since the Unix epoch. format: unix-time type: integer document: $ref: '#/components/schemas/gelato_document_report' id: description: Unique identifier for the object. maxLength: 5000 type: string id_number: $ref: '#/components/schemas/gelato_id_number_report' 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: - identity.verification_report type: string options: $ref: '#/components/schemas/gelato_verification_report_options' selfie: $ref: '#/components/schemas/gelato_selfie_report' type: description: Type of report. enum: - document - id_number type: string x-stripeBypassValidation: true verification_session: description: ID of the VerificationSession that created this report. maxLength: 5000 nullable: true type: string required: - created - id - livemode - object title: GelatoVerificationReport type: object x-expandableFields: - document - id_number - options - selfie x-resourceId: identity.verification_report identity.verification_session: description: >- A VerificationSession guides you through the process of collecting and verifying the identities of your users. It contains details about the type of verification, such as what [verification check](/docs/identity/verification-checks) to perform. Only create one VerificationSession for each verification in your system. A VerificationSession transitions through [multiple statuses](/docs/identity/how-sessions-work) throughout its lifetime as it progresses through the verification flow. The VerificationSession contains the user's verified data after verification checks are complete. Related guide: [The Verification Sessions API](https://stripe.com/docs/identity/verification-sessions) properties: client_secret: description: >- The short-lived client secret used by Stripe.js to [show a verification modal](https://stripe.com/docs/js/identity/modal) inside your app. This client secret expires after 24 hours and can only be used once. Don’t store it, log it, embed it in a URL, or expose it to anyone other than the user. Make sure that you have TLS enabled on any page that includes the client secret. Refer to our docs on [passing the client secret to the frontend](https://stripe.com/docs/identity/verification-sessions#client-secret) to learn more. 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 id: description: Unique identifier for the object. maxLength: 5000 type: string last_error: anyOf: - $ref: '#/components/schemas/gelato_session_last_error' description: >- If present, this property tells you the last error encountered when processing the verification. nullable: true last_verification_report: anyOf: - maxLength: 5000 type: string - $ref: '#/components/schemas/identity.verification_report' description: >- ID of the most recent VerificationReport. [Learn more about accessing detailed verification results.](https://stripe.com/docs/identity/verification-sessions#results) nullable: true x-expansionResources: oneOf: - $ref: '#/components/schemas/identity.verification_report' 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](https://stripe.com/docs/api/metadata) 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: - identity.verification_session type: string options: anyOf: - $ref: '#/components/schemas/gelato_verification_session_options' description: A set of options for the session’s verification checks. nullable: true redaction: anyOf: - $ref: '#/components/schemas/verification_session_redaction' description: >- Redaction status of this VerificationSession. If the VerificationSession is not redacted, this field will be null. nullable: true status: description: >- Status of this VerificationSession. [Learn more about the lifecycle of sessions](https://stripe.com/docs/identity/how-sessions-work). enum: - canceled - processing - requires_input - verified type: string type: description: >- The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed. enum: - document - id_number nullable: true type: string x-stripeBypassValidation: true url: description: >- The short-lived URL that you use to redirect a user to Stripe to submit their identity information. This URL expires after 48 hours and can only be used once. Don’t store it, log it, send it in emails or expose it to anyone other than the user. Refer to our docs on [verifying identity documents](https://stripe.com/docs/identity/verify-identity-documents?platform=web&type=redirect) to learn how to redirect users to Stripe. maxLength: 5000 nullable: true type: string verified_outputs: anyOf: - $ref: '#/components/schemas/gelato_verified_outputs' description: The user’s verified data. nullable: true required: - created - id - livemode - metadata - object - status title: GelatoVerificationSession type: object x-expandableFields: - last_error - last_verification_report - options - redaction - verified_outputs x-resourceId: identity.verification_session GetIdentityVerificationReportsRequest: type: object properties: {} GelatoVerificationReportList: type: object required: - data - has_more - object - url properties: data: items: $ref: '#/components/schemas/identity.verification_report' 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 pattern: ^/v1/identity/verification_reports type: string GetIdentityVerificationReportsReportRequest: type: object properties: {} GetIdentityVerificationSessionsRequest: type: object properties: {} GelatoVerificationSessionList: type: object required: - data - has_more - object - url properties: data: items: $ref: '#/components/schemas/identity.verification_session' 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 pattern: ^/v1/identity/verification_sessions type: string PostIdentityVerificationSessionsRequest: type: object required: - type properties: expand: description: Specifies which fields in the response should be expanded. items: maxLength: 5000 type: string type: array metadata: additionalProperties: type: string description: >- Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. type: object options: description: A set of options for the session’s verification checks. properties: document: anyOf: - properties: allowed_types: items: enum: - driving_license - id_card - passport type: string type: array require_id_number: type: boolean require_live_capture: type: boolean require_matching_selfie: type: boolean title: document_options type: object - enum: - '' type: string title: session_options_param type: object return_url: description: >- The URL that the user will be redirected to upon completing the verification flow. type: string type: description: >- The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed. enum: - document - id_number type: string x-stripeBypassValidation: true GetIdentityVerificationSessionsSessionRequest: type: object properties: {} PostIdentityVerificationSessionsSessionRequest: type: object properties: expand: description: Specifies which fields in the response should be expanded. items: maxLength: 5000 type: string type: array metadata: additionalProperties: type: string description: >- Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. type: object options: description: A set of options for the session’s verification checks. properties: document: anyOf: - properties: allowed_types: items: enum: - driving_license - id_card - passport type: string type: array require_id_number: type: boolean require_live_capture: type: boolean require_matching_selfie: type: boolean title: document_options type: object - enum: - '' type: string title: session_options_param type: object type: description: >- The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed. enum: - document - id_number type: string x-stripeBypassValidation: true PostIdentityVerificationSessionsSessionCancelRequest: type: object properties: expand: description: Specifies which fields in the response should be expanded. items: maxLength: 5000 type: string type: array PostIdentityVerificationSessionsSessionRedactRequest: type: object properties: expand: description: Specifies which fields in the response should be expanded. items: maxLength: 5000 type: string type: array securitySchemes: basicAuth: description: >- Basic HTTP authentication. Allowed headers-- Authorization: Basic | Authorization: Basic scheme: basic type: http bearerAuth: bearerFormat: auth-scheme description: >- Bearer HTTP authentication. Allowed headers-- Authorization: Bearer scheme: bearer type: http tags: - name: Cancel - name: Get - name: Identity - name: Post - name: Redact - name: Reports - name: Sessions - name: Verification