Skip to main content

Direct Charge

What is direct charge?

Direct Charge is a payment method where the end user pays for the campaign during the checkout process with their credit card (or US Bank Account when enabled for USD currency). Direct Charge requires a wallet to be created as explained in End User Payments and user needs to enter their billing details in the Billing Portal.

How does it compare to Wallet Balance and Purchase Order?

It can be summarized as:

  • Wallet Balance
    • User can add balance in any amount (not less than the campaign total price)
    • User can reuse balance in subsequent campaign orders
    • User can add balance before, during or after campaign checkout
  • Direct Charge
    • User pays for the campaign total price, not less, not more
    • User pays during the campaign checkout
  • Purchase Order
    • User pays after the campaign checkout

As an ATS, how can we start using direct charge?

Direct Charge is not enabled by default for all ATSs. The ATS needs to talk with VONQ Partner Account Manager to get it enabled so their end users can start using it.

info

For an end user to use the direct charge, the user needs to enter their billing information such as name, email, billing address & tax number before being able to order.

note

On our testing environments such as Acceptance and Sandbox, money related transactions such as "topping-up a wallet" are done using test credit card and the invoices are not sent when to the end user.

Caveats to know when using direct charge

Direct Charge requires a wallet to be created as explained in End User Payments and user needs to enter their billing details in the Billing Portal.

Invoicing

After user enters their billing information in the Billing Information & Invoice History portal of Stripe, they are eligible to enter their payment details. After they fill their payment details and submit the form to Stripe, an invoice will be created and sent to the email that they specified in their billing information.

Wallet creation & using a shared/non-shared wallet

When HAPI Elements is loaded, a wallet is created for the end user if it has not already been created before. Subsequent loads of HAPI Elements will use the wallet that has been previously created. In tenant based applications, depending on how you are passing the clientId, the wallet will be shared amongst all users. Refer to Understanding what clientId refers to section for more information.

Ordering with direct charge

Purchasing a campaign with wallet balance requires at least one paid product meaning that the end user needs at least one "product" (not contract) added to their basket to purchase with wallet. If the end user has basket comprised of "only contracts", the basket total will be 0$ thus the backend order endpoint will throw an error saying "at least one paid product is required". To circumvent this, Payment Method step is hidden automatically by HAPI Elements and ATS Managed Payment Method is enforced automatically.

Ordering a campaign with only "contracts" in the basket with wallet

HAPI Elements, when end user has "all contracts" in their basket, will automatically fall back to using "ATS Managed" option and end user will not see the "Payment Method" step of the Order Journey and the ATS developer will not be able to override the paymentMethod parameter of the CampaignCreateForm object.

orderCampaign.onSuccess callback event has some caveats relating to direct charge

Please refer to the Listening to order campaign success event recipe to learn more.

How can we track direct charge payments?

Please refer to Listening to Payment Success Event recipe to learn more.

How can we programmatically manage payment method for a user

Refer to Payment Methods Configuration for enabling/disabling some payment methods based on your business requirements.


Please refer to Using Direct Charge Payment Method recipe for more information on how to use "direct charge" payment method programmatically.