Sharing Rules

Paying an invoice online requires the Account object to be Public Read/Write. This would allow the invoice to be made available on Force.com Sites. If you need to setup Salesforce Communities, it requires that you set sharing settings of Account to Private, which would then conflict with the required setting above. To get around the issue you need to create a sharing rule that will allow online payment users Read/Write access to Account. To do that, please follow the steps below:

  1. Create a Group. Go to Setup | Manage Users | Public Groups. Create a group and add the Site Guest User in the group. A sample screenshot is shown below:
  2. Create an Account Sharing Rule. Go to Setup | Security Controls | Sharing Settings. Under Account Sharing Rules related list, click New. Create a rule that shares account records to the group created in the previous step. See sample rule below:
  3. If you have set Contact to Private, you also need to create a Contact Sharing Rule. Under Contact Sharing Rules, click New. Create a rule that shares contact records to the group created in the previous step. See sample rule below: Screen Shot 2013-09-12 at 8.08.31 PM

That should be it. That should allow online payment even if you have to set sharing settings for Account to private.

If you are using the Pay Now widget in a custom object and requesting online payment, you may also need to ensure that a sharing rule is created for your custom object.