Stripe is a payment service provider that business owners can use to accept dozens of payment methods from credit cards to buy now, pay later services. Stripe also provides a way for your business to bill customers with subscriptions or invoices. It supports both recurring payments invoice generation and one time payment invoice generation.
RevRec seamlessly integrates with Stripe, all you have to do is go through the sync interface and configure the connection flows.
If you are using Stripe to send invoices to customers, RevRec can be used to pull invoice data from Stripe.
Only users with Admin role can connect your RevRec site with Stripe.
You can connect your RevRec site directly to Stripe. Follow these steps to integrate the two systems:
After logging in to your RevRec site, navigate to the right environment in which you are integrating Stripe.
Click Sync > Connect to other systems icon.
On the Connect your data pop-up, select Invoices > Stripe.
On the Configure Stripe screen, specify the following connection parameters:
Stripe Client Secret: Login to your Stripe account and then click on the Developers. Go to the API Keys tab and click Reveal Key to see the Secret Key. This will be used as Stripe Client Secret for establishing connection.
Stripe Account ID: Login to your Stripe account and go to this path: Settings > Account Details. You will see the account id mentioned on the top right corner of the Account Settings grid.
Invoice Equals Contract: Enable this setting if each invoice corresponds to a contract. Use this setting to pick invoice data from Stripe and create sales order records based on that data.
Use Customer Id Mapping: Enable this setting to map records based on the Customer ID field. You can use this setting to map the invoice data from Stripe using the customer's id with sales order data pulled from CRM.
Use Product Id Mapping: Enable this setting to map records based on the Product ID field. You can use this setting to map the invoice data from Stripe using the product id with sales order data pulled from CRM.
Date Format: This field can be used along with the Invoice Equals Contract setting. You can select a particular date format from the drop-down list available for this field. RevRec will pick the data for the Service Start Date and Service End Date fields for sales orders based on the date format selected. RevRec looks for these dates in the Memo field of Invoices or Credit Memos created in Stripe. This field will only be used for invoices and their related credit memos which are not linked to any subscription in Stripe.
Exclude Products: This field is used to define item records for which invoice data needs to be ignored while pulling data from Stripe. You can define a single item or multiple items to be excluded.
Value for this field needs to be given in any of the below mentioned JSON formats:
TimeZone: This field is used to define the timezone set for the Stripe account. This needs to be provided if the timezone set for your Stripe account is different from UTC.
Currency: This field is used to map currency in which data needs to be picked and processed in RevRec.
Custom Fields: Custom fields to be copied from Stripe. The value of this property should be a valid JSON with the following format:
Customer ID Mapping Custom Field: This field is used to provide the name of the custom field that will be used to pick Customer Id value from Stripe and link it with the Customer Id generated in the CRM.
Product ID Mapping Custom Field: This field is used to provide the name of the custom field that will be used to pick Product Id value from Stripe and link it with the Product Id generated in the CRM.
Advanced Connection Settings: This field is used to provide additional advanced configuration properties that can be used to pull data from Stripe for specific use cases.
Note: Contact Implementation team to avail this feature.
Once you are done, click Connect your data to establish the connection between Stripe and RevRec.
Upon establishing a successful connection with Stripe, you will see a success message displayed as follows:
After establishing the link as described in the previous section, click Stripe.
In the Quick Actions tab, click Edit schedule to schedule an automated data sync from Stripe to RevRec in your preferred frequency. The invoice flow is executed automatically based on the schedule to sync data from Stripe.
Click the Run job option to execute the invoice flow that picks data from Stripe on-demand.
When you execute the invoice flow, you will see a job created on the Sync UI page in the Recent Jobs tab.
If you have not set any accounting period yet, click the Download file icon to download the file and upload it manually using the Import Data in Bulk option.
If you have already scheduled the automated sync, any jobs getting created will load the data automatically and you don't have to load the data manually. You can still download the data file created for a specific job by clicking the Download file icon.
If you are using the Use Customer ID Mapping setting, the downloaded excel file will contain the following tabs.
The downloaded excel file if you are using the Invoice Equals Contract setting will contain the below tabs:
RevRec supports the below use cases for pulling data related to Products, Subscriptions, Invoices and Credit Notes from Stripe when the Invoice Equals Contract flag is selected:
Product Plan
Stripe supports two types of product pricing plans:
RevRec uses below logics to pick the product records from Stripe:
One-Time Invoices
Stripe allows users to create one off invoice which are not linked to any subscription. RevRec will pick the data for the one-time invoices and create a sales order and billing schedule record for each invoice.
The following logics are used:
Subscription Based Invoices
Stripe allows users to create subscriptions for different product plans. RevRec will pick the data for the invoices linked to these subscriptions and create a sales order and billing schedule record for each invoice.
The following logics are used:
Subscription Modification In Stripe
Stripe allows users to modify the existing subscriptions by either upgrading / downgrading plans or adjusting the quantities.
Whatever the case for modification is, Stripe applies a Proration logic to adjust the new invoice generated for modifications in subscription.
RevRec will pick the prorated adjustments from new invoices and create a credit note record for those against the original contract. Assumption in this case is to consider the reason for all such credit notes as Order Change.
Credit Note Treatment
RevRec provides the following default accounting treatments based on the credit note reason codes in Stripe.
Reason Code
RevRec Default Treatment
The credit note is retrospectively applied - from the order's service start date to the service end date and offsets the revenue stream of the original invoice. Further, the cumulative impact is recognized in the open accounting period.
Reason Code
RevRec Default Treatment
The credit note is retrospectively applied - from the order's service start date to the service end date and offsets the revenue stream of the original invoice. Further, the cumulative impact is recognized in the open accounting period.
Reason Code
RevRec Default Treatment
This is the case where the customer changes to a different subscription plan in the midst of an existing subscription contract. A credit note is issued on a prorated basis to refund the unused portion of the original plan. RevRec will stop the revenue recognition of the original plan and generate a new revenue schedule for the new plan going forward.
Advanced Configuration
In addition to the above default treatment, you can use the advanced configuration to customize the recognition treatment applied to certain credit note reason codes based on your specific requirements. Please contact your RevRec support team to enable and use the advanced configuration.
Reason Code
For all the above reason codes, you can customize the default treatment and opt to:
RevRec supports pulling Sales Order data from CRM and Invoice data from Stripe. For this purpose, users need to select the Use Customer ID Mapping flag while configuring Stripe with RevRec.
After selecting the flag as true, the user also needs to provide the custom field name they will be using to map the customers between CRM and Stripe. The name of this custom field needs to be provided in the connection parameter field Customer ID Mapping Custom field.
In Stripe users can use the Meta Data field available on the Customer Details page for each customer.
Click the Edit button, a pop-up window will open.
Define the value for field Key. This value will be used to define the custom field name to establish a link between the CRM and Stripe Customer records.
For example, if the user defines the value for Key (in Stripe MetaData) as HS_Cus_Id, then the same name should be provided in the connection parameter field of Customer ID Mapping Custom Field
Stripe
RevRec
The value to be provided in the Meta Data custom field created in Stripe should be the ID field value of the same customer name present in the CRM.
For example, if we have a customer name as Jane Smith in CRM having id as cus_NPPJKzE9wCmDpH, then the same id should be set as value for the Meta Data field against customer name Jane Smith in Stripe.
In case the values do not match for the customer id of the CRM record and the Meta Data value in Stripe, then all related invoices and credit notes for that customer will go in Pending Data. Once the user fixes the data discrepancy, then RevRec will create relevant Billing Schedule records for that customers invoices and credit notes records and Pending Data records will automatically be removed for that customer.
RevRec supports matching the Billing Schedule records pulled from Stripe to be matched with the Order Details records pulled from CRM based on the Product Name and Product Code. For this purpose, users need to select the Use Product ID Mapping flag while configuring Stripe with RevRec.
This flag can only be used if the user has selected the flag Use Customer ID Mapping.
After selecting the flag as true, the user also needs to provide the custom field name they will be using to map the products between CRM and Stripe. The name of this custom field needs to be provided in the connection parameter field Product ID Mapping Custom field.
In Stripe users can use the Meta Data field available on the Product Details page for each product.
Click the Edit MetaData button to define the custom field name and its value.
Define the value for field Key. This value will be used to define the custom field name to establish link between the CRM and Stripe Product records.
For example, if the user defines the value for Key (in Stripe MetaData) as HS_SKU, then the same name should be provided in the connection parameter field of Product ID Mapping Custom Field.
Stripe
RevRec
The value to be provided in the Meta Data custom field created in Stripe should be the Product Code/SKU field value of the same product name present in the CRM.
For example, if we have a product name as Internet Subscription Premium in CRM having SKU as PR_1_Premium, then the same id should be set as value for the Meta Data field against product name Internet Subscription Premium in Stripe.
In case the values do not match for the Product SKU of the CRM record and the Meta Data value in Stripe, then all related invoices and credit notes having that product will go in Pending Data. Once the user fixes the data discrepancy, then RevRec will create relevant Billing Schedule records for that product's invoices and credit notes records and prior created Pending Data records will automatically be removed.
RevRec supports matching the Billing Schedule records pulled from Stripe to be matched with the Order Details records pulled from CRM based on the Order Number field. For this purpose, users need to provide a property in the Advanced Connection Settings field.
The property needs to be defined in below JSON format:
{"order_number":"custom field name"}
In above JSON, custom field name will be the value defined as the Key for Meta Data field.
This advanced property can only be used if the user has selected both the flags i.e. Use Customer ID Mapping and Use Product ID Mapping.
In Stripe you can use the Meta Data field available on the Subscription Details page for each Subscription.
Click Edit MetaData button to define the custom field name and its value.
Define the value for field Key. This value will be used to define the custom field name to establish link between the CRM and Stripe Product records.
For example, if the user defines the value for Key (in Stripe MetaData) as HS_SKU, then the same name should be provided in the connection parameter field of Product ID Mapping Custom Field.
Stripe
RevRec
The value to be provided in the Meta Data custom field created in Stripe should be the Deal ID/Opportunity ID value of the Deal/Opportunity created in the CRM for the Customer.
For example, if we have a Deal/Opportunity created in CRM for Customer Name Azeem Naeem having Deal/Opportunity Id as 13216516981 then, value for the Meta Data field against Subscription created in Stripe for Azeem Naeem (having same product as used in CRM Deal/Opportunity) should also be set as 13216516981.
In case the values do not match for the Deal/Opportunity ID of the CRM record and the Meta Data value in Stripe, then all related invoices and credit notes belonging to that Customer and Product will go in Pending Data. Once the user fixes the data discrepancy, then RevRec will create relevant Billing Schedule records for that subscription's invoices and credit notes records and prior created Pending Data records will automatically be removed.
Stripe allows users to create one off invoice which are not linked to any subscription. RevRec will pick the data for the one-time invoices and create a sales order and billing schedule record for each invoice even if Use Customer ID Mapping and Use Product ID Mapping flags are selected.
The following logics are used:
Service Start Date and Service End Date for these invoices will be picked from description (Memo field in Stripe)
Different date formats are supported in which the user can provide the data in the Memo field of Invoices / Credit Notes in Stripe. Users can select the specific date format from the drop-down list available in the connection parameters field of Date Format.
Invoices marked as Draft or Deleted won't be picked.
If the users also want the One-Time Invoices to be linked to contracts in the CRM system, they can provide a property in the Advanced Connection Settings field in addition to the property order_number.
The property needs to be defined in below JSON format:
{"link_one_time_invoice_to_order":true}
This advanced property can only be used if the user has selected both the flags i.e. Use Customer ID Mapping and Use Product ID Mapping and have also defined the property {"order_number":"custom field name"} in the advanced connection settings.
In Stripe users can use the Meta Data field available on the Invoice Details page for each One-Time Invoice.
Users will have to use the same custom field name that they have provided for linking the Subscriptions based invoices.