Paysafe.CustomerIdentity (Paysafe v1.0.0)

Copy Markdown View Source

Customer Identity (KYC) API.

Perform AML/KYC identity verification checks on customers with a single API request. Available globally (CA, EU/UK, US).

Base path: /customeridentification/v1/identityprofiles. Note this is a flat resource — it is not nested under /accounts/{account_id} like most other Payments API resources.

Example

{:ok, profile} = Paysafe.CustomerIdentity.verify(config, %{
  merchant_ref_num: "KYC_1520461749",
  profile: %{
    first_name: "John",
    last_name: "Smith",
    email: "john.smith@myemail.com",
    current_address: %{
      street: "100 Queen Street West",
      street2: "Unit 201",
      city: "Toronto",
      state: "ON",
      country: "CA",
      zip: "M5H 2N2",
      months_at_address: "20",
      phone: "647-788-3901"
    },
    date_of_birth: %{day: "25", month: "12", year: "1980"}
  },
  customer_ip: "1.1.1.1",
  vendor_check: "EID_COMPARE"
})

profile.decision  #=> :success | :error | :fail | :outsort

:success means the customer passed. :error means a downstream provider issue occurred — use rerun/3 with the returned id to retry. :fail means the customer failed the check outright. :outsort means the result was inconclusive and you should manually verify via documents.

Summary

Functions

Retrieve a previously submitted identity profile by ID.

Rerun a failed identity check.

Submit an identity verification request.

Functions

get(config, profile_id, opts \\ [])

Retrieve a previously submitted identity profile by ID.

rerun(config, profile_id, opts \\ [])

@spec rerun(Paysafe.Config.t(), String.t(), keyword()) ::
  {:ok, Paysafe.Types.IdentityProfile.t()} | {:error, Paysafe.Error.t()}

Rerun a failed identity check.

Only rerun a check whose decision was :error — this indicates the request could not be completed for a transient reason (e.g. a downstream provider timeout). Do not rerun a check whose decision was :fail; resubmitting will return the same :fail decision again.

verify(config, params, opts \\ [])

@spec verify(Paysafe.Config.t(), map(), keyword()) ::
  {:ok, Paysafe.Types.IdentityProfile.t()} | {:error, Paysafe.Error.t()}

Submit an identity verification request.

Parameters

  • :merchant_ref_num (required) — Your unique reference number.
  • :profile (required) — Map with first_name, last_name, email, current_address, date_of_birth, and other identity fields.
  • :card — Optional card details, when checking identity alongside a card payment.
  • :customer_ip — Customer's IP address.
  • :vendor_check or :workflow_id — Determines which downstream KYC provider(s) process the request. Paysafe will advise which to use.