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.
Returns the rendered consent text for your merchant, its `version`, whether consent is
required, and the disclosure links. Show the cardholder `text.rendered`, then send
`text.version` as `consentTextVersion` when you record the consent with a token create.
The platform keeps the exact text with the consent, and the consent read returns it.
Signed in, you can send this request to your own sandbox merchant from the console
and read the answer.
Sign in to try it.
Example request
Each example below is one request, shown in every language. Choose an example and a language, then replace {{BASE_URL}} with the address of the API you are calling and {{API_KEY}} with your own key.
The request body is a GetConsentConfigInput. See the Request body section below for its fields.
Parameters
Name
In
Type
Description
suppressNullsrequired
query
boolean
If true, omit properties with null 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.
Filter for which `StoredCredentialUsage` scopes to render bullets for. When
null or `None`, all permitted scopes render; the
caller is expected to be rendering a generic consent page. 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.
merchantNamerequired
string
Merchant name to substitute into `{{MerchantName}}`. Optional. When unset, the
service falls back to the authenticated merchant's display name.
Conditional: When MerchantName is not null. Max length: 200.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.
Which payment instrument the consent applies to. Selects the card vs ACH sibling
template and the matching tokenization-protection wording. Defaults to
`Card`.
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.
Card
Card credentials. Renders ConsentTemplateNames.Consent (the default).
Ach
Bank account (ACH). Renders ConsentTemplateNames.AchConsent.
convenienceFeeDisclosurerequired
string
Free-text description of a convenience fee the cardholder will be charged on every charge under
this authorization (e.g. "$2.50 per payment"). Substituted into Section 3 of the rendered text;
when null or blank, the fee line does not render at all.
Conditional: When ConvenienceFeeDisclosure is not null. Max length: 500.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.
cardPriceDisclosurerequired
string
Free-text statement of the card price charged to a card on every charge under this
authorization, for a merchant that posts a cash price and a card price (e.g. "$104.00 per
payment, against a cash price of $100.00"). Substituted into Section 3 of the rendered text;
when null or blank, the card price line does not render at all. Card consents only.
Conditional: When CardPriceDisclosure is not null. Max length: 500.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.
surchargeDisclosurerequired
string
Statement of the surcharge ceiling a recurring or installment charge to a card may carry (e.g.
"up to 3 percent of each payment, added to the amount above when a credit card is charged").
Substituted into Section 3 of the rendered text; when null or blank, the surcharge line does not
render at all. Card consents only.
Conditional: When SurchargeDisclosure is not null. Max length: 500.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.
This request body has no documented fields.
Responses
The consent text and its version.
Body:
ConsentConfigDtoConsentConfigDtoEach item has these fields.
Field
Type
Description
isConsentRequiredrequired
boolean
True when the authenticated merchant's scope has consent capture enforced. A transaction
that tokenizes/persists a card without a `StoredCredentialConsentInput` will be
rejected with `stored_credential_consent_required`.
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.
The usage scopes the merchant's configuration permits. Matches the flags that can
legitimately appear on captured consents for this merchant; consumers render only the
matching checkboxes / bullets. 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.
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.
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 of ConsentTextConfigDto:
Field
Type
Description
versionrequired
string
Version hash of the rendered template. Clients persist this and submit it back on the
transaction so WinkPG records exactly what the cardholder saw.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.
renderedrequired
string
Fully-rendered, substituted consent text with merchant variables applied. No
`{{Variable}}` markers should remain in well-configured merchants; any that do are
surfaced via `missingVariables` for diagnosis.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.
localerequired
string
Locale of the rendered text. Single-locale (en-US) for v1.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.
lastUpdatedAtrequired
string (date-time)
Reserved. Always `1970-01-01T00:00:00Z` today; `version` is the identity of the
text.
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.
missingVariablesrequired
array of stringarray of
Reserved for the names of template variables that had no value at render time. Always empty
today.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.
Merchant-configured disclosure URLs referenced from the consent text.
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 of ConsentDisclosuresDto:
Field
Type
Description
termsUrlrequired
string
Merchant's terms of service URL. Empty when not configured.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.
privacyUrlrequired
string
Merchant's privacy policy URL. Empty when not configured.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.
This body has no documented fields.
This response has no documented body fields.
The request was refused because a rate limit was exceeded, or because something a later retry can clear stopped it. A rate limit refusal carries an `application/problem+json` body: wait at least the interval `Retry-After` names before retrying, then back off. Limits are tuned per deployment, so read the allowance from the response headers rather than assuming a fixed ceiling. Any other refusal carries the standard error envelope as `application/json`, and its `error.code` names the cause.
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 response has no documented body fields.
400Bad RequestBad request. The request was malformed or failed validation. When validation rejected it, `error.validationErrors` names each member at fault and why.
401UnauthorizedUnauthorized. The request carried no API key or signed-in session, or the key it carried is invalid, revoked or expired.
403ForbiddenForbidden. The API key lacks the scope this operation needs, the signed-in user lacks the permission, or a business rule refused the request. The error code in the body names the reason.
404Not FoundNot found. The resource the request names does not exist or is not visible to the caller: a resource that belongs to a merchant or tenant outside the caller's scope is reported as not found.
500Internal Server ErrorInternal server error. The platform failed unexpectedly while handling the request. If it keeps failing, contact support and quote the correlation id, which the response carries in the `X-Correlation-Id` header and as `error.data.correlationId`.
501Not ImplementedNot implemented. The operation is declared but has no implementation on this deployment, so no request to it can succeed. Retrying does not help.
defaultThe request failed. The body carries the standard error envelope: a machine-readable `error.code`, a human-readable `error.message`, and `error.validationErrors` when the failure was a validation rejection. The error reference lists the values `error.code` can take.The request failed. The body carries the standard error envelope: a machine-readable `error.code`, a human-readable `error.message`, and `error.validationErrors` when the failure was a validation rejection. The error reference lists the values `error.code` can take.