Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
Versioning
Changelog
Upgrade your API version
Upgrade your SDK version
Developer tools
SDKs
API
Testing
Workbench
Event Destinations
Workflows
Stripe CLI
Stripe Shell
Developers Dashboard
Agent toolkit
Stripe health alertsBuild with LLMsStripe for Visual Studio CodeFile uploads
Security
Security
Extend Stripe
Stripe Apps
Stripe Connectors
    Overview
    Integrate a connector
    Commercetools
    Adobe Commerce
    Mirakl
    NetSuite
    Oracle Opera
    Cegid
    PrestaShop
    Salesforce
      Stripe Connector for Salesforce Platform
        Installation
        Configure events
        Enablement
          Enablement videos
          AgnosticInvocable code
          Class Invocables code
        Configuration
      Stripe Billing for Salesforce CPQ
      Salesforce B2C Commerce
    SAP
    Shopware 6
    Stripe Tax for WooCommerce
    Stripe Tax for BigCommerce
    Partner connectors
    Build your own connector
Partners
Partner ecosystem
Partner certification
HomeDeveloper toolsStripe ConnectorsSalesforceStripe Connector for Salesforce PlatformEnablement

Stripe Connector for Salesforce Platform AgnosticInvocable Example

Copy page

This guide hands you actionable code examples, showing you step-by-step how to create Stripe customers and payment intents directly within Salesforce. If you’re a Salesforce administrator, a developer, or simply someone aiming to link Stripe and Salesforce for smooth data flow and transaction handling, you’ve come to the right place.

The examples here leverage custom Apex classes to enable generic, agnostic calls to Stripe’s RESTful API. These examples come in handy if you aim to establish a layer of abstraction between your Salesforce platform and the Stripe API, making your system more flexible and easier to manage.

Create a Customer in Stripe

The following code example creates a Stripe Customer with a name, email, and metadata set.

// Step 1: Create an instance of the stripeGC.RawInvocableParameters class. This class is used to set the parameters for the Stripe API call. stripeGC.RawInvocableParameters parameters = new stripeGC.RawInvocableParameters(); // Step 2: Set the HTTP method to 'POST' as you are creating a new customer. parameters.method = 'POST'; // Step 3: Set the endpoint to '/v1/customers'. This is the Stripe API endpoint for creating a new customer. parameters.endpoint = '/v1/customers'; //Step 4: Set the Stripe Account ID from Salesforce and set it to the accountId field of the parameters object. parameters.accountId = 'a028B0000029RhlQAE'; //Step 5: Set the request body with the customer details. List<String> postCustomerParameters = new List<String>{ 'email=' + 'customerEmail@example.com', 'name=' + 'Tim Smith', 'metadata[AccountId]=' + 'abc123' }; parameters.requestBody = String.join(postCustomerParameters, '&'); //Step 6: Add the parameters object to a list and call the callStripeEndpoint method of the stripeGC.AgnosticInvocable class. List<stripeGC.RawInvocableParameters> paramsCollection = new List<stripeGC.RawInvocableParameters>{ parameters }; List<String> results = stripeGC.AgnosticInvocable.callStripeEndpoint(paramsCollection); //Step 7: The callStripeEndpoint method will return a list of strings. If the customer was created successfully, the first string in the list will be the ID of the new customer. System.debug(results[0]);

Create a PaymentIntent

This code example creates a paymentIntent in Stripe.

public class stripePayment { @AuraEnabled(cacheable=true) public static String paymentIntent(String StripeAccountID, String amount, String stripecurrency, String orderID, String onBehalfOf, String customerId) { // Create Call for invocable stripeGC.RawInvocableParameters parameters = new stripeGC.RawInvocableParameters(); // Add HTTP Method parameters.method = 'POST'; // Add endpoint parameters.endpoint = '/v1/payment_intents'; // Get the Stripe Account ID from Salesforce // This assumes you already have the Stripe Account ID and will pass it in as a parameter // Alternately, you could use a SOQL query to obtain the Stripe Account ID as per previous examples parameters.accountId = StripeAccountID; parameters.connectAccount = onBehalfOf; // Prepare the request body List<String> postPaymentIntentParameters = new List<String>{ 'amount=' + amount, // Pass in the amount to be charged for this payment intent in the minimum currency unit (for example, cents for USD) 'currency=' + stripecurrency, // Pass in the currency for this payment intent (for example, 'usd' for USD) 'customer=' + customerId, // Pass in customer to payment intent 'automatic_payment_methods[enabled]=true', //Turning on automatic payment methods 'metadata[order_id]=' + orderID }; parameters.requestBody = String.join(postPaymentIntentParameters, '&'); List<stripeGC.RawInvocableParameters> paramsCollection = new List<stripeGC.RawInvocableParameters>{ parameters }; List<String> results = stripeGC.AgnosticInvocable.callStripeEndpoint(paramsCollection); return (results != null && results.size() > 0) ? results[0] : null; } }

See also

  • Installation guide
  • Enablement videos
  • Configure events
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc