openapi: 3.2.0
info:
title: Silverflow Charge Actions API
version: 1.417.0
contact:
name: API Support
email: support@silverflow.com
license:
name: Commercial
description: 'Operations tagged Charge Actions across 2 of this provider''s published API definitions: silverflow-openapi.yml, silverflow-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://eu-west-1.api.silverflow.com/v1
description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
- url: https://us-east-2.api.silverflow.com/v1
description: Production URL for North America
- url: https://eu-west-1.api-sbx.silverflow.com/v1
description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
security:
- ApiKey: []
- BearerToken: []
tags:
- name: Charge Actions
description: Perform different actions on existing charges.
paths:
/charges/{chargeKey}/cancel:
post:
operationId: cancel
summary: Cancel Charge
description: 'This operation:
1. Tries to cancel the clearing of the referenced charge. If this is not possible due to the clearing already being submitted, this endpoint will return an HTTP 409 error.
2. If clearing has been cancelled, performs a reversal of the charge. This means that the authorization will be reversed.
This operation is only possible for charges with `clearingMode` set to `auto`.
Diners and ATM Charge support is EXPERIMENTAL.
Requires one of the following permissions:
* `charges:Cancel`
* `charges:CancelOrRefund`
'
tags:
- Charge Actions
parameters:
- $ref: '#/components/parameters/chargeKey'
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
description: 'Request a charge cancellation
'
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeCancel'
responses:
'201':
description: The resulting reversal action.
content:
application/json:
schema:
$ref: '#/components/schemas/ReversalAction'
'400':
$ref: '#/components/responses/responses-InvalidInputError'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'404':
$ref: '#/components/responses/EntityNotFoundError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/ClearingAlreadySubmittedErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
examples:
NonMatchingIdempotentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
ClearingAlreadySubmittedErrorExample:
$ref: '#/components/examples/ClearingAlreadySubmittedExample'
IncompatibleCardNetworkForOperation:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
UnexpectedIntentErrorDetails:
$ref: '#/components/examples/UnexpectedIntentErrorExample'
IdempotentRequestIsStillBeingProcessedErrorExample:
$ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
'429':
$ref: '#/components/responses/components-responses-TooManyRequestsError'
'500':
$ref: '#/components/responses/responses-InternalServerError'
servers:
- url: https://eu-west-1.api.silverflow.com/v1
description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
- url: https://us-east-2.api.silverflow.com/v1
description: Production URL for North America
- url: https://eu-west-1.api-sbx.silverflow.com/v1
description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
/charges/{chargeKey}/refund:
post:
operationId: refund
summary: Refund Charge
description: 'Performs a refund of a charge.
It is only possible to refund charges with the following `type.intent`:
- `purchase`
- `reservation`
- `funding`
Diners support is EXPERIMENTAL.
Requires `charges:Refund` permission.
For more information, see [the guide page](https://docs.silverflow.com/guides/charge-actions#tag/Refunds).
'
tags:
- Charge Actions
parameters:
- $ref: '#/components/parameters/chargeKey'
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
description: 'Request a charge refund
'
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeRefund'
responses:
'201':
description: The resulting refund action.
content:
application/json:
schema:
$ref: '#/components/schemas/RefundAction'
'400':
$ref: '#/components/responses/responses-InvalidInputError'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'404':
$ref: '#/components/responses/EntityNotFoundError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
- $ref: '#/components/schemas/UnexpectedClearingStatusErrorDetails'
- $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
- $ref: '#/components/schemas/UnexpectedMessageSystem'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
examples:
NonMatchingIdempontentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
UnexpectedAuthorizationErrorExample:
$ref: '#/components/examples/UnexpectedAuthorizationErrorExample'
UnexpectedClearingStatusErrorExample:
$ref: '#/components/examples/UnexpectedClearingStatusErrorExample'
UnexpectedIntentErrorExample:
$ref: '#/components/examples/UnexpectedIntentErrorExample'
UnexpectedMessageSystemExample:
$ref: '#/components/examples/UnexpectedMessageSystemExample'
IncompatibleCardNetworkForOperationErrorExample:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
IdempotentRequestIsStillBeingProcessedErrorExample:
$ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
'429':
$ref: '#/components/responses/components-responses-TooManyRequestsError'
'500':
$ref: '#/components/responses/responses-InternalServerError'
servers:
- url: https://eu-west-1.api.silverflow.com/v1
description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
- url: https://us-east-2.api.silverflow.com/v1
description: Production URL for North America
- url: https://eu-west-1.api-sbx.silverflow.com/v1
description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
/charges/{chargeKey}/offlineRefund:
post:
operationId: offlineRefund
summary: Offline-Refund Charge
description: 'Performs an offline-refund of an authorized charge. This refund will be cleared without issuer authorization.
For American Express and Diners, this endpoint supports refunding charges for up to 6 months after their creation. When trying to refund a charge older than that, it will return an HTTP 409 error with type `/silverflow/problems/charge/invalid-operation`.
Requires `charges:OfflineRefund` permission.
'
tags:
- Charge Actions
parameters:
- $ref: '#/components/parameters/chargeKey'
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
description: 'Request an offline charge refund
'
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeOfflineRefundRequest'
examples:
partial:
$ref: '#/components/examples/partial_Request'
responses:
'201':
description: The resulting offline refund action
content:
application/json:
schema:
$ref: '#/components/schemas/OfflineRefundAction'
examples:
partial:
$ref: '#/components/examples/partial_Response'
'400':
$ref: '#/components/responses/responses-InvalidInputError'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'404':
$ref: '#/components/responses/EntityNotFoundError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
- $ref: '#/components/schemas/UnexpectedClearingStatusErrorDetails'
- $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
- $ref: '#/components/schemas/UnexpectedMessageSystem'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
- $ref: '#/components/schemas/InvalidCardErrorDetails'
- $ref: '#/components/schemas/ChargeInvalidOperationErrorDetails'
examples:
NonMatchingIdempontentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
UnexpectedAuthorizationErrorExample:
$ref: '#/components/examples/UnexpectedAuthorizationErrorExample'
UnexpectedClearingStatusErrorExample:
$ref: '#/components/examples/UnexpectedClearingStatusErrorExample'
UnexpectedIntentErrorExample:
$ref: '#/components/examples/UnexpectedIntentErrorExample'
UnexpectedMessageSystemExample:
$ref: '#/components/examples/UnexpectedMessageSystemExample'
IncompatibleCardNetworkForOperationErrorExample:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
IdempotentRequestIsStillBeingProcessedErrorExample:
$ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
InvalidCardErrorExample:
$ref: '#/components/examples/InvalidCardErrorExample'
ChargeInvalidOperationErrorExample:
$ref: '#/components/examples/ChargeInvalidOperationErrorExample'
'429':
$ref: '#/components/responses/components-responses-TooManyRequestsError'
'500':
$ref: '#/components/responses/responses-InternalServerError'
'503':
$ref: '#/components/responses/TemporaryServerError'
servers:
- url: https://eu-west-1.api.silverflow.com/v1
description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
- url: https://us-east-2.api.silverflow.com/v1
description: Production URL for North America
- url: https://eu-west-1.api-sbx.silverflow.com/v1
description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
/charges/{chargeKey}/reverse:
post:
operationId: reverse
summary: Reverse Charge
description: 'Performs a reversal of a charge. This means that the authorization will be reversed.
If no request body is provided, the full current charge amount will be reversed (taking into account reversals and increments).
Note that there are currently no restrictions on the amount you can reverse in relation
to previous clearings; this is the responsibility of the client.
Diners and ATM Charge support is EXPERIMENTAL.
Requires the `charges:Reverse` permission.
'
tags:
- Charge Actions
parameters:
- $ref: '#/components/parameters/chargeKey'
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
description: 'Request a charge reversal.
'
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeReverse'
responses:
'201':
description: The resulting reversal action.
content:
application/json:
schema:
$ref: '#/components/schemas/ReversalAction'
'400':
$ref: '#/components/responses/responses-InvalidInputError'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'404':
$ref: '#/components/responses/EntityNotFoundError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
- $ref: '#/components/schemas/UnexpectedClearingModeErrorDetails'
- $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
- $ref: '#/components/schemas/InvalidAmountErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
examples:
NonMatchingIdempontentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
UnexpectedAuthorizationErrorExample:
$ref: '#/components/examples/UnexpectedAuthorizationErrorExample'
UnexpectedClearingModeErrorExample:
$ref: '#/components/examples/UnexpectedClearingModeErrorExample'
UnexpectedIntentErrorExample:
$ref: '#/components/examples/UnexpectedIntentErrorExample'
InvalidAmountErrorExample:
$ref: '#/components/examples/InvalidAmountErrorExample'
IncompatibleCardNetworkForOperation:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
IdempotentRequestIsStillBeingProcessedErrorExample:
$ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
'429':
$ref: '#/components/responses/components-responses-TooManyRequestsError'
'500':
$ref: '#/components/responses/responses-InternalServerError'
servers:
- url: https://eu-west-1.api.silverflow.com/v1
description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
- url: https://us-east-2.api.silverflow.com/v1
description: Production URL for North America
- url: https://eu-west-1.api-sbx.silverflow.com/v1
description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
/charges/{chargeKey}/increment:
post:
operationId: increment
summary: Increment Charge
description: "Performs an increment on a charge. Note that this is not allowed if the charge has \npreviously been cleared (either partially or fully).\n\nIncrement support for Diners is EXPERIMENTAL.\n\nFor decreasing the authorization amount, please see [Reverse charge](#operation/reverse).\n\nRequires the `charges:Increment` permission.\n"
tags:
- Charge Actions
parameters:
- $ref: '#/components/parameters/chargeKey'
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
description: 'Request a charge increment.
'
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeIncrement'
responses:
'201':
description: The resulting increment action
content:
application/json:
schema:
$ref: '#/components/schemas/IncrementAction'
'400':
$ref: '#/components/responses/responses-InvalidInputError'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'404':
$ref: '#/components/responses/EntityNotFoundError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/UnexpectedClearingModeErrorDetails'
- $ref: '#/components/schemas/UnexpectedClearingStatusErrorDetails'
- $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
- $ref: '#/components/schemas/UnexpectedRefundStatusErrorDetails'
- $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
- $ref: '#/components/schemas/InvalidAmountErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
examples:
NonMatchingIdempontentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
UnexpectedClearingModeErrorExample:
$ref: '#/components/examples/UnexpectedClearingModeErrorExample'
UnexpectedClearingStatusErrorExample:
$ref: '#/components/examples/UnexpectedClearingStatusErrorExample'
UnexpectedAuthorizationErrorExample:
$ref: '#/components/examples/UnexpectedAuthorizationErrorExample'
UnexpectedRefundStatusErrorExample:
$ref: '#/components/examples/UnexpectedRefundStatusErrorExample'
UnexpectedIntentErrorExample:
$ref: '#/components/examples/UnexpectedIntentErrorExample'
InvalidAmountErrorExample:
$ref: '#/components/examples/InvalidAmountErrorExample'
IncompatibleCardNetworkForOperation:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
IdempotentRequestIsStillBeingProcessedErrorExample:
$ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
'429':
$ref: '#/components/responses/components-responses-TooManyRequestsError'
'500':
$ref: '#/components/responses/responses-InternalServerError'
servers:
- url: https://eu-west-1.api.silverflow.com/v1
description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
- url: https://us-east-2.api.silverflow.com/v1
description: Production URL for North America
- url: https://eu-west-1.api-sbx.silverflow.com/v1
description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
/charges/{chargeKey}/clear:
post:
operationId: triggerManualClearing
summary: Manually Clear Charge
description: "Manually clear the charge after its creation. This endpoint also allows for (multiple) partial\nclearing, by providing an amount that is different from the original amount. \n\nPlease note that there are currently no restrictions on the amount or the number of times you\ncan clear a charge; this is the responsibility of the client.\n\nThis endpoint supports clearing charges for up to 6 months after their creation. When trying to clear a charge older than that, it will return an HTTP 409 error with type `/silverflow/problems/charge/too-old`.\n\nRequires `charges:Clear` permission.\n"
tags:
- Charge Actions
parameters:
- $ref: '#/components/parameters/chargeKey'
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
description: 'Clear the referenced charge with additional parameters.
'
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/ManualClearing'
responses:
'201':
description: The resulting clearing action.
content:
application/json:
schema:
$ref: '#/components/schemas/ClearingAction'
'400':
$ref: '#/components/responses/responses-InvalidInputError'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'404':
$ref: '#/components/responses/EntityNotFoundError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ClearingCurrentZeroAmountErrorDetails'
- $ref: '#/components/schemas/ChargeTooOldForClearingErrorDetails'
- $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
- $ref: '#/components/schemas/UnexpectedClearingModeErrorDetails'
- $ref: '#/components/schemas/UnexpectedClearingStatusErrorDetails'
- $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
examples:
ClearingCurrentZeroAmountErrorExample:
$ref: '#/components/examples/ClearingCurrentZeroAmountErrorExample'
ChargeTooOldForClearingErrorExample:
$ref: '#/components/examples/ChargeTooOldForClearingErrorExample'
UnexpectedAuthorizationErrorExample:
$ref: '#/components/examples/UnexpectedAuthorizationErrorExample'
UnexpectedClearingModeErrorExample:
$ref: '#/components/examples/UnexpectedClearingModeErrorExample'
UnexpectedClearingStatusErrorExample:
$ref: '#/components/examples/UnexpectedClearingStatusErrorExample'
UnexpectedIntentErrorExample:
$ref: '#/components/examples/UnexpectedIntentErrorExample'
IncompatibleCardNetworkForOperationErrorExample:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
IdempotentRequestIsStillBeingProcessedErrorExample:
$ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
NonMatchingIdempontentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
'429':
$ref: '#/components/responses/components-responses-TooManyRequestsError'
'500':
$ref: '#/components/responses/responses-InternalServerError'
servers:
- url: https://eu-west-1.api.silverflow.com/v1
description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
- url: https://us-east-2.api.silverflow.com/v1
description: Production URL for North America
- url: https://eu-west-1.api-sbx.silverflow.com/v1
description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
/charges/{chargeKey}/actions/{actionKey}:
get:
operationId: getAction
summary: Get Action
description: 'Retrieve an action performed on a charge.
Requires `charges:Get` permission.
'
tags:
- Charge Actions
parameters:
- $ref: '#/components/parameters/actionKey'
- $ref: '#/components/parameters/chargeKey'
responses:
'200':
description: The action
content:
application/json:
schema:
$ref: '#/components/schemas/Action'
'400':
$ref: '#/components/responses/responses-InvalidInputError'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'404':
$ref: '#/components/responses/EntityNotFoundError'
'429':
$ref: '#/components/responses/components-responses-TooManyRequestsError'
'500':
$ref: '#/components/responses/responses-InternalServerError'
servers:
- url: https://eu-west-1.api.silverflow.com/v1
description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
- url: https://us-east-2.api.silverflow.com/v1
description: Production URL for North America
- url: https://eu-west-1.api-sbx.silverflow.com/v1
description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
/charges/{chargeKey}/actions:
get:
operationId: getActions
summary: List Charge Actions
description: 'This endpoint returns a list of actions performed on a charge.
Requires `charges:Get` permission.
'
tags:
- Charge Actions
parameters:
- $ref: '#/components/parameters/chargeKey'
- $ref: '#/components/parameters/components-parameters-offsetToken'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of actions
content:
application/json:
schema:
$ref: '#/components/schemas/ActionsPage'
'400':
$ref: '#/components/responses/responses-InvalidInputError'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'404':
$ref: '#/components/responses/EntityNotFoundError'
'429':
$ref: '#/components/responses/components-responses-TooManyRequestsError'
'500':
$ref: '#/components/responses/responses-InternalServerError'
servers:
- url: https://eu-west-1.api.silverflow.com/v1
description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
- url: https://us-east-2.api.silverflow.com/v1
description: Production URL for North America
- url: https://eu-west-1.api-sbx.silverflow.com/v1
description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
components:
schemas:
authorizationIsoFieldsMastercardWithDiscriminator:
allOf:
- type: object
required:
- network
properties:
network:
type: string
enum:
- mastercard
- $ref: '#/components/schemas/commonIsoFields'
InvalidAmountErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/invalid-amount
title:
$ref: '#/components/schemas/errorTitle'
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
authorizationIsoFieldsVisaForAuthorizationAndRefundActions:
allOf:
- $ref: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
- type: object
required:
- transactionIdentifier
properties:
transactionIdentifier:
type: string
description: Contents of field 62, subfield 2 EXPERIMENTAL
example: '238210000026090'
createRefundCharge:
type: boolean
default: false
description: 'When set to `true`, a full refund charge will be created along with the refund action.
**On August 23, 2026, the default value of the field will be set to true. Simultaneously, the field will be deprecated and will be removed after another 6 months.**
'
isoFieldResponseCodeDescription:
type: string
description: The description of the `responseCode`
example: Approved
components-schemas-offsetToken:
type: string
pattern: ^[a-zA-Z0-9%]+$
minLength: 1
maxLength: 2048
example: LUtyr0s918rNZ5WuWDYh5FNzqAli6HqKHpPDatcfdsaVlibrlO49BKcOdz9YccUOtDSoyLtc4kAiOLkmjSW5zLa8OCnOXXBRja2rDYh5FNzqAli6HqKHpPDatcfdsaVlibrlO49BKcOdz9Yc
authorizationIsoFieldsAmericanExpressWithDiscriminator:
allOf:
- type: object
required:
- network
properties:
network:
type: string
enum:
- american-express
- $ref: '#/components/schemas/commonIsoFields'
authorizationIsoFieldsMastercardForAuthorizationAndRefundActions:
allOf:
- $ref: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
- type: object
required:
- traceId
properties:
traceId:
type: string
description: 'The trace ID can be used to refer to the original authorization for subsequent transactions (e.g., reversals, MITs). EXPERIMENTAL
The value is constructed from the contents of field 63, subfield 1, field 63, subfield 2, and field 15. The value intentionally ends with two spaces.
'
components-schemas-CountryCodeAlpha3:
type: object
required:
- alpha3
additionalProperties: false
properties:
alpha3:
$ref: '#/components/schemas/schemas-countryCodeAlpha3'
ClearingAction:
type: object
description: Action for clearing a charge
required:
- key
- chargeKey
- created
- version
- type
- amount
properties:
type:
type: string
enum:
- clearing
key:
$ref: '#/components/schemas/actionKey'
chargeKey:
$ref: '#/components/schemas/chargeKey'
reference:
$ref: '#/components/schemas/actionReference'
amount:
allOf:
- description: The amount to clear
- $ref: '#/components/schemas/common_Amount'
enhancedData:
$ref: '#/components/schemas/enhancedData'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
version:
$ref: '#/components/schemas/schemas-version'
openapi_components-schemas-created:
type: string
description: The date and time this object was created
format: iso-8601-date-time
readOnly: true
schemas-countryCodeAlpha2:
type: string
pattern: ^[A-Z]+$
minLength: 2
maxLength: 2
externalDocs:
description: Find more info here.
url: https://www.iso.org/iso-3166-country-codes.html
example: NL
isoFieldResponseCode:
type: string
description: Contents of field 39
example: '00'
UnexpectedAuthorizationErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/unexpected-authorization-status
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Unexpected Authorization Status
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
ValidationError:
type: object
required:
- path
- message
properties:
path:
type: string
description: A relative path to the error location within the request body.
errorCode:
type: string
description: A code that identifies the error.
message:
type: string
description: A brief description of the validation error.
schemas-countryCodeNumeric:
type: string
pattern: ^[0-9]+$
minLength: 3
maxLength: 3
externalDocs:
description: Find more info here.
url: https://www.iso.org/iso-3166-country-codes.html
example: '528'
UnexpectedClearingStatusErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/unexpected-clearing-status
title:
$ref: '#/components/schemas/errorTitle'
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
openapi_components-schemas-postalCode:
type: string
pattern: ^[A-Z0-9]+( [A-Z0-9]*)?$
minLength: 1
maxLength: 10
description: 'The postal code of the address, allowing a single separating space.
'
example: 1234BC
authorizationResponseForAuthorizationAndRefundActions:
type: object
description: 'Network-specific details from the authorization response.
Actions created before 2023-10-07 will have the `network` property and other remaining properties as `unknown`.
'
discriminator:
propertyName: network
mapping:
american-express: '#/components/schemas/authorizationIsoFieldsAmericanExpressForAuthorizationAndRefundActions'
bancontact: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
diners: '#/components/schemas/authorizationIsoFieldsDinersForAuthorizationAndRefundActions'
discover: '#/components/schemas/authorizationIsoFieldsDiscoverForAuthorizationAndRefundActions'
mastercard: '#/components/schemas/authorizationIsoFieldsMastercardForAuthorizationAndRefundActions'
visa: '#/components/schemas/authorizationIsoFieldsVisaForAuthorizationAndRefundActions'
unknown: '#/components/schemas/authorizationIsoFieldsUnknown'
oneOf:
- $ref: '#/components/schemas/authorizationIsoFieldsAmericanExpressForAuthorizationAndRefundActions'
- $ref: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsDinersForAuthorizationAndRefundActions'
- $ref: '#/components/schemas/authorizationIsoFieldsDiscoverForAuthorizationAndRefundActions'
- $ref: '#/components/schemas/authorizationIsoFieldsMastercardForAuthorizationAndRefundActions'
- $ref: '#/components/schemas/authorizationIsoFieldsVisaForAuthorizationAndRefundActions'
- $ref: '#/components/schemas/authorizationIsoFieldsUnknown'
components-schemas-amountValue:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: 'The amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
currencies have 2 minor units. Some have three or zero.
'
example: 2599
schemas-version:
type: integer
description: The version of this object
format: int64
example: 1
readOnly: true
UnexpectedClearingModeErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/unexpected-clearing-mode
title:
$ref: '#/components/schemas/errorTitle'
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
components-schemas-lastModified:
type: string
description: The date and time this object was last modified
format: iso-8601-date-time
readOnly: true
ChargeInvalidOperationErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/invalid-operation
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Invalid Operation on Charge
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
NonMatchingIdempotentRequestErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/idempotency/request-mismatch
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Idempotent Request Mismatch
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
Action:
description: An action performed on a charge
type: object
discriminator:
propertyName: type
mapping:
authorization: '#/components/schemas/AuthorizationAction'
reversal: '#/components/schemas/ReversalAction'
refund: '#/components/schemas/RefundAction'
offline-refund: '#/components/schemas/OfflineRefundAction'
clearing: '#/components/schemas/ClearingAction'
increment: '#/components/schemas/IncrementAction'
oneOf:
- $ref: '#/components/schemas/AuthorizationAction'
- $ref: '#/components/schemas/ReversalAction'
- $ref: '#/components/schemas/RefundAction'
- $ref: '#/components/schemas/OfflineRefundAction'
- $ref: '#/components/schemas/ClearingAction'
- $ref: '#/components/schemas/IncrementAction'
ChargeReverse:
type: object
additionalProperties: false
description: 'Reverse a Charge.
'
properties:
replacementAmount:
type: integer
format: int64
minimum: 0
maximum: 999999999999
default: 0
description: 'The amount to replace the original authorization with. Note that this is not the amount to be reversed.
If zero, the full current charge amount will be reversed. If a non-zero amount is
provided, a partial reversal will be done.
When reversing Visa POS transactions with cashback, this value must be 0.
'
example: 2599
reference:
$ref: '#/components/schemas/actionReference'
TemporaryServerErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/temporary-server-error
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Temporary Server Error
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 503
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
errorTitle:
type: string
description: 'A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
'
authorizationResponseForIncrementAction:
type: object
description: 'Network-specific details from the authorization response.
Actions created before 2023-10-07 will have the `network` property and other remaining properties as `unknown`.
'
discriminator:
propertyName: network
mapping:
bancontact: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
diners: '#/components/schemas/authorizationIsoFieldsDinersWithDiscriminator'
discover: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
mastercard: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
visa: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
unknown: '#/components/schemas/authorizationIsoFieldsUnknown'
oneOf:
- $ref: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsDinersWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsUnknown'
authorizationIsoFieldsAmericanExpressForAuthorizationAndRefundActions:
allOf:
- $ref: '#/components/schemas/authorizationIsoFieldsAmericanExpressWithDiscriminator'
- type: object
required:
- acquirerReferenceData
properties:
acquirerReferenceData:
type: string
description: Contents of field 31. EXPERIMENTAL
UnexpectedIntentErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/unexpected-intent
title:
$ref: '#/components/schemas/errorTitle'
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
EnhancedDataShippingAddress:
type: object
description: Must be provided if shipment is involved and captured on the invoice
properties:
postalCode:
allOf:
- description: Shipping postal code.
- $ref: '#/components/schemas/openapi_components-schemas-postalCode'
ManualClearing:
type: object
additionalProperties: false
properties:
amount:
type: integer
format: int64
minimum: 1
maximum: 999999999999
description: 'The amount to clear. If omitted, the full amount of the charge will be cleared.
The amount should be in minor units. For example `$12.34` should be encoded as `1234`. Note
that not all currencies have 2 minor units; some have three or zero.
'
example: 900
closeCharge:
type: boolean
description: 'Indicates if the series of clearings for this transaction ends after the current clearing.
Only relevant when doing partial clearing.
'
clearAfter:
$ref: '#/components/schemas/clearAfter'
reference:
$ref: '#/components/schemas/actionReference'
enhancedData:
$ref: '#/components/schemas/enhancedDataInput'
schemas-CountryCode:
type: object
required:
- alpha3
- alpha2
- numeric
properties:
alpha3:
$ref: '#/components/schemas/schemas-countryCodeAlpha3'
alpha2:
$ref: '#/components/schemas/schemas-countryCodeAlpha2'
numeric:
$ref: '#/components/schemas/schemas-countryCodeNumeric'
clearAfter:
type: string
description: 'If provided, clearing will not occur before this point in time.
If no timezone is included, it is assumed to be UTC.
The value may be at most 6 months in the future from when the charge was created.
'
format: iso-8601-date-time
AuthorizationAction:
type: object
description: Action for authorizing a charge
required:
- key
- chargeKey
- created
- version
- type
- status
- amount
- authorizationResponse
properties:
type:
type: string
enum:
- authorization
key:
$ref: '#/components/schemas/actionKey'
chargeKey:
$ref: '#/components/schemas/chargeKey'
reference:
$ref: '#/components/schemas/actionReference'
amount:
allOf:
- description: The amount encoded as an object with a `value` in minor units and a `currency` code. In case of a (partially) approved charge, this is the authorized amount.
- $ref: '#/components/schemas/common_Amount'
status:
type: object
required:
- authorization
properties:
authorization:
type: string
enum:
- approved
- approved-partial
- approved-purchase-amount-only
- declined
authorizationResponse:
$ref: '#/components/schemas/authorizationResponseForAuthorizationAndRefundActions'
enhancedData:
$ref: '#/components/schemas/enhancedData'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
version:
$ref: '#/components/schemas/schemas-version'
components-schemas-CountryCodeNumeric:
type: object
required:
- numeric
additionalProperties: false
properties:
numeric:
$ref: '#/components/schemas/schemas-countryCodeNumeric'
OfflineRefundAction:
type: object
description: Action for offline refunding a charge
required:
- type
- key
- chargeKey
- amount
- created
- version
properties:
type:
type: string
enum:
- offline-refund
key:
$ref: '#/components/schemas/actionKey'
chargeKey:
$ref: '#/components/schemas/chargeKey'
reference:
$ref: '#/components/schemas/actionReference'
amount:
allOf:
- description: The amount that was refunded.
- $ref: '#/components/schemas/common_Amount'
clearAfter:
$ref: '#/components/schemas/clearAfter'
initialRefundReferences:
description: Network-specific identifiers from the original authorization. Currently only supported for Mastercard.
oneOf:
- $ref: '#/components/schemas/OfflineRefundInitialTransactionReferences'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
version:
$ref: '#/components/schemas/schemas-version'
ChargeTooOldForClearingErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charges/invalid-charge
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Invalid Charge
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
EnhancedDataDestinationAddress:
type: object
description: Must be provided if shipment is involved and captured on the invoice
properties:
countryCode:
allOf:
- description: Destination country code.
- $ref: '#/components/schemas/schemas-CountryCode'
postalCode:
allOf:
- description: Destination postal code.
- $ref: '#/components/schemas/openapi_components-schemas-postalCode'
chargeKey:
description: Uniquely identifies a charge.
type: string
pattern: ^chg-[a-zA-Z0-9]+$
minLength: 5
maxLength: 120
example: chg-1e1dAHhgstYTUhlphPzZ
ForbiddenErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/forbidden
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Forbidden
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 403
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
ClearingAlreadySubmittedErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/clearing-already-submitted
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Clearing Already Submitted
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
authorizationIsoFieldsDiscoverWithDiscriminator:
allOf:
- type: object
required:
- network
properties:
network:
type: string
enum:
- discover
- $ref: '#/components/schemas/commonIsoFields'
ActionsPage:
allOf:
- $ref: '#/components/schemas/PageWithMoreItems'
- description: List of actions
- type: object
required:
- actions
properties:
actions:
type: array
items:
$ref: '#/components/schemas/Action'
schemas-EntityNotFoundErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/entity-not-found
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Not Found
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 404
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
ReversalAction:
type: object
description: Action for reversing a charge
required:
- key
- chargeKey
- created
- version
- type
- status
- replacementAmount
- authorizationResponse
properties:
type:
type: string
enum:
- reversal
key:
$ref: '#/components/schemas/actionKey'
chargeKey:
$ref: '#/components/schemas/chargeKey'
reference:
$ref: '#/components/schemas/actionReference'
replacementAmount:
$ref: '#/components/schemas/common_Amount'
status:
type: object
required:
- authorization
properties:
authorization:
type: string
enum:
- approved
- declined
authorizationResponse:
$ref: '#/components/schemas/authorizationResponseForReversalAction'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
version:
$ref: '#/components/schemas/schemas-version'
IdempotentRequestIsStillBeingProcessedErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/idempotency/request-is-still-being-processed
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Request Is Still Being Processed
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
actionKey:
description: Uniquely identifies an action
type: string
pattern: ^act-[a-zA-Z0-9]+$
minLength: 5
maxLength: 120
example: act-1e1dA2fgs1YTUhlhyPOp
refundChargeKey:
description: 'Charge key of the created refund charge. Included only when the refund was
created with `createRefundCharge = true`.
'
type: string
pattern: ^chg-[a-zA-Z0-9]+$
minLength: 5
maxLength: 120
example: chg-1e1dAHhgstYTUhlphPzZ
EnhancedDataLineItem:
type: object
required:
- commodityCode
- description
- discountAmount
- productCode
- quantity
- unitOfMeasure
- unitPrice
- taxAmount
- taxRate
- totalAmount
properties:
commodityCode:
type: string
minLength: 1
maxLength: 12
description: Commodity classification code (e.g. UNSPSC, NAICS). Required for Visa Fleet transactions.
description:
type: string
minLength: 2
maxLength: 26
description: Product or service description.
discountAmount:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: Discount applied to this line item in minor currency units.
productCode:
type: string
minLength: 1
maxLength: 12
description: Product code for the item.
quantity:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: Quantity of items purchased. Includes 4 implied decimal places (e.g. 1.23 kg = 12300)
unitOfMeasure:
type: string
minLength: 1
maxLength: 12
description: The unit of measurement for an item.
unitPrice:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: Price per unit. Includes 4 implied decimal places (e.g. 1.23$ = 12300).
taxAmount:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: Tax amount for the line item in minor currency units.
taxRate:
type: integer
format: int64
minimum: 0
maximum: 10000
description: Tax rate percentage for the line item. Includes 2 implied decimal places (e.g. 1.23% = 123)
totalAmount:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: Total amount for the line item in minor currency units.
UnauthorizedErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/authentication-required
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Authentication Required
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 401
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
ChargeIncrement:
type: object
additionalProperties: false
description: 'Increment a charge.
'
required:
- replacementAmount
properties:
replacementAmount:
$ref: '#/components/schemas/IncrementReplacementAmount'
reference:
$ref: '#/components/schemas/actionReference'
OfflineRefundInitialTransactionReferences:
title: Mastercard
type: object
required:
- initialTraceId
additionalProperties: false
properties:
initialTraceId:
type: string
description: The Trace ID from the original declined online refund authorization response.
minLength: 1
maxLength: 15
example: MCGATSGHX1112
ChargeOfflineRefundRequest:
type: object
additionalProperties: false
description: 'Offline-refund a Charge
'
properties:
amount:
$ref: '#/components/schemas/RefundAmount'
reference:
$ref: '#/components/schemas/actionReference'
clearAfter:
$ref: '#/components/schemas/clearAfter'
dynamicDescriptor:
$ref: '#/components/schemas/schemas-DynamicDescriptor'
initialRefundReferences:
description: Network-specific identifiers from the original authorization. Currently only supported for Mastercard.
oneOf:
- $ref: '#/components/schemas/OfflineRefundInitialTransactionReferences'
authorizationIsoFieldsDinersForAuthorizationAndRefundActions:
allOf:
- $ref: '#/components/schemas/authorizationIsoFieldsDinersWithDiscriminator'
- type: object
required:
- networkReferenceId
properties:
networkReferenceId:
type: string
description: Contents field 123 EXPERIMENTAL
refundClearingMode:
type: string
enum:
- auto
- manual
description: 'The clearing method for the refund charge.
- `auto`: The charge is cleared automatically as soon as possible. To delay clearing, provide a `clearAfter` timestamp.
- `manual`: The charge must be manually cleared later.
**Only supported if `createRefundCharge` is set to `true`.
'
default: auto
ChargeCancel:
type: object
description: Request to cancel the referenced charge.
additionalProperties: false
properties:
reference:
$ref: '#/components/schemas/actionReference'
IncrementReplacementAmount:
type: integer
format: int64
minimum: 1
maximum: 999999999999
description: 'The new total authorized amount (initial amount plus increment).
'
example: 2599
authorizationIsoFieldsDiscoverForAuthorizationAndRefundActions:
allOf:
- $ref: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
- type: object
required:
- networkReferenceId
properties:
networkReferenceId:
type: string
description: Contents field 48, position 11-25 EXPERIMENTAL
ClearingCurrentZeroAmountErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/cannot-clear-zero-amount
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Cannot Clear Zero Amount
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
InternalServerErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/internal-server-error
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Internal Server Error
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 500
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
IncompatibleCardNetworkForOperation:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/incompatible-card-network-for-operation
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Incompatible Network For Operation
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
openapi_components-schemas-InvalidInputErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
- validationErrors
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/invalid-input
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Invalid Input
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 400
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
validationErrors:
type: array
items:
$ref: '#/components/schemas/ValidationError'
description: A list of validation errors.
UnexpectedRefundStatusErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/unexpected-refunds-status
title:
$ref: '#/components/schemas/errorTitle'
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
authorizationIsoFieldsDinersWithDiscriminator:
allOf:
- type: object
required:
- network
properties:
network:
type: string
enum:
- diners
- $ref: '#/components/schemas/commonIsoFields'
UnexpectedMessageSystem:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/bin/unexpected-message-system
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Unexpected Message System
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
errorInstance:
type: string
description: 'A reference that identifies the specific occurrence of the error. The instance is unique for every error.
'
schemas-countryCodeAlpha3:
type: string
pattern: ^[A-Z]+$
minLength: 3
maxLength: 3
externalDocs:
description: Find more info here.
url: https://www.iso.org/iso-3166-country-codes.html
example: NLD
errorStatus:
type: integer
format: int32
description: 'The HTTP status code generated by the origin server for this occurrence
of the problem.
'
components-schemas-CountryCodeAlpha2:
type: object
required:
- alpha2
additionalProperties: false
properties:
alpha2:
$ref: '#/components/schemas/schemas-countryCodeAlpha2'
authorizationIsoFieldsUnknown:
type: object
required:
- network
- responseCode
- responseCodeDescription
properties:
network:
type: string
enum:
- unknown
responseCode:
type: string
enum:
- unknown
responseCodeDescription:
type: string
enum:
- unknown
InvalidCardErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/card/invalid
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Invalid Card
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
common_Amount:
type: object
required:
- value
- currency
additionalProperties: false
description: 'The amount encoded as an object with a `value` in minor units and a `currency` code.
'
properties:
value:
$ref: '#/components/schemas/components-schemas-amountValue'
currency:
$ref: '#/components/schemas/common_currencyCode'
actionReference:
description: Action reference assigned by the agent. Must not start with "act-".
type: string
pattern: ^(?!act-)[a-zA-Z0-9-_\.]+$
minLength: 1
maxLength: 120
example: MyRef
PageWithMoreItems:
type: object
properties:
moreItems:
type: boolean
offsetToken:
$ref: '#/components/schemas/components-schemas-offsetToken'
authorizationIsoFieldsVisaWithDiscriminator:
allOf:
- type: object
required:
- network
properties:
network:
type: string
enum:
- visa
- $ref: '#/components/schemas/commonIsoFields'
TooManyRequestsErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/too-many-requests
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Too Many Requests
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 429
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
enhancedData:
type: object
additionalProperties: false
description: An optional object for submitting Level 2 (tax and order references) and Level 3 (granular line-item details) payment data. Providing this data can qualify transactions for reduced interchange rates. VISA MASTERCARD EXPERIMENTAL
required:
- taxAmount
properties:
taxAmount:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: Total amount of Sales Tax or Value Added Tax (VAT) collected in minor units. It is set to 0 if no tax is collected.
example: 300
customerCode:
type: string
minLength: 1
maxLength: 25
description: A code used to identify the customer or consumer.
example: REF12345
customerTaxId:
type: string
minLength: 1
maxLength: 13
description: Customer's tax registration or VAT number.
destinationAddress:
$ref: '#/components/schemas/EnhancedDataDestinationAddress'
discountAmount:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: Total amount of discount at invoice level in minor units. Excludes any discount amounts defined at line item level.
example: 50
invoiceNumber:
type: string
minLength: 1
maxLength: 25
description: Invoice number for the transaction.
orderDate:
type: string
format: date
description: Date the order was placed.
example: '2026-05-01'
purchaseOrderNumber:
type: string
minLength: 1
maxLength: 13
description: Purchase order number for the transaction.
shippingAddress:
$ref: '#/components/schemas/EnhancedDataShippingAddress'
timeOfPurchase:
type: string
pattern: ^([0-1][0-9]|2[0-3])[0-5][0-9]$
minLength: 4
maxLength: 4
description: Local transaction time in HHMM format.
example: '1402'
lineItems:
type: array
minItems: 1
maxItems: 100
description: Array of line items.
items:
$ref: '#/components/schemas/EnhancedDataLineItem'
IncrementAction:
type: object
description: Action for incrementing a charge
required:
- key
- chargeKey
- type
- replacementAmount
- status
- authorizationResponse
- created
- version
properties:
type:
type: string
enum:
- increment
key:
$ref: '#/components/schemas/actionKey'
chargeKey:
$ref: '#/components/schemas/chargeKey'
reference:
$ref: '#/components/schemas/actionReference'
replacementAmount:
$ref: '#/components/schemas/common_Amount'
status:
type: object
required:
- authorization
properties:
authorization:
type: string
enum:
- approved
- declined
authorizationResponse:
$ref: '#/components/schemas/authorizationResponseForIncrementAction'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
version:
$ref: '#/components/schemas/schemas-version'
errorDetail:
type: string
description: 'A human readable explanation specific to this occurrence of the problem.
'
RefundAmount:
type: integer
format: int64
minimum: 1
maximum: 999999999999
description: 'The refund amount. If not specified the full authorized charge amount will be refunded.
'
example: 2599
commonIsoFields:
type: object
required:
- responseCode
- responseCodeDescription
properties:
responseCode:
$ref: '#/components/schemas/isoFieldResponseCode'
responseCodeDescription:
$ref: '#/components/schemas/isoFieldResponseCodeDescription'
schemas-DynamicDescriptor:
type: object
minProperties: 1
additionalProperties: false
description: 'Field supports the merchant customizing the DBA name and city on a per-transaction basis,
to allow the cardholder to recognize the business name and city on their card or bank statement.
'
properties:
merchantName:
type: string
pattern: ^[a-zA-Z0-9-\.!\*=_ ]+$
description: Recognizable business name that will appear on the customer's card or bank statement.
example: Acme Inc.
minLength: 1
maxLength: 22
merchantCity:
type: string
description: City from which the transaction originated
example: Amsterdam
pattern: ^[a-zA-Z0-9-\.!\*=_ ]+$
minLength: 1
maxLength: 13
common_currencyCode:
type: string
enum:
- AED
- AFN
- ALL
- AMD
- AOA
- ARS
- AUD
- AWG
- AZN
- BAM
- BBD
- BDT
- BHD
- BIF
- BMD
- BND
- BOB
- BRL
- BSD
- BTN
- BWP
- BYN
- BZD
- CAD
- CDF
- CHF
- CLP
- CNY
- COP
- CRC
- CUC
- CUP
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ERN
- ETB
- EUR
- FJD
- FKP
- GBP
- GEL
- GHS
- GIP
- GMD
- GNF
- GTQ
- GYD
- HKD
- HNL
- HTG
- HUF
- IDR
- ILS
- INR
- IQD
- IRR
- ISK
- JMD
- JOD
- JPY
- KES
- KGS
- KHR
- KMF
- KPW
- KRW
- KWD
- KYD
- KZT
- LAK
- LBP
- LKR
- LRD
- LSL
- LYD
- MAD
- MDL
- MGA
- MKD
- MMK
- MNT
- MOP
- MRU
- MUR
- MVR
- MWK
- MXN
- MYR
- MZN
- NAD
- NGN
- NIO
- NOK
- NPR
- NZD
- OMR
- PAB
- PEN
- PGK
- PHP
- PKR
- PLN
- PYG
- QAR
- RON
- RSD
- RUB
- RWF
- SAR
- SBD
- SCR
- SDG
- SEK
- SGD
- SHP
- SOS
- SRD
- SSP
- STN
- SYP
- SZL
- THB
- TJS
- TMT
- TND
- TOP
- TRY
- TTD
- TWD
- TZS
- UAH
- UGX
- USD
- UYU
- UZS
- VES
- VND
- VUV
- WST
- XAF
- XCD
- XCG
- XOF
- XPF
- YER
- ZAR
- ZMW
- ZWL
description: An alphabetic ISO-4217 currency code.
externalDocs:
description: Find more info here.
url: https://www.iso.org/iso-4217-currency-codes.html
example: EUR
EnhancedDataDestinationAddressInput:
type: object
description: Must be provided if shipment is involved and captured on the invoice
properties:
countryCode:
oneOf:
- $ref: '#/components/schemas/components-schemas-CountryCodeAlpha3'
- $ref: '#/components/schemas/components-schemas-CountryCodeAlpha2'
- $ref: '#/components/schemas/components-schemas-CountryCodeNumeric'
postalCode:
allOf:
- description: Destination postal code.
- $ref: '#/components/schemas/openapi_components-schemas-postalCode'
errorType:
type: string
description: 'A relative URI reference, this property can be used to perform automated error handling.
'
RefundAction:
type: object
description: Action for refunding a charge
required:
- key
- chargeKey
- created
- version
- type
- status
- amount
- authorizationResponse
properties:
type:
type: string
enum:
- refund
key:
$ref: '#/components/schemas/actionKey'
chargeKey:
$ref: '#/components/schemas/chargeKey'
refundChargeKey:
$ref: '#/components/schemas/refundChargeKey'
reference:
$ref: '#/components/schemas/actionReference'
amount:
$ref: '#/components/schemas/common_Amount'
status:
type: object
required:
- authorization
properties:
authorization:
type: string
enum:
- approved
- declined
clearAfter:
$ref: '#/components/schemas/clearAfter'
authorizationResponse:
$ref: '#/components/schemas/authorizationResponseForAuthorizationAndRefundActions'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
version:
$ref: '#/components/schemas/schemas-version'
authorizationIsoFieldsBancontactWithDiscriminator:
allOf:
- type: object
required:
- network
properties:
network:
type: string
enum:
- bancontact
- $ref: '#/components/schemas/commonIsoFields'
authorizationResponseForReversalAction:
type: object
description: 'Network-specific details from the authorization response.
Actions created before 2023-10-07 will have the `network` property and other remaining properties as `unknown`.
'
discriminator:
propertyName: network
mapping:
american-express: '#/components/schemas/authorizationIsoFieldsAmericanExpressWithDiscriminator'
bancontact: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
diners: '#/components/schemas/authorizationIsoFieldsDinersWithDiscriminator'
discover: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
mastercard: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
visa: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
unknown: '#/components/schemas/authorizationIsoFieldsUnknown'
oneOf:
- $ref: '#/components/schemas/authorizationIsoFieldsAmericanExpressWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsDinersWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
- $ref: '#/components/schemas/authorizationIsoFieldsUnknown'
enhancedDataInput:
type: object
additionalProperties: false
description: An optional object for submitting Level 2 (tax and order references) and Level 3 (granular line-item details) payment data. Providing this data can qualify transactions for reduced interchange rates. VISA MASTERCARD EXPERIMENTAL
required:
- taxAmount
properties:
taxAmount:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: Total amount of Sales Tax or Value Added Tax (VAT) collected in minor units. Enter 0 if no tax is collected.
example: 300
customerCode:
type: string
minLength: 1
maxLength: 25
description: A code used to identify the customer or consumer.
example: REF12345
customerTaxId:
type: string
minLength: 1
maxLength: 13
description: Customer's tax registration or VAT number.
destinationAddress:
$ref: '#/components/schemas/EnhancedDataDestinationAddressInput'
discountAmount:
type: integer
format: int64
minimum: 0
maximum: 999999999999
description: Total amount of discount at invoice level in minor units. Excludes any discount amounts defined at line item level.
example: 50
invoiceNumber:
type: string
minLength: 1
maxLength: 25
description: Invoice number for the transaction.
orderDate:
type: string
format: date
description: Date the order was placed.
example: '2026-05-01'
purchaseOrderNumber:
type: string
minLength: 1
maxLength: 13
description: Purchase order number for the transaction.
shippingAddress:
$ref: '#/components/schemas/EnhancedDataShippingAddress'
timeOfPurchase:
type: string
pattern: ^([0-1][0-9]|2[0-3])[0-5][0-9]$
minLength: 4
maxLength: 4
description: Local transaction time in HHMM format.
example: '1402'
lineItems:
type: array
minItems: 1
maxItems: 100
description: Array of line items.
items:
$ref: '#/components/schemas/EnhancedDataLineItem'
ChargeRefund:
type: object
additionalProperties: false
description: 'Refund a Charge
'
properties:
refundAmount:
$ref: '#/components/schemas/RefundAmount'
reference:
$ref: '#/components/schemas/actionReference'
clearAfter:
$ref: '#/components/schemas/clearAfter'
dynamicDescriptor:
$ref: '#/components/schemas/schemas-DynamicDescriptor'
createRefundCharge:
$ref: '#/components/schemas/createRefundCharge'
clearingMode:
$ref: '#/components/schemas/refundClearingMode'
examples:
components-examples-InternalServerErrorExample:
value:
type: /silverflow/problems/internal-server-error
title: Internal Server Error
status: 500
detail: The server encountered an unexpected condition.
instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
partial_Response:
summary: Partial refund
value:
type: offline-refund
key: act-1e1dA2fgs1YTUhlhyPOp
chargeKey: chg-1e1dAHhgstYTUhlphPzZ
reference: my-refund-123
amount:
value: 3218
currency: EUR
clearAfter: '2023-11-21T14:15:22Z'
created: '2023-11-20T10:03:01Z'
version: 1
ClearingAlreadySubmittedExample:
value:
type: /silverflow/problems/charge/clearing-already-submitted
title: Clearing Already Submitted
status: 409
detail: Cannot cancel the referenced charge because the clearing has already been submitted.
instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
UnexpectedClearingModeErrorExample:
value:
type: /silverflow/problems/charge/unexpected-clearing-mode
title: Cannot cancel or refund charge with unexpected clearingMode.
status: 409
detail: The clearingMode is 'manual', but expected 'auto'.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
examples-AuthenticationRequiredExample:
value:
type: /silverflow/problems/authentication-required
title: Authentication Required
status: 401
detail: Authentication Required
instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
TemporaryServerErrorExample:
value:
type: /silverflow/problems/temporary-server-error
title: Temporary Server Error
status: 503
detail: Temporary Server Error. Please retry later.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
UnexpectedIntentErrorExample:
value:
type: /silverflow/problems/charge/unexpected-intent
title: Cannot increment charge with unexpected type.intent.
status: 409
detail: The type.intent is 'refund', but expected 'reservation' or 'purchase' or 'account-status'.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
UnexpectedAuthorizationErrorExample:
value:
type: /silverflow/problems/charge/unexpected-authorization-status
title: Unexpected Authorization Status
status: 409
detail: The status.authorization is 'declined', but expected 'approved' or 'expired'.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
NonMatchingIdempontentRequestErrorExample:
value:
type: /silverflow/problems/idempotency/request-mismatch
title: Idempotent Request Mismatch
status: 409
detail: The retried request does not have the same body or URL as the initial request.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
examples-EntityNotFoundErrorExample:
value:
type: /silverflow/problems/entity-not-found
title: Not Found
status: 404
detail: The charge with key 'chg-124gasduIEAFDS2boU1f3' was not found.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
IdempotentRequestIsStillBeingProcessedExample:
value:
type: /silverflow/problems/idempotency/request-is-still-being-processed
title: Request Is Still Being Processed
status: 409
detail: The previous request with idempotency key '28gKCluIEKp8jVboUyr2' is still being processed. Please retry.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
InvalidCardErrorExample:
value:
type: /silverflow/problems/card/invalid
title: Invalid Card
status: 409
detail: The card range for the provided card could not be found.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
UnexpectedClearingStatusErrorExample:
value:
type: /silverflow/problems/charge/unexpected-clearing-status
title: Cannot cancel or refund charge with unexpected status.clearing.
status: 409
detail: The status.clearing is 'cancelled', but expected 'none' or 'pending' or 'submitted' or 'completed'.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
IncompatibleCardNetworkForOperationExample:
value:
type: /silverflow/problems/charge/incompatible-card-network-for-operation
title: Incompatible Network For Operation
status: 409
detail: Operation 'reverse' is not supported for network 'bancontact'
instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
examples-ForbiddenErrorExample:
value:
type: /silverflow/problems/forbidden
title: Forbidden
status: 403
detail: 'Authenticated user ''apk-33GjasQdWl4781OsErvi'' is missing the following permission(s): charges:Create.'
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
components-examples-InvalidInputErrorExample:
value:
type: /silverflow/problems/invalid-input
title: Invalid Input
status: 400
detail: The request does not adhere to the defined API schema.
instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
validationErrors:
- path: /body/card/number
message: must have required property 'number'
errorCode: required.openapi.validation
ChargeInvalidOperationErrorExample:
value:
type: /silverflow/problems/charge/invalid-operation
title: Invalid Operation on Charge
status: 409
detail: The charge with key 'chg-1e8gKCluVboUyr2' can no longer be offline refunded since it has been more than 6 months since it was created.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
ChargeTooOldForClearingErrorExample:
value:
type: /silverflow/problems/charges/invalid-charge
title: Invalid Charge
status: 409
detail: The charge with key 'chg-1e8gKCluVboUyr2' can no longer be cleared since it has been more than 6 months since it was authorized.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
UnexpectedMessageSystemExample:
value:
type: /silverflow/problems/bin/unexpected-message-system
title: Unexpected Message System
status: 409
detail: The merchant acceptor uses a BIN with message system 'SMS', expected 'DMS'.
instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
ClearingCurrentZeroAmountErrorExample:
value:
type: /silverflow/problems/charge/cannot-clear-zero-amount
title: Cannot Clear Zero Amount
status: 409
detail: Attempted to clear the full current amount of the charge with key 'chg-1e8gKCluVboUyr2', however, the currently authorized amount is 0.
instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
partial_Request:
summary: Partial refund
value:
amount: 3218
reference: my-refund-123
clearAfter: '2023-11-21T14:15:22Z'
dynamicDescriptor:
merchantName: Annas Candy Stand
merchantCity: Amsterdam
InvalidAmountErrorExample:
value:
type: /silverflow/problems/charge/invalid-amount
title: Cannot reverse charge with invalid replacement amount.
status: 409
detail: The reversal amount of '10' was greater than the original charge amount of '5'.
instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
UnexpectedRefundStatusErrorExample:
value:
type: /silverflow/problems/charge/unexpected-refunds-status
title: Cannot cancel or refund charge with unexpected status.refunds.
status: 409
detail: The status.refund is 'approved', but expected 'none'.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
TooManyRequestsErrorExample:
value:
type: /silverflow/problems/too-many-requests
title: Too Many Requests
status: 429
detail: You have exceeded the rate limit. Please try again after the specified delay.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
parameters:
components-parameters-offsetToken:
name: offsetToken
description: The offset token. This token is returned in the response of previous request.
in: query
required: false
schema:
$ref: '#/components/schemas/components-schemas-offsetToken'
IdempotencyKey:
in: header
name: Idempotency-Key
schema:
type: string
description: 'This key is used to deduplicate requests that are retried. For more information see the section on [Idempotency](https://docs.silverflow.com/guides/idempotency).
'
minLength: 1
example: 28gKCluIEKp8jVboUyr2
required: false
chargeKey:
name: chargeKey
in: path
required: true
description: 'Uniquely identifies a charge.
'
schema:
$ref: '#/components/schemas/chargeKey'
actionKey:
name: actionKey
in: path
required: true
description: 'Uniquely identifies an action.
'
schema:
$ref: '#/components/schemas/actionKey'
limit:
name: limit
description: The number of items to return
in: query
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 100
default: 10
example: 1
responses:
TemporaryServerError:
description: Temporary Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/TemporaryServerErrorDetails'
examples:
TemporaryServerErrorExample:
$ref: '#/components/examples/TemporaryServerErrorExample'
responses-InvalidInputError:
description: The request body was malformed
content:
application/json:
schema:
$ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
examples:
InvalidInputErrorExample:
$ref: '#/components/examples/components-examples-InvalidInputErrorExample'
EntityNotFoundError:
description: The requested resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/schemas-EntityNotFoundErrorDetails'
examples:
EntityNotFoundErrorExample:
$ref: '#/components/examples/examples-EntityNotFoundErrorExample'
components-responses-TooManyRequestsError:
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsErrorDetails'
examples:
TooManyRequestsErrorExample:
$ref: '#/components/examples/TooManyRequestsErrorExample'
components-responses-ForbiddenError:
description: The authenticated client is forbidden to make the request for the resource identified.
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorDetails'
examples:
ForbiddenErrorExample:
$ref: '#/components/examples/examples-ForbiddenErrorExample'
openapi_components-responses-UnauthorizedError:
description: Authentication information is missing or invalid
headers:
WWW_Authenticate:
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorDetails'
examples:
AuthenticationRequired:
$ref: '#/components/examples/examples-AuthenticationRequiredExample'
responses-InternalServerError:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorDetails'
examples:
InternalServerErrorExample:
$ref: '#/components/examples/components-examples-InternalServerErrorExample'
securitySchemes:
ApiKey:
description: "The primary method of authenticating to the Silverflow API is through API keys.\n\nAPI keys can be created by calling the [createApiKey](#operation/createApiKey) endpoint. You can create up to 40 API keys and also update and delete them, allowing for _credential rotation_.\n\nThe _Agent Activation_ process will generate an initial API Key for you. See [Activate Agent](#section/Getting-Started).\n\nA call to the [createApiKey](#operation/createApiKey) endpoint will return the following structure:\n\n```json\n{\n \"key\": \"apk-1wtRxni5IsPsSpBLWpwr\",\n \"status\": \"active\",\n \"agentKey\": \"cgt-1wtRvFLIjDOyyUR5Q2LB\",\n \"description\": \"Data lake API key\",\n \"permissions\": [\n \"charges:List\",\n \"reports:All\"\n ],\n \"created\": \"2021-06-22T11:21:45.115Z\",\n \"secret\": \"FWtnOOHAjbD6rNxWWEeVOCj7JXSEPGJQ\",\n \"version\": 1\n}\n```\n\n> **Important:** The `secret` is only returned once in the response to the `createApiKey` call.\n\nOnce created, the `key` and `secret` fields from the API key must be used in the HTTP `Authorization` header using the `Basic` scheme.\nThe Basic scheme requires a **username** and **password** to be specified, separated by a `:` (colon) and Base64 encoded.\n\nUse the following values from the API key to construct a Basic authentication header:\n\n| Basic field | API key field | Example |\n| ----------- | ------------- | ------- |\n| username | `key` | `apk-1wtRxni5IsPsSpBLWpwr` |\n| password | `secret` | `FWtnOOHAjbD6rNxWWEeVOCj7JXSEPGJQ` |\n\nIn pseudo-code a valid HTTP Basic Authentication header would be constructed as follows:\n\n```ts\nconst apiKeyId = \"apk-1wtRxni5IsPsSpBLWpwr\";\nconst apiKeySecret = \"FWtnOOHAjbD6rNxWWEeVOCj7JXSEPGJQ\";\nconst authnValue = \"Basic \" + base64Encode(apiKeyId + \":\" + apiKeySecret);\nrequest.setHeader(\"Authorization\", authnValue);\n```\n\nUsing the values from the example a valid HTTP request would look like the following:\n\n```http\nGET /v1/agents/current HTTP/1.1\nAccept: application/json\nAuthorization: Basic YXBrLTF3dFJ4bmk1SXNQc1NwQkxXcHdyOkZXdG5PT0hBamJENnJOeFdXRWVWT0NqN0pYU0VQR0pR\n```\n\nMore information on the Basic scheme can be found in [RFC-7617 - The 'Basic' HTTP Authentication Scheme](https://datatracker.ietf.org/doc/html/rfc7617)."
type: http
scheme: basic
BearerToken:
description: 'Bearer tokens are temporary security credentials that can be used to authorize ''third parties'' (bearers) access to the Silverflow API on behalf of the agent.
These tokens are created by calling the [createAgentBearerToken](#operation/createAgentBearerToken) endpoint.
Once created the `token` field must be used in the HTTP `Authorization` header using the `Bearer` scheme.
Here''s an example of an HTTP request with a bearer token:
```http
GET /v1/merchants/mct-1hPdFhmgaBzMS191nIbJ HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...40EFOgxf_3I6mPZ16bXqHd5tUyApgl0mNOAXPm5AhnA
```
More information on the Bearer scheme can be found in [RFC-6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://datatracker.ietf.org/doc/html/rfc6750).'
type: http
scheme: bearer
bearerFormat: JWT
MutualTLS:
type: apiKey
in: header
name: '-'
description: 'The client must set up mTLS connection with a valid X.509 client certificate signed by a customer-provided CA (certificate authority) that is registered to a specific agent. The customer-provided CA certificate must be shared and added to Silverflow''s trust store prior to calling endpoints.
Certificate validation happens at the transport layer during TLS handshake. Tenant verification is performed by matching the agent key embedded in the client certificate against the agent key embedded in the trusted CA.
'
x-refined-from:
- silverflow-openapi.yml
- silverflow-openapi.yml
x-tagGroups:
- name: ''
tags:
- Introduction
- Release Notes
- name: Accounts
tags:
- Agents
- API Keys
- Bins
- Merchants
- Merchant Acceptors
- Enrollments
- Screenings
- name: Event Notifications
tags:
- Event Subscriptions
- Charges Events
- Disputes Events
- Fraud Notification Events
- Processor Tokens Events
- Network Tokens Events
- Report Events
- Distribution Events
- AMMF Submission Events
- Reconciliation Events
- Clearing Events
- name: 3DS Authentication
tags:
- 3DS Authentication
- name: BEP Authentication
tags:
- BEP Authentication
- name: Tokenization
tags:
- Processor Tokenization
- Network Tokenization
- name: Charges
tags:
- Create Charges
- Create Recurring
- Retrieve Charges
- Charge Actions
- name: Terminal-To-Cloud
tags:
- Create POS Charges
- Retrieve POS Charges
- POS Charge Actions
- name: Card Management
tags:
- Card Management
- name: Disputes
tags:
- Disputes
- Documents
- name: Fraud Notifications
tags:
- Fraud Notifications
- name: Card Info
tags:
- Card Info
- name: Currency Conversion Rates
tags:
- Currency Conversion Rates
- name: Fees
tags:
- Fees
- name: Reconciliation
tags:
- Reconciliation Details
- Network Funds Transfers
- name: Reports
tags:
- Reconciliation Reports
- Settlement Reports
- Card Network Reports
- Dispute Reports
- Fraud Notifications Reports
- Charges Reports
- Scheme Fee Reports
- Retrieve Reports
- Report Scheduling
- Distributions
- name: Transaction Risk Assessment
tags:
- Transaction Risk Assessment
- name: File Subscriptions
tags:
- File Subscriptions