Core Concepts
Money Concepts
Forge handles the payment lifecycle for paid events — ticket pricing, discount codes, fees, and payment capture — end to end for Stripe, Authorize.net, and Spreedly gateways; some flows (like refunds) are more manual on CashNet/TouchNet once those ship. All financial records live in Salesforce; Forge never stores card numbers or payment instrument data.
Ticket pricing
Each ticket (conference360__Event_Item__c) has a Price field. If the Free checkbox is checked, no payment is collected regardless of the price value. Multiple ticket tiers can coexist in one event — for example: Free GA, $25 Early Bird, $50 Standard, $249 VIP, $399 Premium, $799 Speaker, $1499 Sponsor.
Fees
A Fee is an additional charge applied at checkout — typically used to pass payment processing costs to registrants (e.g., a 3% + $0.30 credit card fee) or to add a service charge. Fees are configured as bt_stripe__Fee__c records and can be set at the org level (Admin > Fees) or overridden per event.
| Forge | SF Object | SF Field |
|---|---|---|
| Fee record | bt_stripe__Fee__c | Type (flat / percentage), Amount / Rate |
| Payment gateway | bt_stripe__Payment_Gateway__c | Provider (Stripe / Authorize.net / Spreedly today; TouchNet / CashNet coming soon) |
| Invoice / Order | bt_stripe__Sales_Document__c | Status, Total, Gateway |
| Transaction | bt_stripe__Transaction__c | Amount, Status (Completed / Refunded), Gateway |
Discount codes and promo codes
Discount codes reduce the ticket price during checkout. You can create them in the Tickets & Items tab > Discount Codes.
- Flat discount — reduces the price by a fixed amount (e.g., $25 off).
- Percentage discount — reduces the price by a percentage (e.g., 20% off).
- Max uses — limit the number of times a code can be redeemed.
- Eligibility — restrict codes to specific ticket types.
| Forge | SF Object | SF Field |
|---|---|---|
| Discount code | bt_stripe__Code__c | Name, bt_stripe__Discount_Type__c, bt_stripe__Discount_Amount__c, bt_stripe__Max_Uses__c |
Payment gateways
Forge supports Stripe, Authorize.net, and other providers via Spreedly (e.g. PayFlow Pro) today; TouchNet and CashNet are listed in Admin > Payment Gateways as coming soon, with no connectable backend yet. Gateways are configured in Admin > Payment Gateways and stored as bt_stripe__Payment_Gateway__c records. You can have multiple gateways configured and assign a specific gateway per event.
Card data never touches Forge or Salesforce
Payment card numbers, CVVs, and bank account details are handled exclusively by the payment gateway (e.g., Stripe's iframe / Stripe.js). Forge and Salesforce never see, transmit, or store raw card data. Transaction records in Salesforce contain only the charge amount, status, and a gateway reference ID.
Recurrence billing
Recurring payments (for donations or membership-style tickets) run on Blackthorn's own recurring engine (bt_stripe__Payment_Schedule__c records) rather than the gateway's native subscription billing — Forge never uses Stripe Subscriptions or Stripe Billing. Setting up a payment schedule for a given ticket/program is a Salesforce-side configuration step today, not a Forge admin toggle.
Refunds
To refund an attendee, open their record in the Attendees tab, expand the Transactions section, and click "Refund" on the relevant transaction. Forge sends the refund request to the payment gateway and updates the bt_stripe__Transaction__c payment status to Refunded or Partially Refunded. Refunding is straightforward for Stripe, Authorize.net, and Spreedly; it does not automatically create an invoice line item, remove the attendee, or reverse other Salesforce automations tied to the transaction — check your org's invoice and attendee-status handling if you need those to follow a refund.