Tag Archive for: Refunds

From: Sravya Yellapragada – Unlocking Payments Processing in Revenue Cloud Billing

Salesforce Revenue Cloud Billing ( a.k.a RCB)  offers robust functionality to manage your entire revenue lifecycle, and a critical component of that is integrated payments processing. While the setup and core features are detailed in the official Salesforce help documentation (see: https://help.salesforce.com/s/articleView?id=ind.billing_payments.htm&type=5 ), 

Revenue Cloud Billing Offers payments processing with the help of Payments platform .  With two different platforms merging to support payments processing it might often seem complicated for our customers to understand how everything works – starting from setup till execution. This blog post will dive into how customers can strategically leverage this functionality to streamline operations, enhance customer experience, and accelerate cash flow.

Let’s start with a sample customer use case to understand payment processing better – Smart Bytes is a company which sells Software , Hardware and Consumption based products to its customers. They have recently subscribed to Revenue Cloud Billing to manage their billing needs. They wanted a billing system which can collect payments automatically on time so that their account receivables are intact. They knew RCB was a perfect fit as

  1. It helps them bill any transaction
  2. Process payments automatically

The first step towards efficiently processing payments is to have a gateway connection established within revenue cloud billing.Below diagram pictorially represents how payments are processed and how RCB leverages payment gateways to enable the same for customers 

1. Gateway Support within Revenue Cloud Billing 

Revenue Cloud Billing is designed to be payment gateway agnostic, allowing you to connect to various providers.

This flexibility ensures that as your business scales or enters new markets, you can adapt your payment strategy without a massive re-implementation effort. 

Below are the two ways in  : 

  • Native Gateways a.k.a Salesforce Payments – with logos Stripe & Adyen ( only BYO Supported)
  • Third Party Gateways – Any gateway / Any logo of their choice 

Let’s take a look at a couple of scenarios to understand how customers with different merchant accounts can use revenue cloud billing to process payments 

Scenario 1 : Smart Bytes has recently onboarded with RCB and Stripe/ Adyen  as the payment gateway

Since this is a new merchant account with Stripe. SmartBytes can connect with merchant accounts from within RCB and turn on payments processing . Refer help doc link below for more details on how to configure a merchant account within salesforce – https://help.salesforce.com/s/articleView?id=ind.billing_setup_payments_merchant_accounts.htm&type=5

With Adyen Smart Bytes can only bring existing merchant account and configure within salesforce as Merchant Account

Scenario 2 : Smart Bytes has merchant account with a vendor other than Stripe OR Adyen – Third Party Gateway Vendor

If customers have a contract with any other payment gateway other than Stripe/ Adyen they can connect with the concerned merchant account as a third party gateway within revenue cloud billing 

The prerequisite for connecting with a third party vendor is to have an app ( of the vendor) hosted on app exchange package . Sample here – https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FMhSsUAL

If the appexchange package is not readily available , the expectation from customers is to work with the gateway vendor/partner and get the managed package hosted on appexchange OR they can have adapter classes designed and connect via Apex classes from within the org. So that it is readily available for download in an RCB org to connect for payments processing . 

Once the app exchange package is available . Refer this link to understand how to connect with a third party gateway – https://help.salesforce.com/s/articleView?id=ind.billing_setup_third_party_payments.htm&type=5

Note : Revenue Cloud Billing does not consider any vendor as preferred partner . When choosing a new provider, simply verify its compatibility and follow the setup instructions provided in the official documentation.

In addition to above , if customers do not want to connect via adapter class/ app exchange connector. They can choose to- 

  1. Import Payments processed on the gateway end and create a payment record within salesforce .

Also to kick start their journey with existing vendors they can leverage our “Import token feature “ to import existing tokens and start saving new ones with the gateway vendor henceforth.

Scenario 3 : Smart Bytes has an existing merchant account with Stripe/Adyen

If the merchant account is with Adyen then SmartBytes can use the BYO ( Bring your Own ) account . However customers will have to subscribe to “Prime Commerce” in order to get the existing account. Contact your AE for more information. 

If SmartBytes has an existing account with Stripe then they cannot yet ( as on Jan 2026) bring the existing Stripe account and connect from RCB . However they can still utilize RCB to its full potential by following one of the routes below :  

  • Keep processing payments with Stripe by leveraging Stripe payments, batch processing , payment links etc and bring in the processed payments as a payment record within salesforce ( with mode as external and status as processed) . More to be described in further sections of the blog 
  • Bring in externally saved tokens into salesforce as saved payment method records and use the tokens to process payments within salesforce ( more to be described in further sections of the blog )
  • Bring in Stripe as a third party payment gateway , talk to stripe for an app exchange package/ connector  as described above and connect with the gateway as a third party vendor

2. Save Payment Methods 

Now that you have a gateway connection established, what is the next step ? 

The next step would be to have a “Save Payment Method” record created / available in salesforce which in turn can be used to process payments with the help of payment APIs. 

All the payment APIs accept a saved payment method as an Input hence it is necessary to have SPM records created

How to create a saved payment method record ? Let me describe that for you , please note that the outcome of each of the actions is to have a saved payment method record created

Recommendation 1 : Leverage Payment APIs to save a payment method against gateways ( native / third party)  

https://developer.salesforce.com/docs/commerce/salesforce-commerce/references/comm-ccs-payments-ref?meta=tokenizePaymentMethod

Recommendation 2 : Save a Payment method against account using the MOTO Component within RCB org . This is accessible to an internal user of the customer who can save the payment method on behalf of the buyer . Currently users can save Credit Card and ACH Payment methods via this component . This is currently available for only Native merchant accounts ( customers cannot save payment methods against third party gateways using this component) . Also this component is available on LAB page for customers to drag and drop to an UI of their choice . 

Recommendation 3 : Customers can import already saved tokens into salesforce by doing an sObject insert of SavedPaymentMethod entity . Let’s understand this better with an example 

Smartbytes has an existing merchant account with Cybersource ( lets say) . They have been conducting business for quite some time. Hence SmartBytes already has saved / tokenized payment methods of their customers  with cybersource .Now SmartBytes wants to start billing with RCB.

In order to ensure continuity of their business they need to ensure that the saved tokens are usable by RCB too. Hence it is essential to bring those saved tokens into salesforce ecosystem.

SmartBytes’ internal user ( Payments Operations user) can copy the tokens from their merchant account and import into RCB as saved payment method records. Customers have a choice to bulk import or import some of their choice . Refer documentation for more details. 

Once the tokens are saved as SPM records these can be used for processing payments within RCB – via Batch processing engine , Individual payment APIs, Billing Portal, etc.,.

Recommendation 4 : Customers can also save payment methods against their account leveraging our self-service billing portal . Refer this section for more information.

3. Different ways you can process payments with RCB 

Flexible Payment Options

The integrated platform allows customers to easily manage their payments processing with their  preferred payment methods.

FeatureDescription Customer BenefitSystem Leverage
Batch Processing Customers schedule a batch run to process payments in bulk No manual intervention and automatic settlement of Invoices Revenue Cloud creates Payment Schedules & Schedule Items to process payments in bulk by batching the requests 
Self-Service PortalsUsers can login against their account , select an Invoice & process the payments with already saved payment methods/ save a payment methodCustomers can choose when to pay and to which Invoice to pay for. Easily access the Invoices and pay with few clicksLink the Billing Account to a Customer Community or self-service interface
Process Payments through APIsInvoke Sale , Auth or Capture API with Saved Payment Method to process payments Build custom integrations, flows as per their business need Salesforce Workflows, Invocable Actions, Easy UI setup , Support for any gateway

Bring in Externally Processed Payments 

Apart from what you saw above , you can also bring in externally processed payments by importing them into the salesforce ecosystem. You can manually create a payment record with processing mode as “External” or bulk import the payments leveraging the payments sObject API . Refer link below for more details : 

https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_payment.htm

https://help.salesforce.com/s/articleView?id=commerce.om_payment_objects.htm&type=5

4. Processing Refunds with RCB 

Now that you have successfully setup gateway → saved the payment methods → Processed payment with these saved payment methods the next step customers would want any billing product to support is to be able to issue Refunds 

With Salesforce Revenue Cloud it is easy to issue refunds ( We are making it further easy for you 😉 ) . Customers can use refunds API to process a refund against a payment record  . Refer the link below for details on the API 

https://developer.salesforce.com/docs/commerce/salesforce-commerce/references/comm-ccs-payments-ref?meta=createPaymentRefund

Customers can pass the payment ID and issue refund to the source or desired payment method and customers can also process partial refunds , meaning if Payment collected was for $100 customers can process a refund for $20 alone . 

The processed refund can be applied to the payment to ensure that the payment balance is reflected appropriately. Think of it this way , you collected a $100 payment of which you refunded $20 . But your payment record still reflects $100 available which is wrong! Hence you would want to apply the issued refund to the payment record so that the payment balance is $80 which would be the actual balance available for utilization. And the cherry on the top is – our Refund API works with externally processed payments too. 

In addition to the above, we are often asked whether customers can refund a Credit Memo issued : 

The way customers can issue a refund against a Credit Memo posted is by creating a manual payment record worth the credit memo → Issue Refund against this payment record created → To close the process they can void the credit memo 

5. Application of the Payment to Invoice and Unapplying the Payment from an Invoice 

How do you tell your billing system that the revenue is realized? By utilizing the payment record available to settle the Invoice thus indicating the system that the Invoice is paid for . As you have noticed above , we do that automatically via our batch processing engine. However if you are not leveraging batch processing then you have access to our awesome APIs to apply a payment record to an Invoice in order to reduce the Invoice balance or unapply ( an unusual word , I know !) the payment from an Invoice – meaning undo the application of payment to an Invoice. 

Refer the APIs below for more information : 

https://developer.salesforce.com/docs/atlas.en-us.256.0.revenue_lifecycle_management_dev_guide.meta/revenue_lifecycle_management_dev_guide/connect_resources_payment_line_apply.htm

https://developer.salesforce.com/docs/atlas.en-us.256.0.revenue_lifecycle_management_dev_guide.meta/revenue_lifecycle_management_dev_guide/connect_resources_payment_line_unapply.htm

 6. PayNow Links with RCB 

You can send payment links to your users , clicking which they can make a payment . This payment record can be linked to the account and used to settle the Invoice . Customers can enter the payment method details from which they would want the payment amount to be debited and process the payment. Using Payment intent customers can link the payment link to an Invoice before sending to the buyer indicating the system that the payment is processed against the selected Invoice 

Refer below link for more details on PayNow links : 

https://help.salesforce.com/s/articleView?id=commerce.pay_now_payment_link_overview.htm&type=5

 7. Self-Service Billing Portal 

Powered by our self-service portal/ experience cloud billing portal our customer’s customer a.k.a buyer can login to their account and view associated Invoices, process payments, raise disputes and also save payment methods against their accounts among many other things. Billing portal currently supports saving of payment method , processing of payments via Native gateways / Salesforce Payments 

Customers can spin up a billing portal for their business and do their own branding for the portal . Refer this help link for setup –https://help.salesforce.com/s/articleView?id=ind.billing_self_service_portal.htm&type=5

Billing Portal empowers the buyers/external users to : 

Save a Payment Method : 

Buyers can login to their portal and select an Invoice for settling , while paying the Invoice buyers have a choice to either pay with an already saved card or save a new card/ a new payment method . 

This payment method gets saved against the buyer account .

Buyers can access all the saved payment methods against the account via the portal for settling the Invoice 

Process/ Settle Invoices 

Buyers will be displayed a list of all Invoices with available balance against the account. Buyer can select an Invoice and click on “Pay” which will re-direct them to a screen to select a payment method / use a new payment method to process the payment against Invoice and settle automatically. 

Third- Party Support via Portal 

Customers can request their gateway vendor for components compatible with our billing portal and add the components to the portal to manage payments processing , saving payment methods with the the help of third party gateways. 

 8. Payments in Trial Orgs

Customers need to explicitly get payments enabled in their trial orgs by requesting salesforce admin/SE

9. If you do not want to use automated payments processing with RCB 

Customers can turn of “Automatically generate PS and PSI upon Invoice posting” org pref and can 

  1. Process payments manually via our APIs OR
  2. Import externally processed payments and use our Apply APIs to settle Invoices.

Appendix 

Link for Processing Payments and Issuing Refunds : 

https://help.salesforce.com/s/articleView?id=ind.billing_payments_apis.htm&type=5