/

Stripe Connect

Stripe Connect

Integration type

Banking

What we solve

Stripe Connect platforms need a stronger, reusable way to verify the identity of connected accounts (sellers/service providers) and add biometric step-up for high-risk payments—so they can meet onboarding/KYC requirements, reduce fraud, and unlock capabilities without manual review. This integration inserts 1Kosmos BlockID Verify and LiveID into the Connect onboarding and payment flows via Stripe APIs and webhooks, pushing verified person/company data into Stripe objects and using LiveID challenges when PaymentIntents require action, enabling faster compliance approval and safer transaction processing.

Integration architecture

Stripe Connect powers platforms and marketplaces (Shopify Payments, Lyft, Squarespace). 1Kosmos publishes in the Stripe App Marketplace targeting Connect platforms that onboard custom/express accounts.

Connected account (marketplace seller) onboarding:




Specific Stripe API integration:

// Create connected account with 1Kosmos verification metadata
const account = await stripe.accounts.create({
  type: 'custom',
  country: 'US',
  capabilities: { card_payments: { requested: true } },
  metadata: {
    blockid_verification_required: 'true',
    blockid_ial_required: '2',
    blockid_liveid_enroll: 'true'
  }
});

// After BlockID Verify completes, update person with verified data
await stripe.accounts.createPerson(account.id, {
  first_name: blockIDResult.firstName,
  last_name: blockIDResult.lastName,
  dob: { day: d, month: m, year: y },
  id_number: blockIDResult.governmentIdLast4,
  verification: {
    document: {
      front: await uploadDocumentToStripe(blockIDResult.documentFrontBase64)
    }
  }
});
// Create connected account with 1Kosmos verification metadata
const account = await stripe.accounts.create({
  type: 'custom',
  country: 'US',
  capabilities: { card_payments: { requested: true } },
  metadata: {
    blockid_verification_required: 'true',
    blockid_ial_required: '2',
    blockid_liveid_enroll: 'true'
  }
});

// After BlockID Verify completes, update person with verified data
await stripe.accounts.createPerson(account.id, {
  first_name: blockIDResult.firstName,
  last_name: blockIDResult.lastName,
  dob: { day: d, month: m, year: y },
  id_number: blockIDResult.governmentIdLast4,
  verification: {
    document: {
      front: await uploadDocumentToStripe(blockIDResult.documentFrontBase64)
    }
  }
});
// Create connected account with 1Kosmos verification metadata
const account = await stripe.accounts.create({
  type: 'custom',
  country: 'US',
  capabilities: { card_payments: { requested: true } },
  metadata: {
    blockid_verification_required: 'true',
    blockid_ial_required: '2',
    blockid_liveid_enroll: 'true'
  }
});

// After BlockID Verify completes, update person with verified data
await stripe.accounts.createPerson(account.id, {
  first_name: blockIDResult.firstName,
  last_name: blockIDResult.lastName,
  dob: { day: d, month: m, year: y },
  id_number: blockIDResult.governmentIdLast4,
  verification: {
    document: {
      front: await uploadDocumentToStripe(blockIDResult.documentFrontBase64)
    }
  }
});

Payment Intent step-up for high-risk transactions:

// Radar rule triggers 3DS-equivalent step-up using LiveID
const paymentIntent = await stripe.paymentIntents.create({
  amount: 150000,
  currency: 'usd',
  metadata: {
    blockid_stepup_required: 'true',
    blockid_customer_id: customerId
  }
});

// Stripe webhook: payment_intent.requires_action
// 1Kosmos intercepts and issues LiveID biometric challenge
// FIDO2 assertion result stored in payment_intent metadata before capture
// Radar rule triggers 3DS-equivalent step-up using LiveID
const paymentIntent = await stripe.paymentIntents.create({
  amount: 150000,
  currency: 'usd',
  metadata: {
    blockid_stepup_required: 'true',
    blockid_customer_id: customerId
  }
});

// Stripe webhook: payment_intent.requires_action
// 1Kosmos intercepts and issues LiveID biometric challenge
// FIDO2 assertion result stored in payment_intent metadata before capture
// Radar rule triggers 3DS-equivalent step-up using LiveID
const paymentIntent = await stripe.paymentIntents.create({
  amount: 150000,
  currency: 'usd',
  metadata: {
    blockid_stepup_required: 'true',
    blockid_customer_id: customerId
  }
});

// Stripe webhook: payment_intent.requires_action
// 1Kosmos intercepts and issues LiveID biometric challenge
// FIDO2 assertion result stored in payment_intent metadata before capture

Stripe webhook subscriptions:

  • account.updated

  • person.created

  • payment_intent.created

  • payment_intent.requires_action

  • radar.early_fraud_warning.created


Transform how you verify and authenticate

Secure onboarding, eliminate passwords, and stop fraud on one platform. Schedule a demo and see it in action.

Transform how you verify and authenticate

Secure onboarding, eliminate passwords, and stop fraud on one platform. Schedule a demo and see it in action.

Transform how you verify and authenticate

Secure onboarding, eliminate passwords, and stop fraud on one platform. Schedule a demo and see it in action.