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.

Salesforce Field Mapping
ForgeSF ObjectSF Field
Fee recordbt_stripe__Fee__cType (flat / percentage), Amount / Rate
Payment gatewaybt_stripe__Payment_Gateway__cProvider (Stripe / Authorize.net / Spreedly today; TouchNet / CashNet coming soon)
Invoice / Orderbt_stripe__Sales_Document__cStatus, Total, Gateway
Transactionbt_stripe__Transaction__cAmount, 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.
Salesforce Field Mapping
ForgeSF ObjectSF Field
Discount codebt_stripe__Code__cName, 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.