# File generated from our OpenAPI spec # frozen_string_literal: true module Stripe module Identity # 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](https://stripe.com/docs/identity/verification-checks) to perform. Only create one VerificationSession for # each verification in your system. # # A VerificationSession transitions through [multiple # statuses](https://stripe.com/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) class VerificationSession < APIResource extend Stripe::APIOperations::Create extend Stripe::APIOperations::List include Stripe::APIOperations::Save OBJECT_NAME = "identity.verification_session" def self.object_name "identity.verification_session" end # A VerificationSession object can be canceled when it is in requires_input [status](https://stripe.com/docs/identity/how-sessions-work). # # Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://stripe.com/docs/identity/verification-sessions#cancel). def cancel(params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/identity/verification_sessions/%s/cancel", { session: CGI.escape(self["id"]) }), params: params, opts: opts ) end # 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](https://stripe.com/docs/identity/how-sessions-work). 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](https://stripe.com/docs/identity/verification-sessions#redact). def redact(params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/identity/verification_sessions/%s/redact", { session: CGI.escape(self["id"]) }), params: params, opts: opts ) end # A VerificationSession object can be canceled when it is in requires_input [status](https://stripe.com/docs/identity/how-sessions-work). # # Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://stripe.com/docs/identity/verification-sessions#cancel). def self.cancel(session, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/identity/verification_sessions/%s/cancel", { session: CGI.escape(session) }), params: params, opts: opts ) end # 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](https://stripe.com/docs/identity/how-sessions-work). 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](https://stripe.com/docs/identity/verification-sessions#redact). def self.redact(session, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/identity/verification_sessions/%s/redact", { session: CGI.escape(session) }), params: params, opts: opts ) end # 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](https://stripe.com/docs/identity/verify-identity-documents) def self.create(params = {}, opts = {}) request_stripe_object( method: :post, path: "/v1/identity/verification_sessions", params: params, opts: opts ) end # Returns a list of VerificationSessions def self.list(filters = {}, opts = {}) request_stripe_object( method: :get, path: "/v1/identity/verification_sessions", params: filters, opts: opts ) end # Updates a VerificationSession object. # # When the session status is requires_input, you can use this method to update the # verification check and options. def self.update(id, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/identity/verification_sessions/%s", { id: CGI.escape(id) }), params: params, opts: opts ) end end end end