consentRequired
required |
boolean
|
Whether the cardholder <b>must</b> tick the stored-credential consent box before the payment
can be submitted.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
consentPromptShown
required |
boolean
|
Whether the public page renders the stored-credential consent prompt for this session, i.e.
whether the session declared any credential-storage intent. When `false`, consent plays
no part in the flow and `consentRequired` is `false`.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
requestedCredentialStorage
required |
StoredCredentialUsage
StoredCredentialUsage |
The stored-credential usage scopes the cardholder is being asked to consent to, after
server-side defaulting and purpose forcing: a tokenizing session that declared no scope
resolves to `UnscheduledCOF`, and a Save Card with Initial
Charge session always has `Recurring` unioned in on top of
whatever the request asked for. `null` means no credential storage was requested. Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
None |
No permitted uses. Consent record is effectively inactive. | Recurring |
Scheduled recurring charges (subscriptions, membership dues). Maps to Recurring. | Installment |
Fixed-schedule installment plans dividing a known total. Maps to Installment. | UnscheduledCOF |
Merchant-triggered charges for pre-agreed events (balance top-ups, usage overages, no-show fees, delayed charges). Maps to several MIT reason codes including UnscheduledCOF, NoShow, DelayedCharge, and IncrementalAuth. | OneTimeFuture |
A single known future cardholder-initiated purchase the credential was saved for (e.g. "save card for my next order"). Not used for MITs. |
|
pagePurpose
required |
HppPagePurpose
HppPagePurpose |
The page purpose this session actually runs, after applying the request's optional
`pagePurpose` override over the targeted page's own configured purpose. A page with no
configured purpose resolves to `Payment`.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Payment |
The default, historical behavior: a chargeable payment page. null resolves here, so every pre-existing HPP instance keeps behaving exactly as before. | SaveCard |
A card-capture page: the cardholder's card is validated via a zero-dollar account verification (authorize $0 + AVS/CVV, immediate void), then vaulted with stored-credential consent. No charge is taken. Amount-bearing configuration (tax, shipping, convenience fee, invoice amounts, donations, tip) is irrelevant and is hidden in the builder / rejected by the validator. Requires the merchant's processor to advertise SupportsZeroDollarVerification. | SaveCardWithInitialCharge |
A card-capture page that also charges the first of a recurring schedule. The cardholder's card is charged a real initial sale (the first payment of a referenced reusable recurring plan, framed as the customer-initiated transaction that establishes the credential-on-file agreement), vaulted with Recurring stored-credential consent, and a customer Contract is created for the remaining payments. Like SaveCard, the amount-bearing builder configuration (tax, shipping, convenience, invoice, donations, tip, customer-set amount) is hidden: the charged amount is driven entirely by the inlined recurring definition, not by per-page amount fields. Requires a complete inlined recurring definition (RecurringPlan). |
|
tokenizeOnPayment
required |
boolean
|
Whether the cardholder's payment method will be vaulted as a reusable token. This is the
effective decision after the merchant's tokenize-by-default setting is applied and after the
targeted page's tokenization toggle (`SupportTokenization` / `SavePaymentDetails`)
has had its say. A request that asked for `tokenizeOnPayment: true` against a page whose
merchant disabled tokenization reports `false` here: that is the veto, which previously
only appeared in a server-side log line. Always `true` for a card-capture purpose, which
exists to store the credential.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
saveCardOnly
required |
boolean
|
Whether this session stores the payment method with no charge at all. `true` for a
resolved `SaveCard` purpose or an explicit `saveCardOnly`
request on a Payment page. Deliberately `false` for
`SaveCardWithInitialCharge`, which takes a real initial charge, so
a request that sent `saveCardOnly: true` against that purpose reports `false` here.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
captureMode
required |
HppCaptureMode
HppCaptureMode |
Capture timing for the chargeable Payment flow: `Sale` authorizes
and captures in one step, `Authorize` authorizes now for a later
capture. Resolved from the request's optional override over the page's configured value.
Reported as `Sale` for a card-capture purpose, where capture
timing is not an axis: those purposes set their own transaction shape.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Sale |
Authorize and capture funds in a single step (the historical, default behavior). null resolves here, so every pre-existing chargeable page keeps doing an implicit Sale. | Authorize |
Authorize now, capture later (delayed capture). The resulting transaction is an Authorization in an Authorized state, eligible for capture and void per the action matrix; the capture is completed later against the resulting transaction id via the existing capture action path (including the Apple Pay single-use token case). |
|
amountMode
required |
HppSessionAmountMode
HppSessionAmountMode |
How the cardholder may set the amount. `CustomerEntered`
leaves the page's own amount behaviour in charge; `Suggested`
pre-fills an editable amount; `Locked` pre-fills a read-only
amount that the server verifies on submit.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
CustomerEntered |
The default, historical behavior: the session specifies no amount and the cardholder types it on the page. null (legacy sessions) resolves here. | Suggested |
The session specifies an amount (via the prefilled base_amount) that pre-fills the page, but the cardholder may edit it (e.g. a suggested donation). | Locked |
The session specifies an amount (via the prefilled base_amount) that the cardholder cannot change (e.g. paying an invoice). The amount renders read-only but visible, and the server verifies on submit that the charged base amount matches the session's specified amount. |
|
taxAmountMode
required |
HppSessionAmountMode
HppSessionAmountMode |
The mode the tax line runs under. This is the resolved value: a request that omitted
`taxAmountMode` reports the effective `amountMode` here, because that is what
the tax follows. `Locked` means the server charges the
session's `tax` prefill whatever the payer submits.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
CustomerEntered |
The default, historical behavior: the session specifies no amount and the cardholder types it on the page. null (legacy sessions) resolves here. | Suggested |
The session specifies an amount (via the prefilled base_amount) that pre-fills the page, but the cardholder may edit it (e.g. a suggested donation). | Locked |
The session specifies an amount (via the prefilled base_amount) that the cardholder cannot change (e.g. paying an invoice). The amount renders read-only but visible, and the server verifies on submit that the charged base amount matches the session's specified amount. |
|
shippingAmountMode
required |
HppSessionAmountMode
HppSessionAmountMode |
The mode the shipping amount runs under, resolved the same way as `taxAmountMode`.
`Locked` means the server charges the session's
`shipping` prefill, ahead of any flat shipping rate the page configures.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
CustomerEntered |
The default, historical behavior: the session specifies no amount and the cardholder types it on the page. null (legacy sessions) resolves here. | Suggested |
The session specifies an amount (via the prefilled base_amount) that pre-fills the page, but the cardholder may edit it (e.g. a suggested donation). | Locked |
The session specifies an amount (via the prefilled base_amount) that the cardholder cannot change (e.g. paying an invoice). The amount renders read-only but visible, and the server verifies on submit that the charged base amount matches the session's specified amount. |
|
lockShippingAddress
required |
boolean
|
Whether this session shows its prefilled shipping address display-only and records that
address on the transaction whatever the payer submits.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
customerEmailVisibility
required |
HppFieldVisibility
HppFieldVisibility |
The per-session visibility of the payer-facing customer-email field, as it was accepted and
stored. `null` means the session did not override it and the page's own
`FieldCustomerEmail` applies.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
declineRetryMode
required |
HppDeclineRetryMode
HppDeclineRetryMode |
What this session does with its payment link when a payment is declined, as resolved from
the per-session override, the hosted page and the tenant default when the session was
created.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ConsumeOnDecline |
The historical behavior, and the default at every level of the resolution chain. Any processor answer spends the link permanently: the session stays Consumed and a payer who reloads it is told the link has already been used. | ReleaseOnDecline |
A definite issuer decline hands the link back to Pending so the payer can correct their card and resubmit on the same URL, instead of having to ask the merchant for a new link. |
|
linkLifetime
required |
HppLinkLifetime
HppLinkLifetime |
The link lifetime the session was actually minted with, read off the created session rather
than off the request. `Session` is what a request that named no
lifetime resolves to.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Session |
The historical short single-use checkout session: 60 to 900 seconds, defaulting to 600, and still subject to the tenant's own min/max/default TTL settings. What every caller that does not name a lifetime gets. | Extended |
A long-lived link, bounded by ExtendedMinTtlSeconds and ExtendedMaxTtlSeconds (1 hour to 90 days), for a link that is emailed or texted and paid later. The upper bound is capped by the tenant's HostedPaymentPageSettings.SessionMaxExtendedTtlSeconds setting. | Permanent |
A link that never expires on its own. The session carries no expiry instant and no document time-to-live; it stops being payable only when it is paid, cancelled, or revoked. Requesting an expiry in seconds alongside this is rejected rather than ignored. |
|
remainingDeclineReleases
required |
integer (int32)
|
How many further times this link may be reopened after a declined payment. Always zero when
`declineRetryMode` is `ConsumeOnDecline`, and it
counts down as a payer spends attempts.
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
currency
required |
string
|
The ISO 4217 currency this session is denominated in, upper-cased. A request that named one
gets it back verbatim, having been checked against the merchant's configured currency; a
request that named none gets the merchant's currency, which is the defaulting this block
exists to report. `null` only when the merchant has no currency configured at all, which
is the state every session predating this field is in.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
customerId
required |
string (uuid)
|
The customer this session is bound to, echoed from the request's `customerId` after it
was validated to exist, be active, and belong to the page's merchant. `null` for an
unbound session, where the cardholder's email is the only customer-resolution anchor.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
prefilledFieldKeys
required |
array of string
array of |
The prefilled field keys stored on the session, in no particular order. Values are never
echoed. Compare against what was sent to confirm every key was accepted, and note that the
server may add one: deriving a locked amount from a fixed-amount page stamps
`base_amount` even when the request supplied none.
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|
ignoredPrefillKeys
required |
array of string
array of |
The subset of `prefilledFieldKeys` that the hosted page will silently ignore
when it renders: keys that are neither a well-known field nor an enabled, page-visible
merchant custom field. They are accepted and persisted rather than rejected, for backward
compatibility, so this list is the only signal that a key will have no effect (usually a
typo, or a custom field that is disabled or hidden for hosted pages).
nullable
Values:
Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
|