Overview

Violet Payments handles your platform’s complete payment lifecycle through your Stripe account, including:

  • Payment processing and shopper charges
  • Commission and fee calculations
  • Fund transfers and payouts
  • Refund processing and transfer reversals

When you integrate Violet Payments, you get automatic generation of:

  • Distribution records
  • Payouts and payout summaries
  • Reconciliation data exports for accounting

Security and Privacy

Violet securely stores all credentials in HashiCorp Cloud Platform Vault, a industry-standard solution for managing sensitive data. Only authorized Violet services can access these encrypted keys. For more information, visit HashiCorp Cloud Platform Vault, here.

Integration Steps

Configure Your Stripe Account

  1. Create a Stripe account if you don’t have one
  2. Enable Stripe Connect on your account
  1. Locate your Stripe Account ID in Account Settings (this ID works for both Test and Live modes)
  2. Store the accountId in a secure location.

Generate Stripe Restricted Keys

Stripe Restricted Keys

Stripe restricted keys are API credentials with limited permissions that you’ll generate for both test and live modes. These keys can be created through either:

  • The Stripe Dashboard API keys page
  • The Stripe CLI

Each restricted key requires two permission sets:

  1. Platform Account permissions for webhook processing
  2. Stripe Connect permissions for merchant account creation

You’ll need to generate and securely store these keys before sharing them with Violet through our encrypted channel.

Test Mode Keys

  1. Go to the Stripe API Keys Dashboard
  2. Enable Test mode
  3. Note your Publishable Key from the “Standard Keys” section
  4. Create a restricted key named violet-test with required scopes at https://dashboard.stripe.com/test/apikeys/create
  5. Store the key securely

Live Mode Keys

  1. Return to the Stripe API Keys Dashboard
  2. Disable Test mode
  3. Note your Publishable Key from the “Standard Keys” section
  4. Create a restricted key named violet-live with required scopes at https://dashboard.stripe.com/apikeys/create
  5. Store the key securely

Configure Stripe OAuth

OAuth enables merchants to connect their existing Stripe Standard accounts for payouts instead of creating new Stripe Express accounts. Violet uses Stripe Client keys to authenticate merchant accounts through OAuth 2.0 to let merchants connect their existing Stripe Standard accounts for payouts. This requires Stripe Client keys, which are separate from the restricted API keys.

With OAuth authentication:

  • Merchants can use their existing Stripe Standard accounts
  • No need to create new Stripe Express accounts
  • Violet securely connects merchant accounts to your platform

Test Mode OAuth Setup

  1. Go to https://dashboard.stripe.com/test/settings/connect/onboarding-options/oauth

  2. Toggle “on” the setting that says “Enable OAuth”

  3. Copy the “Test Mode Client ID” in a secure location

  4. Click on “Add URI” to add the following Redirect URIs.

    https://connect.violet.dev/payments/oauth/complete
    https://merchant.violet.dev/settings/payouts
    https://channel.violet.io/settings/payouts
    

Live Mode OAuth Setup

  1. Go to https://dashboard.stripe.com/settings/connect/onboarding-options/oauth or turn off “Test” mode from the toggle in the right hand corner of the screen.

  2. Toggle “on” the setting that says “Enable OAuth”

  3. Copy the “Live Mode Client ID” in a secure location

  4. Click on “Add URI” to add the following Redirect URIs.

    https://connect.violet.io/payments/oauth/complete
    https://merchant.violet.io/settings/payouts
    https://channel.violet.io/settings/payouts
    

Share Stripe Keys with Violet

  • Visit the Violet Credentials Encryptor
  • Enter your stored Stripe credentials
  • Click “Encrypt”
  • Share the encrypted payload with Violet via Slack or DevRev
  • Repeat for both Test and Live mode credentials

Verification

Test Merchant Onboarding

  1. Onboard a test merchant through the Sandbox Mode Violet Connect URL
  2. Verify the merchant’s payout account appears in your Stripe Connect dashboard

To test the connection, onboard a test Merchant through the Sandbox Mode Violet Connect URL and then navigate to https://dashboard.stripe.com/test/connect/accounts/overview. The payout account created for the new Merchant should be visible in the Stripe Account that was connected to Violet.

Test Checkout Flow

To test Checkout against your Stripe account, you can create and submit an Order in Test Mode as described here.

The Order object will have a PaymentTransaction on it, which includes a payment_provider_transcation_id. This is the ID of the Payment Intent in Stripe. You can navigate to this payment intent by doing the following:

  1. Copy the payment intent ID and navigate to https://dashboard.stripe.com/test/payments.
  2. Paste the payment_intent_id in the search bar. Hit Enter.
  3. Stripe dashboards should automatically take you to the succeeded payment intent.

Alternatively, you can paste the Violet Order ID in Stripe’s search bar and hit enter. Violet attaches metadata to the transaction in Stripe, so you should be able to see any associated payment intents and transfers when searching by Order ID.