Skip to Content

Form and response screens

What the customer sees in the form, and on the default success, issue, and expiry screens.

The payment form

For card sessions, the Hosted Payment Form collects:

  • Cardholder name
  • Card number, expiration date, and security code
  • Billing address details

The form is responsive and works on mobile, tablet, and desktop devices.

Hosted Payment Form with cardholder name, card fields, and a full billing address

The card payment form in full billing mode.

How much billing information appears is controlled by formConfig.billingInfoCaptureLevel.

ACH bank transfers

For ACH sale and tokenization sessions, the form shows a Personal Account / Business Account toggle above the name fields. Personal Account is selected by default and collects first, optional middle, and last name. Selecting Business Account replaces those fields with a required Business Name field.

Both choices collect the routing number, account number, Checking or Savings account type, and full US billing address. See Personal and business accounts for name requirements and selection behavior. The same controls appear in the Payment SDK.

Default success and issue screens

When no returnUrl is provided and the useJavaScriptCallback flag is not used, customers will see success or issue screens that provide immediate visual feedback about their transaction status.

Payment success screen

Success screen shown after completed payment.

Payment issue screen

Issue screen shown when payment problems occur.

Session expiry screen

An expired or invalid payment session can show an error screen such as this one:

Session error screen

An error screen for an unavailable session.

Sessions expire 10 minutes after creation, at expirationTimestamp. An invalid or expired session can show an error page or produce an error callback, depending on when it is detected. See Best practices.

Taking control of the completion experience

These default screens are the fallback. To keep the customer inside your own flow, supply a returnUrl, use useJavaScriptCallback, or both - see Flow completion.

Questions about your integration? Contact support@doura.ca.