View as Markdown

llms.txt

The API reference isn't available right now

This instance couldn't load its API specification. The reference returns as soon as the specification is readable again.

Back to the API reference

No such model

This instance publishes no model under that name. It may have been renamed, or no operation this installation serves uses it.

Back to the API reference

This reference may be out of date

This instance couldn't reach its API specification on the last attempt, so this page shows the copy fetched before that. Anything added or changed since then is missing here, and the reference updates itself as soon as the specification is readable again. Last fetched 2026-11-12 05:58 UTC.

API reference Models

DualPricingSettings

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

A merchant's dual pricing program: a cash price and a higher card price posted before the payer chooses how to pay, the card price being the cash price plus `rate` of it or, in `Fixed` mode, plus `fixedAmount`. Stored on the merchant aggregate as a nullable owned reference, and carried on the merchant create, update and read contracts.

Values

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.

Fields

Field Type Description
enabled required boolean The per-merchant program switch. Null reads as off. Changing it requires the `Merchants.DualPricing.Enable` permission, which the merchant's own users do not hold. 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.
mode required DualPricingMode DualPricingMode How the card price is derived from the cash price: a percentage rate, or a fixed amount. Null reads as `Percentage` (`GetMode`), so a configuration written before the fixed-amount mode existed keeps pricing exactly as it did. 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.
Percentage The card price is the cash price plus rate times the composed base. The reading of a configuration that names no mode.
Fixed The card price is the cash price plus fixedAmount, the same amount on every payment the card price applies to, whatever its size.
rate required number (double) The card price uplift, stored as a fraction of the cash price (`0.04` is 4 percent). Read through `DualPricingRate`, the one place the fraction and the percent an operator types are converted, so the editor and the validator never disagree about what a value means. nullablegreater than 0max 0.10
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.
fixedAmount required number (double) The card price uplift in `Fixed` mode, in the merchant's currency (`2.50` adds 2.50 to every payment the card price applies to). Read only in that mode; the percentage mode reads `rate` alone. Bounded above by the platform ceiling `Merchants.DualPricing.MaxFixedAmount` (`DualPricingLimits`). nullablegreater than 0max 100.00
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.
includesShipping required boolean Whether the rate also applies to the shipping amount. Null reads as no: by default the card price uplift is computed on the cash price alone. A fixed amount does not depend on the base, so in `Fixed` mode the election is not read (`RateIncludesShipping`). 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.
treatAchAsCash required boolean Whether a bank (ACH) payment is charged the cash price. Null reads as yes. Only `true` is accepted at save: what a bank payment is charged when the merchant does not treat it as cash is an open product and legal decision, so the platform implements no outcome for it and refuses the election rather than guessing one. 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.
channels required DualPricingChannels DualPricingChannels The channels the program applies to. Null reads as none, so the runtime applies the card price on no channel until at least one is chosen. Only `Supported` members are accepted at save. 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 channel.
VirtualTerminal The merchant-operated Virtual Terminal.
HostedPaymentPage The Hosted Payment Page, both forms, and the payment links that open it.
Api Direct API integrations.
DigitalWallet Digital wallet payments on the channels above.
Invoicing Invoices: the invoice document states both prices, and an automatic charge of the balance and a payment link for the balance or a deposit are charged the card price. A partial payment (an installment or a payment link amount the payer chooses) is charged the cash price.
RecurringBilling Recurring charges, from any source: a scheduled charge of a recurring contract, a merchant-initiated recurring or installment charge, a Hosted Payment Page enrollment's first payment, and a repeat or retry of any of these. A card is charged the card price only when the cardholder's stored-credential consent stated it, and never at a rate above the one the consent stated.
SplitTender Split-tender legs: each payment of a split tender is priced on its own share of the order, a card charged the card price for its share and a cash or bank payment the cash price, while the group balance is kept in cash-price terms. A leg is still priced on the channel it arrived on (the Virtual Terminal or the API), so the merchant names that channel too.
Terminal Card-present sales: a card read at a point of sale (a swipe, a chip read or a tap, or a declared card-present cardholder), whichever source submitted it. The payer saw the merchant's own signage, so naming this channel needs the merchant's attestation that both prices are posted at every card-present point of sale (terminalSignageAttested).
bothPricesPostedAttested required boolean The merchant's attestation that both prices are posted wherever it takes payment outside the platform's own surfaces (signage, menus, a card-present counter). Required before the program can be switched on. 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.
bothPricesPostedAttestedAt required string (date-time) When `bothPricesPostedAttested` was set. Server-owned: stamped by the merchant app service on the save that sets the attestation, carried forward unchanged after that, and cleared with it. nullableread only
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.
bothPricesPostedAttestedBy required string Who set `bothPricesPostedAttested`. Server-owned on the same terms as `bothPricesPostedAttestedAt`. nullableread only
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.
terminalSignageAttested required boolean The merchant's attestation that both prices are posted at every card-present point of sale: the counter signage a payer reads before handing over a card at a terminal, which no platform surface renders. Required to name `Terminal`, whatever the program switch, and read again by the decider, so a card-present sale is never charged the card price without it. Null reads as not attested. 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.
terminalSignageAttestedAt required string (date-time) When `terminalSignageAttested` was set. Server-owned on the same terms as `bothPricesPostedAttestedAt`. nullableread only
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.
terminalSignageAttestedBy required string Who set `terminalSignageAttested`. Server-owned on the same terms as `bothPricesPostedAttestedAt`. nullableread only
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.
displayCopyTemplate required string The merchant-editable price panel sentence. It must carry `{cashPrice}`, `{cardPrice}` and the mode's own token (`{rate}` in percentage mode, `{amount}` in fixed-amount mode) and no other brace-delimited placeholder (see `DualPricingDisplayCopy`). Null, or blank, means the platform default copy for the mode. Conditional: When IsConfigured(DisplayCopyTemplate) is true. nullablemax length 1000
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.
configurationVersion required integer (int32) A counter bumped on every save that changes this configuration, so a decision recorded against a transaction can name the configuration it was computed under. Server-owned. nullableread only
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.
enabledChangedAt required string (date-time) When `enabled` last changed. Server-owned. nullableread only
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.
enabledChangedBy required string Who last changed `enabled`. Server-owned. nullableread only
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.

This model has no documented fields.

Reconnecting to the server

Could not reconnect

This session has ended

Attempt 1

Your work on this page is still here. Retrying keeps it; reloading starts the page again.

The server no longer holds this page's state, so it has to be loaded again.