Surcharging: Releases the promotion hold, so the next activation sweep promotes the merchant if the waiting period has elapsed.
DELETE
/api/surcharging/configurations/{merchantId}/promotion-hold
deprecated
Requires: Surcharging.PromotionHold.Manage, merchant scope.
No fresh notice is required and the period is not extended. Idempotent: releasing an unheld configuration succeeds and changes nothing.
Example request
Every block below sends the same request. Replace {{BASE_URL}} with the address of the API you are calling and {{API_KEY}} with your own key.
The request body is a . See the Request body section below for its fields.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
merchantId
required |
path | string (uuid) | |
suppressNulls
required |
query | boolean | If true, omit properties with null values. |
Request body
application/json
, required
| Field | Type | Description |
|---|
This request body has no documented fields.
Responses
200 OK
Body: SurchargeConfigurationDto
Each item has these fields.
| Field | Type | Description |
|---|---|---|
id
required |
string (uuid) | |
creationTime
required |
string (date-time) | The date and time when this entity was created. |
creatorId
required |
string (uuid) | The ID of the user who created this entity. nullable |
lastModificationTime
required |
string (date-time) | The date and time when this entity was last modified. nullable |
lastModifierId
required |
string (uuid) | The ID of the user who last modified this entity. nullable |
isDeleted
required |
boolean | Indicates whether this entity has been deleted. |
deleterId
required |
string (uuid) | The ID of the user who deleted this entity, if it is deleted. nullable |
deletionTime
required |
string (date-time) | The date and time when this entity was deleted, if it is deleted. nullable |
merchantId
required |
string (uuid) | The merchant this configuration belongs to. |
tenantId
required |
string (uuid) | Owning tenant (null in the host tenant). nullable |
isEnabled
required |
boolean | Whether surcharging is currently enabled for the merchant. nullable |
status
required |
all of SurchargeConfigurationStatus | Persisted lifecycle status of the configuration. nullable |
waitingPeriodExpiresAt
required |
string (date-time) | The instant surcharging becomes permitted, i.e. when the mandatory notice waiting period elapses. Surcharging is blocked until this is in the past. nullable |
noticeFiledAt
required |
string (date-time) | When the most recent notice was recorded in WinkPG. nullable |
noticeFiledBy
required |
string | The user who filed the most recent notice. nullable |
noticeAttestedDate
required |
string (date-time) | The calendar date the merchant attested they filed the most recent notice with the card networks, when that predates `noticeFiledAt`. Null when the notice was filed as of the record date, and on every notice recorded before this fact existed. nullable |
defaultRate
required |
number (double) | Default surcharge rate (decimal fraction) when no network override applies. nullable |
channelRestrictions
required |
all of SurchargeChannelFlags | The channels surcharging applies to. 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 |
processorAccountId
required |
string | The processor account under which the current notice / waiting period was established. nullable |
disclosureCopyTemplate
required |
string | The merchant's own surcharge disclosure copy in the `SurchargeDisclosureCopy` token grammar, or null when the platform default copy applies. nullable |
attestedCostOfAcceptanceRate
required |
number (double) | The merchant's attested effective cost of acceptance (decimal fraction), a hard ceiling. nullable |
costOfAcceptanceAttestedAt
required |
string (date-time) | When the cost-of-acceptance rate was attested. nullable |
costOfAcceptanceAttestedBy
required |
string | The user who attested the cost-of-acceptance rate. nullable |
differentialNetworkRatesAttested
required |
boolean | Whether differing surcharge rates across the allowed card networks have been attested as carrying documented legal signoff. Required before such a rate set can be saved. nullable |
differentialNetworkRatesAttestedAt
required |
string (date-time) | When the differential-rate signoff was attested. nullable |
differentialNetworkRatesAttestedBy
required |
string | The user who attested the differential-rate signoff. nullable |
forceEnabledAt
required |
string (date-time) | When surcharging was activated through the non-production waiting-period bypass, if it ever was. Null on every configuration activated the normal way, so a non-null value is the signal that this merchant's notice waiting period was not actually served. nullable |
forceEnabledBy
required |
string | The user who activated surcharging through the non-production bypass. nullable |
promotionHeldAt
required |
string (date-time) | When an explicit promotion hold was placed on this configuration, or null when none is in force. While it is set, the waiting-period sweep will not promote the configuration and both enable and force enable are refused with `Surcharging:PromotionHeld`. nullable |
promotionHeldBy
required |
string | The user who placed the promotion hold currently in force. nullable |
promotionHoldReason
required |
string | Why the promotion hold currently in force was placed, when a reason was given. nullable |
disabledAt
required |
string (date-time) | When surcharging was last disabled on this configuration, or null when it has not been disabled since it was last enabled. While it is set, the waiting-period sweep will not promote the configuration, even after a notice filed since the disable has returned `status` to `WaitingPeriod`. Enabling or force enabling the configuration clears it. nullable |
disabledBy
required |
string | The user who applied the disable currently in force. nullable |
autoPromotionBlockedReason
required |
all of SurchargeAutoPromotionBlockReason | Why the deployment's auto-promotion source policy is refusing to promote this configuration, or null when it is not refusing. nullable |
networkPolicies
required |
array of SurchargeNetworkPolicyDto | Per-network surcharge policies. nullable |
statePolicies
required |
array of SurchargeStatePolicyDto | Per-state surcharge policies. nullable |
notices
required |
array of SurchargeNoticeRecordDto | Filed card-brand notices (per network). nullable |
cardProcessorCoverage
required |
array of SurchargeCardProcessorCoverageDto | Every card processor profile the merchant is boarded on, and whether a filed notice covers each one. Null when the merchant's processing settings could not be read for this response. nullable |
concurrencyStamp
required |
string | Optimistic-concurrency token; supply the value read here when updating. nullable |
This response has no documented body fields.
403 Forbidden
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
401 Unauthorized
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
400 Bad Request
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
404 Not Found
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
501 Not Implemented
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
500 Internal Server Error
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
default 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. See the error-code reference in this document's description for the values `error.code` can take.
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
429 The request was refused because a rate limit was exceeded. 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.
Body: RateLimitProblemDetails
Each item has these fields.
| Field | Type | Description |
|---|---|---|
type
required |
string | The problem type identifier. Always the same value: the failure is the status code itself, so there is no sub-type for a caller to branch on. nullable |
title
required |
string | A short, human-readable summary of the problem type. nullable |
status
required |
integer (int32) | The HTTP status code, repeated in the body as the problem-details format defines. |
detail
required |
string | A human-readable explanation of this occurrence of the problem. nullable |
retryAfterSeconds
required |
integer (int32) | How long to wait before retrying, in whole seconds, carrying the same figure as the `Retry-After` header. Always at least one: a value of zero would invite an immediate retry that is certain to be rejected again. |
This response has no documented body fields.
Errors
A failed request returns the platform error envelope. The
error reference lists every value
error.code can carry and shows the four response shapes.