--- title: "Set Up and Configure Authorize.net Webhooks" slug: "set-up-authorize-net-webhooks" updated: 2026-08-11T21:18:04Z published: 2026-08-11T21:18:04Z canonical: "docs.blackthorn.io/set-up-authorize-net-webhooks" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.blackthorn.io/llms.txt > Use this file to discover all available pages before exploring further. # Set Up and Configure Authorize.net Webhooks Once you are connected to Authorize.net, it’s time to configure webhooks. What does a webhook do? It automatically sends specific data from Authorize.net to Salesforce. If you have created a Customer Profile in Authorize.net, webhooks can update Salesforce and add the new Payment Gateway Customer and Payment Method records. ## Prerequisites You must have Salesforce administrator access and Authorize.net access to complete the following instructions. Due to a limited number of available fields in Authorize.net, the Payment Profile information in Authorize.net is used to populate the following Salesforce records. - Payment Method - Payment Gateway Customer - Example: Payment Profile Name from Authorize.net = Payment Gateway Customer **Name**. ## Create a Force.com Domain 1. Go to Setup. 2. In the Quick Find box, enter “Sites and Domains.” 3. Click “Sites.” 4. Enter a value for your Force.com domain. 5. Click **Check Availability**. 6. Review and accept the Site terms of use. 7. Click **Register My Force.com Domain**. ## Configure Your Site 1. Go to Setup. 2. In the Quick Find box, enter “Sites and Domains.” 3. Click “Sites.” 4. Click **New**. ![Create New Site](https://cdn.document360.io/f977eec0-500f-40a3-b663-724a51f78075/Images/Documentation/Create%20a%20New%20Site_Click%20New.png) 5. Enter a **Site Label**, **Site Name**, and a **Default Web Address**. (We suggest using "webhook" or "stripe" for the **Site Label** and **Site Name**.) 6. Set **Active** = "TRUE" (checked). 7. For the **Active Site Home Page** field, click the **Lookup icon** and select "InMaintenance". (The page is not visible. It's just a placeholder because a value is required). 8. Click **Save**. ## Assign the Site Guest User Permission Set 1. Navigate back to the Site you created. 2. Click **Public Access Settings**. ![](https://cdn.document360.io/f977eec0-500f-40a3-b663-724a51f78075/Images/Documentation/H_02_21_assign%20site%20guest%20user%20per%201.png) 3. Click the **View Users** or **Assign Users** button. 4. Click the link for the site guest user. ![](https://cdn.document360.io/f977eec0-500f-40a3-b663-724a51f78075/Images/Documentation/H_02_21_assign%20site%20guest%20user%20per%202.png) 5. Add the Blackthorn | Payments (Site Guest User) permission set to this user's record. ![Assign Payments Site Guest User PS](https://cdn.document360.io/f977eec0-500f-40a3-b663-724a51f78075/Images/Documentation/Webhook%20Configuration_Add%20BT%20Guest%20User%20PS.png) 6. Click **Save**. ![](https://cdn.document360.io/f977eec0-500f-40a3-b663-724a51f78075/Images/Documentation/H_02_21_assign%20site%20guest%20user%20per%203.png) ## Configure Webhooks in Authorize.net In this section, you will gather the different components that will make up the URL before adding it to Authorize.net. The URL will have the following format: [https://SITE_DOMAIN_NAME/SITE_PATH/services/apexrest/bt_stripe/webhook/WEBHOOK_LABEL](https://SITE_DOMAIN_NAME/SITE_PATH/services/apexrest/bt_stripe/webhook/WEBHOOK_LABEL) - **SITE_DOMAIN_NAME** = The Salesforce **Domain Name** for the Site you set up - **SITE_PATH** = The **Path** for the Site - **WEBHOOK_LABEL** = The value in the Payment Gateway **Webhook Label** field - “services/apexrest/bt_stripe/webhook” remains the same ### Create a Salesforce Webhook Site URL 1. Go to Setup. 2. In the Quick Find box, enter “Sites and Domains.” 3. Click “Sites.” 4. Locate the site you just created and click the URL. 5. Copy the URL. 6. Replace “SITE_DOMAIN_NAME/SITE_PATH” with the copied URL. 7. Leave “services/apexrest/bt_stripe/webhook” as is. 8. Open the related Payment Gateway record. 9. Copy the value in the **Webhook Label** field. 10. Replace “WEBHOOK_LABEL” with the copied value from the **Webhook Label** field. 11. To verify that the new URL works, open a new browser tab and paste the URL. You will see the following message. ![](https://cdn.document360.io/f977eec0-500f-40a3-b663-724a51f78075/Images/Documentation/Stripe_Webhook%20Configuration_URL%20is%20working%20message.png) ### Configure the URL in Authorize.net 1. Go to your connected Authorize.net account dashboard. 2. Click the Account tab. 3. Click Settings. 4. Click Webhooks. ![H_02_21_configure webhook authdot 1](https://cdn.document360.io/f977eec0-500f-40a3-b663-724a51f78075/Images/Documentation/H_02_21_configure%20webhook%20authdot%201.png) 5. Click **Add endpoint**. ![H_02_21_configure webhook authdot 2](https://cdn.document360.io/f977eec0-500f-40a3-b663-724a51f78075/Images/Documentation/H_02_21_configure%20webhook%20authdot%202.png) 6. Define a **Name**. 7. In the **Endpoint URL** field, enter the Salesforce webhook Site URL you created. 8. Set **Status** = "Active". 9. Under Select Events, check "All Events." 10. Click **Save**. If you have multiple Authorize.net accounts connected to your Salesforce org and want to create a Webhook Endpoint for each in Authorize.net, you can use the same Salesforce Site. Change the WEBHOOK_LABEL part of the URL to the Webhook Label value on the Payment Gateway record you want to use. ## Hold ACH eCheck Pending on Webhook (optional) By default, an incoming `net.authorize.payment.authcapture.created` webhook marks an Authorize.net eCheck (ACH) transaction **Completed** as soon as it is received. If you rely on the **Pending** status to gate downstream workflows, you can keep ACH transactions in Pending until settlement is confirmed. To do this, enable the **Hold ACH eCheck Pending on Webhook** field on the Payment Gateway record: | Property | Value | | --- | --- | | Field label | Hold ACH eCheck Pending on Webhook | | API name | `bt_stripe__Hold_ACH_Pending__c` | | Object | Payment Gateway (`bt_stripe__Payment_Gateway__c`) | | Type | Checkbox | | Default | Unchecked (off) | When **checked** on an Authorize.net gateway, an incoming `net.authorize.payment.authcapture.created` webhook for an eCheck (ACH) transaction will **not** overwrite an existing **Pending** status — the transaction stays Pending until a settlement webhook confirms the final outcome. This setting affects webhook processing only; it has **no** impact on direct charges, credit card transactions, or other gateway flows. If the field is not on your page layout, add it via **Setup → Object Manager → Payment Gateway → Page Layouts**, or set it through the API/data loader. Leaving it unchecked preserves the current behavior.