openapi: 3.2.0
info:
title: Silverflow Create Charges API
version: 1.417.0
contact:
name: API Support
email: support@silverflow.com
license:
name: Commercial
description: 'Operations tagged Create Charges 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: Create Charges
description: Create different types of charges.
paths:
/charges:
post:
operationId: createCharge
summary: Create Charge
description: 'Create a new charge.
Optionally providing a 3DS result is supported in case 3DS was done using the
[3DS Authentication endpoint](#operation/create3dsAuthentication) or with an external party.
Diners support is EXPERIMENTAL.
Requires the `charges:Create` permission.
'
tags:
- Create Charges
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
description: 'Create a charge.
'
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeRequest'
examples:
moto:
$ref: '#/components/examples/examples-Request'
3dsprovided:
$ref: '#/components/examples/3ds-provided_Request'
avs:
$ref: '#/components/examples/avs_Request'
recurring:
$ref: '#/components/examples/recurring_Request'
reservation:
$ref: '#/components/examples/reservation_Request'
googlePay:
$ref: '#/components/examples/google-pay_Request'
networkToken:
$ref: '#/components/examples/network-token_Request'
networkToken3ds:
$ref: '#/components/examples/network-token-3ds_Request'
responses:
'201':
description: The created charge
headers:
Location:
description: The URL of the newly created charge
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeResponse'
examples:
moto:
$ref: '#/components/examples/moto_Response'
3dsprovided:
$ref: '#/components/examples/3ds-provided_Response'
avs:
$ref: '#/components/examples/avs_Response'
recurring:
$ref: '#/components/examples/recurring_Response'
reservation:
$ref: '#/components/examples/reservation_Response'
googlePay:
$ref: '#/components/examples/google-pay_Response'
networkToken:
$ref: '#/components/examples/network-token_Response'
networkToken3ds:
$ref: '#/components/examples/network-token-3ds_Response'
'400':
description: Bad Request
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
- $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
examples:
InvalidInputErrorExample:
$ref: '#/components/examples/components-examples-InvalidInputErrorExample'
InvalidRequestErrorExample:
$ref: '#/components/examples/InvalidRequestErrorExample'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
- $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
- $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
- $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/UnexpectedMessageSystem'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/IncompatibleCardErrorDetails'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
- $ref: '#/components/schemas/UnexpectedCurrencyErrorDetails'
examples:
ReferencedEntityNotFoundErrorExample:
$ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
CannotDetermineCardNetworkErrorExample:
$ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
IncompatibleCardNetworkErrorExample:
$ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
BlockedMerchantAcceptorErrorExample:
$ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
BlockedBinErrorExample:
$ref: '#/components/examples/BlockedBinErrorExample'
NonMatchingIdempontentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
UnexpectedMessageSystemExample:
$ref: '#/components/examples/UnexpectedMessageSystemExample'
IncompatibleCardNetworkForOperationErrorExample:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
IncompatibleCardErrorDetails:
$ref: '#/components/examples/IncompatibleCardErrorExample'
IdempotentRequestIsStillBeingProcessedErrorExample:
$ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
UnexpectedCurrencyErrorDetails:
$ref: '#/components/examples/UnexpectedCurrencyErrorExample'
'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/bep:
post:
operationId: createChargeBep
summary: Create BEP Charge
description: 'Create a new charge for an existing and complete BEP authentication.
This will also initiate the [finalization](#operation/finalizeBep) of the BEP authentication flow.
**From November 22, 2026, if a valid card is not found using `card.number` in the request, the response will be a 409 with type `/silverflow/problems/card/invalid`.**
Requires `charges:Create` permission.
'
tags:
- Create Charges
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
description: 'Create a charge.
'
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeCreateBEPRequest'
responses:
'201':
description: The created charge
headers:
Location:
description: The URL of the newly created Charge
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeCreateBEPResponse'
'400':
$ref: '#/components/responses/responses-InvalidInputError'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
- $ref: '#/components/schemas/IncompatibleAuthenticationStatus'
- $ref: '#/components/schemas/UnexpectedMessageSystem'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
examples:
ReferencedEntityNotFoundErrorExample:
$ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
IncompatibleAuthenticationStatusExample:
$ref: '#/components/examples/IncompatibleAuthenticationStatusExample'
UnexpectedMessageSystemExample:
$ref: '#/components/examples/UnexpectedMessageSystemExample'
IncompatibleCardNetworkForOperationErrorExample:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
BlockedBinErrorExample:
$ref: '#/components/examples/BlockedBinErrorExample'
NonMatchingIdempotentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
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/funding:
post:
operationId: createChargeFunding
summary: Create Funding Charge
description: 'Create a new funding charge. For more information on use-cases, [see here](https://docs.silverflow.com/guides/payouts-and-funding#tag/Funding).
Visa DMS support is EXPERIMENTAL.
**NOTE**: This endpoint requires configuration on a per client basis and may be subject to additional approvals and implementation with the card schemes. Contact your Silverflow representative before integrating with this endpoint.
Requires `charges:Create` permission.
'
tags:
- Create Charges
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
description: 'Create a funding charge.
'
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FundingChargeRequest'
examples:
funding:
$ref: '#/components/examples/funding_Request'
responses:
'201':
description: The created funding charge
headers:
Location:
description: The URL of the newly created charge
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/FundingChargeResponse'
examples:
funding:
$ref: '#/components/examples/funding_Response'
'400':
description: Bad Request
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
- $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
examples:
InvalidInputErrorExample:
$ref: '#/components/examples/components-examples-InvalidInputErrorExample'
InvalidRequestErrorExample:
$ref: '#/components/examples/InvalidRequestErrorExample'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
- $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardErrorDetails'
- $ref: '#/components/schemas/IncompatibleMccErrorDetails'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
examples:
ReferencedEntityNotFoundErrorExample:
$ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
NonMatchingIdempontentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
CannotDetermineCardNetworkErrorExample:
$ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
IncompatibleCardNetworkErrorExample:
$ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
IncompatibleCardNetworkForOperationErrorExample:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
BlockedMerchantAcceptorErrorExample:
$ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
BlockedBinErrorExample:
$ref: '#/components/examples/BlockedBinErrorExample'
IncompatibleCardErrorDetails:
$ref: '#/components/examples/IncompatibleCardErrorExample'
IncompatibleMccErrorExample:
$ref: '#/components/examples/IncompatibleMccErrorExample'
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/payout:
post:
operationId: createChargePayout
summary: Create Payout Charge
description: 'Create a new payout charge. For more information on use-cases, [see here](https://docs.silverflow.com/guides/payouts-and-funding#tag/Payouts).
**NOTE:** This endpoint requires configuration on a per client basis and may be subject to additional approvals and implementation with the card schemes. Contact your Silverflow representative before integrating with this endpoint.
**Currently only supported for Visa and Mastercard.**
Requires the `charges:CreatePayout` or `charges:Create` permission.
'
tags:
- Create Charges
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
description: 'Create a charge.
'
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PayoutChargeRequest'
examples:
chargePayoutGamingResponse:
$ref: '#/components/examples/payout_Request'
responses:
'201':
description: The created charge
headers:
Location:
description: The URL of the newly created charge
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PayoutChargeResponse'
examples:
chargePayoutGamingResponse:
$ref: '#/components/examples/payout_Response'
'400':
description: Bad Request
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
- $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
examples:
InvalidInputErrorExample:
$ref: '#/components/examples/components-examples-InvalidInputErrorExample'
InvalidRequestErrorExample:
$ref: '#/components/examples/InvalidRequestErrorExample'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
- $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
- $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
- $ref: '#/components/schemas/IncompatibleMccErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardErrorDetails'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
examples:
ReferencedEntityNotFoundErrorExample:
$ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
CannotDetermineCardNetworkErrorExample:
$ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
IncompatibleCardNetworkForOperationErrorExample:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
IncompatibleCardNetworkErrorExample:
$ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
BlockedMerchantAcceptorErrorExample:
$ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
BlockedBinErrorExample:
$ref: '#/components/examples/BlockedBinErrorExample'
NonMatchingIdempontentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
IncompatibleMccErrorExample:
$ref: '#/components/examples/IncompatibleMccErrorExample'
IncompatibleCardErrorDetails:
$ref: '#/components/examples/IncompatibleCardErrorExample'
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/pos:
post:
operationId: createChargePos
summary: Create POS Charge
description: 'Create a new card-present charge.
Requires one of the following permissions:
* `charges:Create`
* `charges:CreatePos`
'
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
tags:
- Create Charges
requestBody:
description: Create a new POS charge.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeCreatePos'
examples:
onlinePin:
$ref: '#/components/examples/online-pin_Request'
manualEntry:
$ref: '#/components/examples/manual-entry_Request'
responses:
'201':
description: The created charge
headers:
Location:
description: The URL of the newly created charge
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeCreatePosResponse'
examples:
onlinePin:
$ref: '#/components/examples/examples-Response'
manualEntry:
$ref: '#/components/examples/manual-entry_Response'
'400':
description: Bad Request
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
- $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
examples:
InvalidInputErrorExample:
$ref: '#/components/examples/components-examples-InvalidInputErrorExample'
InvalidRequestErrorExample:
$ref: '#/components/examples/InvalidRequestErrorExample'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
- $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
- $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/MissingPosAddressErrorDetails'
- $ref: '#/components/schemas/UnexpectedMessageSystem'
- $ref: '#/components/schemas/IncompatibleCardErrorDetails'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
- $ref: '#/components/schemas/UnexpectedCurrencyErrorDetails'
examples:
ReferencedEntityNotFoundErrorExample:
$ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
CannotDetermineCardNetworkErrorExample:
$ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
IncompatibleCardNetworkForOperationErrorExample:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
IncompatibleCardNetworkErrorExample:
$ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
BlockedMerchantAcceptorErrorExample:
$ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
BlockedBinErrorExample:
$ref: '#/components/examples/BlockedBinErrorExample'
NonMatchingIdempontentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
MissingPosAddressProblemExample:
$ref: '#/components/examples/MissingPosAddressErrorExample'
UnexpectedMessageSystemExample:
$ref: '#/components/examples/UnexpectedMessageSystemExample'
IncompatibleCardErrorDetails:
$ref: '#/components/examples/IncompatibleCardErrorExample'
IdempotentRequestIsStillBeingProcessedErrorExample:
$ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
UnexpectedCurrencyErrorDetails:
$ref: '#/components/examples/UnexpectedCurrencyErrorExample'
'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/atm:
post:
operationId: createChargeAtm
summary: Create ATM Charge [EXPERIMENTAL]
description: 'Create a new ATM withdrawal charge.
Requires one of the following permissions:
* `charges:Create`
* `charges:CreateAtm`
'
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
tags:
- Create Charges
requestBody:
description: Create a new ATM charge.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeCreateAtm'
responses:
'201':
description: The created ATM charge
headers:
Location:
description: The URL of the newly created charge
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeCreateAtmResponse'
'400':
description: Bad Request
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
- $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
examples:
InvalidInputErrorExample:
$ref: '#/components/examples/components-examples-InvalidInputErrorExample'
InvalidRequestErrorExample:
$ref: '#/components/examples/InvalidRequestErrorExample'
'401':
$ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
'403':
$ref: '#/components/responses/components-responses-ForbiddenError'
'409':
description: Conflict
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
- $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
- $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
- $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
- $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
- $ref: '#/components/schemas/MissingPosAddressErrorDetails'
- $ref: '#/components/schemas/IncompatibleMccErrorDetails'
- $ref: '#/components/schemas/IncompatibleCardErrorDetails'
- $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
examples:
ReferencedEntityNotFoundErrorExample:
$ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
CannotDetermineCardNetworkErrorExample:
$ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
IncompatibleCardNetworkForOperationExample:
$ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
IncompatibleCardNetworkErrorExample:
$ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
BlockedMerchantAcceptorErrorExample:
$ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
NonMatchingIdempontentRequestErrorExample:
$ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
MissingPosAddressProblemExample:
$ref: '#/components/examples/MissingPosAddressErrorExample'
IncompatibleMccErrorExample:
$ref: '#/components/examples/IncompatibleMccErrorExample'
IncompatibleCardErrorExample:
$ref: '#/components/examples/IncompatibleCardErrorExample'
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
components:
schemas:
PinBlockIso4:
type: object
title: ISO-4 PIN Block
description: PIN block related data in `ISO-4` format.
additionalProperties: false
required:
- block
- format
- zoneId
- keyId
properties:
format:
type: string
description: Indicates the type of PIN block format used.
enum:
- ISO-4
block:
$ref: '#/components/schemas/PinBlockDataIso4'
zoneId:
$ref: '#/components/schemas/PinBlockZoneId'
keyId:
$ref: '#/components/schemas/PinBlockKeyId'
components-schemas-expiryYear:
type: integer
description: 'The year the card expires including the century
'
minimum: 1950
maximum: 2200
ForeignRetailerDisabled:
type: object
description: Transaction does not involve a foreign retailer
required:
- indicator
additionalProperties: false
properties:
indicator:
type: boolean
enum:
- false
description: Specifies if end seller in the transaction is a foreign retailer
terminalEntryMode:
description: "This field indicates the method used for PAN entry on \nthe terminal to initiate the transaction.\n"
type: string
enum:
- contactless
- manual-entry
- chip
- magstripe
- magstripe-fallback
newEmvData:
type: string
description: 'This field contains integrated circuit card (ICC) related binary data that is transmitted from the card issuer to the ICC. This field is formatted as 510 hexadecimal characters, which translates to 255 bytes.
If this field is present in the response message, it should be passed without modification to the ICC.
'
pattern: ^[A-Fa-f0-9]+$
minLength: 1
maxLength: 510
example: 5F2A0209785F34010082027C008407A0000000093510950500000080009A031104119C01009F02060000000043149F090200029F10120210A780030400009F2100000000000000FF9F1A0202509F26082E3EAB17CEEC500C9F2701809F330360A0409F34034403029F3501229F360200169F3704BC75E9B39F4005A00090F0019F4C089F21B02E0EEAC454
PinBlockDataIso4:
type: string
title: ISO-4 Block
description: 'Contains encrypted PIN information, formatted as an `ISO-4` block of 32 hexadecimal characters.
'
pattern: ^[A-Fa-f0-9]+$
minLength: 32
maxLength: 32
example: 32CF86E514CB24FE32CF86E514CB24FE
schemas-ResolverByAcceptorKey:
type: object
additionalProperties: false
required:
- merchantAcceptorKey
description: 'Used to select a merchant acceptor by key.
'
properties:
merchantAcceptorKey:
$ref: '#/components/schemas/components-schemas-acceptorKeyRef'
softPosTerminalCapability:
type: string
enum:
- contactlessChip
- onlinePin
- signature
- noCvm
- oneTap
purposeOfPayment:
type: string
minLength: 1
maxLength: 12
description: 'A code that describes the purpose of payment to classify and report the nature and purpose of the transaction. Refer to Visa documentation for country specific requirements for this field.
'
AtmTerminal:
type: object
description: Details about the ATM terminal.
required:
- id
- capabilities
additionalProperties: false
properties:
id:
type: string
description: ATM terminal's ID
pattern: ^[a-zA-Z0-9]+$
minLength: 1
maxLength: 8
example: ATM001
capabilities:
type: array
description: 'The capabilities of the ATM terminal. This can be one or multiple.
'
minItems: 1
items:
$ref: '#/components/schemas/AtmTerminalCapability'
example:
- contactChip
- contactlessChip
- contactMagStripe
- contactlessMagStripe
charges-pos_PosAuthorizationIsoFields:
type: object
required:
- responseCode
- responseCodeDescription
- networkCode
- systemTraceAuditNumber
- retrievalReferenceNumber
- eci
- networkSpecificFields
description: Object containing the raw values from the ISO8583 response message received from the network.
properties:
responseCode:
$ref: '#/components/schemas/isoFieldResponseCode'
responseCodeDescription:
$ref: '#/components/schemas/isoFieldResponseCodeDescription'
authorizationCode:
$ref: '#/components/schemas/isoFieldAuthorizationCode'
networkCode:
$ref: '#/components/schemas/isoFieldNetworkCode'
systemTraceAuditNumber:
$ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
retrievalReferenceNumber:
$ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
eci:
type: string
enum:
- '00'
networkSpecificFields:
oneOf:
- $ref: '#/components/schemas/amexSpecificFields'
- $ref: '#/components/schemas/discoverSpecificFields'
- $ref: '#/components/schemas/mastercardSpecificFields'
- $ref: '#/components/schemas/visaSpecificFields'
RequestAmountBreakdown:
allOf:
- $ref: '#/components/schemas/BaseAmountBreakdown'
- type: object
properties:
cashback:
allOf:
- description: 'The cashback amount included in the total transaction `value` in minor units.
For example `$12.34` should be encoded as `1234`.
The following requirements apply:
- `amount.breakdown.cashback` is greater than 0.
- `type.intent` must be `purchase`.
- `emvData` must be present and include valid data for tag `9F03`.
- `partialApproval` is not requested.
**Currently only supported for Visa and Mastercard.**
'
- $ref: '#/components/schemas/posAmountValue'
emvData:
type: string
description: 'This field contains integrated circuit card (ICC) related binary data that is transmitted from the ICC to the card issuer and from the card issuer to the ICC. This field is formatted as 510 hexadecimal characters, which translates to 255 bytes.
'
pattern: ^[A-Fa-f0-9]+$
minLength: 1
maxLength: 510
example: 5F2A0209785F34010082027C008407A0000000093510950500000080009A031104119C01009F02060000000043149F090200029F10120210A780030400009F2100000000000000FF9F1A0202509F26082E3EAB17CEEC500C9F2701809F330360A0409F34034403029F3501229F360200169F3704BC75E9B39F4005A00090F0019F4C089F21B02E0EEAC454
expiryMonthOptional:
allOf:
- $ref: '#/components/schemas/expiryMonth'
description: 'The month the card expires. January is 1. Must be provided together with `expiryYear`, or omitted alongside it.
'
AuthenticationExempt:
type: object
required:
- compliance
- complianceReason
- method
properties:
method:
type: string
enum:
- none
compliance:
type: string
enum:
- exemption
complianceReason:
type: string
enum:
- whitelist
- auto
- mit
- tra
- recurring
- low-value
- delegation
- scp
- wip
fundingPayoutSca:
oneOf:
- $ref: '#/components/schemas/FundingPayoutThreeDsAuthentication'
- $ref: '#/components/schemas/ScaBEP'
- $ref: '#/components/schemas/AuthenticationOutOfScope'
- $ref: '#/components/schemas/AuthenticationExempt'
- $ref: '#/components/schemas/ScaMit'
FundingIntent:
description: 'The intention of the cardholder
'
type: string
enum:
- funding
IncompatibleMccErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/merchant-acceptor/incompatible-mcc
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Incompatible Merchant Category Code
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
authorizationIsoFieldsVisa:
allOf:
- $ref: '#/components/schemas/commonIsoFields'
- type: object
required:
- networkCode
- systemTraceAuditNumber
- retrievalReferenceNumber
- eci
- networkSpecificFields
properties:
authorizationCode:
$ref: '#/components/schemas/isoFieldAuthorizationCode'
networkCode:
$ref: '#/components/schemas/isoFieldNetworkCode'
systemTraceAuditNumber:
$ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
retrievalReferenceNumber:
$ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
eci:
$ref: '#/components/schemas/isoFieldEciVisa'
networkSpecificFields:
$ref: '#/components/schemas/visaSpecificFields'
AccountNumber:
type: string
description: The account number.
pattern: ^[a-zA-Z0-9 !#$%&'()*+,./:;<=>?@^_`{|}~"\-\[\]\\]+$
minLength: 1
maxLength: 50
example: '5286940020000007'
ChargeResponse:
type: object
required:
- key
- created
- status
- type
- localTransactionDateTime
- merchantAcceptorRef
- card
- amount
- fraudLiability
- authorizationIsoFields
- authentication
- version
description: 'A charge
'
properties:
key:
$ref: '#/components/schemas/chargeKey'
merchantAcceptorRef:
$ref: '#/components/schemas/components-schemas-AcceptorRef'
card:
$ref: '#/components/schemas/OutputCard'
tokenDetails:
$ref: '#/components/schemas/StoredTokenDetails'
amount:
$ref: '#/components/schemas/common_Amount'
cardholderBillingAmount:
$ref: '#/components/schemas/CardholderBillingAmount'
type:
$ref: '#/components/schemas/ResponseChargeType'
clearingMode:
$ref: '#/components/schemas/clearingMode'
status:
$ref: '#/components/schemas/ChargeStatus'
authentication:
$ref: '#/components/schemas/ChargeAuthentication'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionType:
$ref: '#/components/schemas/TransactionType'
transactionReference:
$ref: '#/components/schemas/transactionReference'
fraudLiability:
$ref: '#/components/schemas/fraudLiability'
authorizationIsoFields:
$ref: '#/components/schemas/authorizationIsoFields'
billingAddress:
$ref: '#/components/schemas/BillingAddress'
clearAfter:
$ref: '#/components/schemas/clearAfter'
dynamicDescriptor:
$ref: '#/components/schemas/schemas-DynamicDescriptor'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
allowPartialApproval:
$ref: '#/components/schemas/allowPartialApproval'
foreignRetailer:
$ref: '#/components/schemas/schemas-foreignRetailer'
subMerchant:
$ref: '#/components/schemas/subMerchantResponse'
version:
$ref: '#/components/schemas/schemas-version'
example: 1
threeDsCryptogram:
type: string
description: The 3DS cryptogram provided by the digital wallet. It must be encoded in base64 format (40 bytes).
minLength: 28
maxLength: 28
pattern: ^[\w\/+=]+$
example: 112233445566778899001122334=
isoFieldRetrievalReferenceNumber:
type: string
description: Contents of field 37
example: '131608123456'
DccDisabled:
type: object
description: DCC is not enabled for this transaction
required:
- enabled
additionalProperties: false
properties:
enabled:
type: boolean
enum:
- false
description: Specifies if DCC is enabled for this transaction
charges-payout_AccountNumberType:
description: The type of the `accountNumber`.
type: string
enum:
- card-account
- iban-bank-account
- bic-bank-account
- rtn-bank-account
- email
- phone-number
- wallet-id
- social-network-id
- other
authenticationValue3ds:
type: string
description: Base64 encoded result value from the 3DS transaction. Note that Mastercard and Visa use a different underlying format.
pattern: ^[\w\/+=]+$
minLength: 1
maxLength: 28
example: kANBCCDDYJYjadADpka8KoQMqS
AtmTerminalCapability:
type: string
description: ATM terminal capabilities subset
enum:
- contactChip
- contactlessChip
- contactMagStripe
- contactlessMagStripe
openapi_components-schemas-line1:
type: string
pattern: ^[\w -,\.\-\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
minLength: 1
maxLength: 120
description: 'Address line 1
'
example: Langtown Road
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
FundingPayoutThreeDsAuthenticationResult:
type: object
required:
- type
- authenticationValue
- directoryServerTransId
description: 'A 3DS result from either the [3DS Authentication endpoint](#operation/create3dsAuthentication) or an external party.
'
properties:
type:
$ref: '#/components/schemas/result3DS'
version:
description: 'The version of the 3DS protocol used for authentication.
**Required for AMEX transactions.**
'
type: string
enum:
- 2.2.0
authenticationValue:
$ref: '#/components/schemas/authenticationValue3ds'
directoryServerTransId:
type: string
description: Transaction ID retrieved from the Directory Server (DS).
pattern: ^[\w +-=.,:;!?$@()]+$
minLength: 1
maxLength: 36
example: 5340af8a-5505-4bf6-abcd-123412341234
eci:
type: string
description: 'ECI value from the 3DS provider. Use this to explicitly override the ECI value in Visa authorization messages.
This field has no impact for any other network. VISA
'
pattern: ^\d+$
minLength: 2
maxLength: 2
example: '05'
scaExemptionRequest:
type: string
description: "This field can be used to indicate an acquirer SCA exemption request. Silverflow supports several SCA exemption request use cases, listed below:\n - Transaction risk analysis (TRA)\n - Low value payment (LVP)\n - Secure corporate payment (SCP)\n\nPlease note that these exemption requests may or may not be honored by the issuer.\n"
enum:
- scp
- low-value
- tra
charges-funding_Identification:
description: Identification used to verify sender or receiver.
type: object
required:
- value
- type
properties:
type:
description: 'Type of identification.
'
type: string
enum:
- date-of-birth
value:
description: 'The value used for identification.
For `type` `date-of-birth`, the value should be provided in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).
'
type: string
minLength: 1
maxLength: 35
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'
dinersSpecificFields:
type: object
description: Diners specific ISO8583 raw values
required:
- network
properties:
network:
type: string
description: Card network providing these fields
enum:
- diners
cvvIndicator:
type: string
description: Contents field 44, subfield 2
networkReferenceId:
type: string
description: Contents field 123
expiryMonth:
type: integer
description: 'The month the card expires. January is 1
'
minimum: 1
maximum: 12
ChargeCreatePos:
type: object
required:
- merchantAcceptorResolver
- card
- amount
- type
- terminal
description: 'Create a POS charge
'
properties:
merchantAcceptorResolver:
$ref: '#/components/schemas/schemas-AcceptorResolver'
card:
$ref: '#/components/schemas/PosCardInput'
amount:
$ref: '#/components/schemas/RequestPosAmount'
type:
$ref: '#/components/schemas/ChargePosType'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionReference:
$ref: '#/components/schemas/transactionReference'
track2Data:
$ref: '#/components/schemas/track2Data'
emvData:
$ref: '#/components/schemas/emvData'
cardSequenceNumber:
$ref: '#/components/schemas/cardSequenceNumber'
pinBlock:
$ref: '#/components/schemas/PinBlock'
terminal:
$ref: '#/components/schemas/Terminal'
allowPartialApproval:
$ref: '#/components/schemas/allowPartialApproval'
subMerchant:
$ref: '#/components/schemas/subMerchant'
clearingMode:
$ref: '#/components/schemas/clearingMode'
clearAfter:
$ref: '#/components/schemas/clearAfter'
TokenDetailsDigitalWallet:
allOf:
- $ref: '#/components/schemas/StoredTokenDetailsDigitalWallet'
- type: object
required:
- threeDsCryptogram
properties:
threeDsCryptogram:
$ref: '#/components/schemas/threeDsCryptogram'
AtmAuthorizationIsoFields:
type: object
required:
- responseCode
- responseCodeDescription
- networkCode
- systemTraceAuditNumber
- retrievalReferenceNumber
- networkSpecificFields
description: Object containing the raw values from the ISO8583 response message received from the network for ATM transactions.
properties:
responseCode:
$ref: '#/components/schemas/isoFieldResponseCode'
responseCodeDescription:
$ref: '#/components/schemas/isoFieldResponseCodeDescription'
authorizationCode:
$ref: '#/components/schemas/isoFieldAuthorizationCode'
networkCode:
$ref: '#/components/schemas/isoFieldNetworkCode'
systemTraceAuditNumber:
$ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
retrievalReferenceNumber:
$ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
networkSpecificFields:
oneOf:
- $ref: '#/components/schemas/mastercardSpecificFields'
- $ref: '#/components/schemas/visaSpecificFields'
ThreeDsAuthenticationResult:
type: object
required:
- authenticationValue
- directoryServerTransId
description: 'A 3DS result from either the [3DS Authentication endpoint](#operation/create3dsAuthentication) or an external party.
'
properties:
version:
description: 'The 3DS protocol version which has been used to perform 3DS.
**Required for American Express transactions.**
'
type: string
enum:
- 2.2.0
authenticationValue:
$ref: '#/components/schemas/authenticationValue3ds'
directoryServerTransId:
type: string
description: Transaction ID retrieved from the Directory Server (DS).
pattern: ^[\w +-=.,:;!?$@()]+$
minLength: 1
maxLength: 36
example: 5340af8a-5505-4bf6-abcd-123412341234
eci:
type: string
description: 'ECI value from the 3DS provider. Use this to explicitly override the ECI value in Visa authorization messages.
This field has no impact for any other network. VISA
'
pattern: ^\d+$
minLength: 2
maxLength: 2
example: '05'
BlockedMerchantAcceptorErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/merchant-acceptor/blocked
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Blocked Merchant Acceptor
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
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.
components-schemas-acceptorKey:
description: Uniquely identifies a merchant acceptor.
type: string
pattern: ^mac-[a-zA-Z0-9]+$
minLength: 5
maxLength: 120
example: mac-1eOdAHhgstYTUhlphPFf
ClearingStatus:
type: string
description: Clearing status of the charge
enum:
- none
- manual
- pending
- completed
- cancelled
- abandoned
example: pending
accountSource:
description: 'Indicates the type of account from which the funds should be withdrawn.
'
type: string
enum:
- unspecified
- savings
- checking
- credit
schemas-NameOfPeopleAndPlaces:
type: string
pattern: ^[\w -,\.\-\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
minLength: 1
maxLength: 120
example: Name
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'
fraudLiability:
description: Which party is liable in case of fraud.
type: string
enum:
- acquirer
- issuer
cardSequenceNumber:
type: string
description: 'Distinguishes among separate cards having the same PAN.
This is required if EMV tag 5F34 is present/personalized on the card chip.
'
pattern: ^[0-9]+$
minLength: 1
maxLength: 3
example: '001'
schemas-merchantKey:
description: Uniquely identifies a merchant.
type: string
pattern: ^mct-[a-zA-Z0-9]+$
minLength: 5
maxLength: 120
example: mct-1234abcdef123
StoredTokenDetailsDigitalWallet:
type: object
required:
- type
properties:
type:
type: string
description: Details about a token from Apple Pay or Google Pay
enum:
- apple-pay
- google-pay
eci:
allOf:
- description: 'Zero-padded e-commerce indicator.
Only supported for VISA MASTERCARD AMEX.
'
- $ref: '#/components/schemas/schemas-eci'
AtmCardInput:
type: object
description: Card details for ATM transactions.
additionalProperties: false
required:
- number
- expiryMonth
- expiryYear
properties:
number:
type: string
description: The primary account number (PAN) of the card.
pattern: ^[0-9]+$
minLength: 12
maxLength: 19
example: '5413330089010640'
expiryMonth:
type: integer
description: The expiry month of the card (1-12).
minimum: 1
maximum: 12
example: 12
expiryYear:
type: integer
description: The expiry year of the card (four digits).
minimum: 1950
maximum: 2200
example: 2025
errorInstance:
type: string
description: 'A reference that identifies the specific occurrence of the error. The instance is unique for every error.
'
components-schemas-AcceptorRef:
type: object
description: Reference key and status of the acceptor
required:
- key
- version
properties:
key:
$ref: '#/components/schemas/components-schemas-acceptorKey'
version:
$ref: '#/components/schemas/schemas-version'
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
localTransactionDateTime:
type: string
format: iso-8601-date-time
description: Date and time of the transaction in the local timezone.
authorizationIsoFieldsDiscover:
allOf:
- $ref: '#/components/schemas/commonIsoFields'
- type: object
required:
- networkCode
- systemTraceAuditNumber
- retrievalReferenceNumber
- eci
- networkSpecificFields
properties:
authorizationCode:
$ref: '#/components/schemas/isoFieldAuthorizationCode'
networkCode:
$ref: '#/components/schemas/isoFieldNetworkCode'
systemTraceAuditNumber:
$ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
retrievalReferenceNumber:
$ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
eci:
$ref: '#/components/schemas/isoFieldEciDiscover'
networkSpecificFields:
$ref: '#/components/schemas/discoverSpecificFields'
PayoutOrder:
description: 'The method used to place the order.
'
type: string
enum:
- checkout
components-schemas-CountryCodeAlpha2:
type: object
required:
- alpha2
additionalProperties: false
properties:
alpha2:
$ref: '#/components/schemas/schemas-countryCodeAlpha2'
methodBEP:
description: 'Indicates the method that was used to comply to SCA.
'
type: string
enum:
- bep
CardInputWithOptionalExpiryDate:
type: object
title: Card Input With Optional Expiry Date
required:
- number
additionalProperties: false
properties:
number:
$ref: '#/components/schemas/components-schemas-pan'
expiryMonth:
$ref: '#/components/schemas/expiryMonthOptional'
expiryYear:
$ref: '#/components/schemas/expiryYearOptional'
cvc:
$ref: '#/components/schemas/schemas-cvc'
holderName:
$ref: '#/components/schemas/schemas-holderName'
PosCardInput:
type: object
required:
- number
- expiryMonth
- expiryYear
additionalProperties: false
description: Card data
properties:
number:
$ref: '#/components/schemas/components-schemas-pan'
expiryMonth:
$ref: '#/components/schemas/expiryMonth'
expiryYear:
$ref: '#/components/schemas/components-schemas-expiryYear'
createProcessorToken:
type: boolean
default: false
description: 'When set to `true`, Silverflow will [create a processor token](https://docs.silverflow.com/guides/card-tokenization) for the provided `card` and return a processor token key in the response field `card.processorTokenKey`.
**This flag is non-blocking.** When failing to create a processor token, the authorization will take place as usual and no `card.processorTokenKey` will be returned.
'
ResponseAmountBreakdown:
allOf:
- $ref: '#/components/schemas/BaseAmountBreakdown'
- type: object
properties:
cashback:
allOf:
- description: 'The cashback amount included in the total transaction `value` in minor units.
For example `$12.34` should be encoded as `1234`.
'
- $ref: '#/components/schemas/posAmountValue'
FundingPayoutThreeDsAuthenticationResultResponse:
type: object
required:
- type
readOnly: true
description: Object containing the information of a 3DS transaction.
properties:
type:
$ref: '#/components/schemas/result3DS'
version:
description: 'The 3DS protocol version which has been used to perform 3DS.
This information is only available when it has been provided in the request.
'
type: string
enum:
- 2.2.0
directoryServerTransId:
type: string
description: Transaction ID retrieved from the Directory Server
example: 5340af8a-5505-4bf6-abcd-123412341234
commonIsoFields:
type: object
required:
- responseCode
- responseCodeDescription
properties:
responseCode:
$ref: '#/components/schemas/isoFieldResponseCode'
responseCodeDescription:
$ref: '#/components/schemas/isoFieldResponseCodeDescription'
PayoutChargeRequest:
type: object
required:
- merchantAcceptorResolver
- card
- amount
- type
additionalProperties: false
description: 'Create a payout charge
'
properties:
merchantAcceptorResolver:
$ref: '#/components/schemas/schemas-AcceptorResolver'
card:
$ref: '#/components/schemas/CardWithOptionalExpiryDate'
amount:
$ref: '#/components/schemas/common_Amount'
type:
$ref: '#/components/schemas/PayoutChargeType'
initialTransactionReferences:
description: Network-specific identifiers from the original authorization.
oneOf:
- $ref: '#/components/schemas/VisaPayoutInitialTransactionReference'
threeDsAuthenticationResult:
$ref: '#/components/schemas/FundingPayoutThreeDsAuthenticationResult'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionReference:
$ref: '#/components/schemas/transactionReference'
fundingSource:
$ref: '#/components/schemas/PayoutFundingSource'
sender:
$ref: '#/components/schemas/PayoutSenderInput'
receiver:
$ref: '#/components/schemas/PayoutReceiverInput'
transactionType:
$ref: '#/components/schemas/PayoutTransactionType'
purposeOfPayment:
$ref: '#/components/schemas/purposeOfPayment'
dynamicDescriptor:
$ref: '#/components/schemas/schemas-DynamicDescriptor'
clearingMode:
allOf:
- description: "The clearing method for the charge. \n- `auto`: The charge is cleared automatically as soon as possible. To delay clearing, provide a `clearAfter` timestamp.\n- `manual`: The charge must be manually cleared later.\n\n**Only supported for MASTERCARD.**\n"
- $ref: '#/components/schemas/clearingMode'
clearAfter:
allOf:
- description: 'If provided, clearing will not occur before this point in time. This is only supported when using `clearingMode` `auto`.
The value may be at most 6 months in the future from when the charge was created.
This field is only supported for MASTERCARD
'
- $ref: '#/components/schemas/clearAfter'
riskAssessmentKey:
$ref: '#/components/schemas/riskAssessmentKey'
foreignRetailer:
$ref: '#/components/schemas/schemas-foreignRetailer'
subMerchant:
$ref: '#/components/schemas/subMerchant'
IncompatibleAuthenticationStatus:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/incompatible-authentication-status
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Incompatible Authentication Status
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
SenderReceiverType:
type: string
enum:
- consumer
- organization
- not-applicable
schemas-bepKey:
description: Uniquely identifies a bep payment
type: string
pattern: ^bep-[a-zA-Z0-9]+$
example: bep-1e1dAHhgstYTUhlphPzZ
Status:
type: object
required:
- authentication
- authorization
- clearing
description: 'The status property provides a high-level representation of the lifecycle of a charge.
For a complete history, the actions should be used.
'
properties:
authentication:
$ref: '#/components/schemas/AuthenticationStatus'
authorization:
$ref: '#/components/schemas/AuthorizationStatus'
clearing:
$ref: '#/components/schemas/ClearingStatus'
UnexpectedCurrencyErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/bin/unexpected-currency
title:
$ref: '#/components/schemas/errorTitle'
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
isoFieldAuthorizationCode:
type: string
description: Contents of field 38
example: 4A4316
BaseTerminal:
type: object
required:
- id
- attended
properties:
id:
type: string
description: Terminal's ID
pattern: ^[a-zA-Z0-9]+$
minLength: 1
maxLength: 8
example: AAFF
attended:
type: boolean
description: Whether the terminal is attended or not.
authorizationIsoFields:
description: Object containing the raw values from the ISO8583 response message received from the network.
oneOf:
- $ref: '#/components/schemas/authorizationIsoFieldsAmericanExpress'
- $ref: '#/components/schemas/authorizationIsoFieldsBancontact'
- $ref: '#/components/schemas/authorizationIsoFieldsDiners'
- $ref: '#/components/schemas/authorizationIsoFieldsDiscover'
- $ref: '#/components/schemas/authorizationIsoFieldsMastercard'
- $ref: '#/components/schemas/authorizationIsoFieldsVisa'
SoftPOS:
allOf:
- type: object
required:
- type
properties:
type:
type: string
enum:
- softpos
- $ref: '#/components/schemas/BaseTerminal'
- type: object
required:
- attended
- capabilities
properties:
attended:
type: boolean
enum:
- true
capabilities:
type: array
description: 'The capabilities of the terminal. This can be one or multiple, and if more than one is specified it means that it is capable of all of those things.
'
items:
$ref: '#/components/schemas/softPosTerminalCapability'
example:
- onlinePin
- contactlessChip
- noCvm
- oneTap
StatusPos:
type: object
required:
- authentication
- authorization
- clearing
description: 'The status property provides a high-level representation of the lifecycle of a charge. For a complete history, the actions should be used.
'
properties:
authentication:
type: string
description: Strong Customer Authentication (SCA) status of the charge
enum:
- none
authorization:
type: string
description: 'Authorization status of the charge.
Value ''approved-purchase-amount-only'' is only returned for Mastercard charges using ''amount.breakdown.cashback''.
In this case, only the ''amount.breakdown.baseAmount'' was approved, but not the cashback.
'
enum:
- none
- approved
- approved-partial
- declined
- reversed
- approved-purchase-amount-only
example: approved
clearing:
$ref: '#/components/schemas/ClearingStatus'
FundingAddressInputForReceiver:
type: object
required:
- countryCode
additionalProperties: false
description: 'A physical postal address.
'
properties:
countryCode:
oneOf:
- $ref: '#/components/schemas/components-schemas-CountryCodeAlpha3'
- $ref: '#/components/schemas/components-schemas-CountryCodeAlpha2'
- $ref: '#/components/schemas/components-schemas-CountryCodeNumeric'
stateOrProvince:
$ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
city:
$ref: '#/components/schemas/openapi_components-schemas-city'
line1:
$ref: '#/components/schemas/openapi_components-schemas-line1'
line2:
$ref: '#/components/schemas/openapi_components-schemas-line2'
postalCode:
$ref: '#/components/schemas/openapi_components-schemas-postalCode'
FundingReceiverInput:
type: object
description: Details of the recipient of the funds.
required:
- firstName
- lastName
- accountNumber
- address
properties:
type:
allOf:
- description: The type of the receiver. **Mastercard only.** EXPERIMENTAL
- $ref: '#/components/schemas/SenderReceiverType'
organizationName:
allOf:
- description: 'The name of the organization.
Required when the `receiver.type = "organization"`. **Mastercard only.** EXPERIMENTAL
'
- $ref: '#/components/schemas/SenderReceiverOrganizationName'
firstName:
allOf:
- description: Recipient's first name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
middleName:
allOf:
- description: Recipient's middle name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
lastName:
allOf:
- description: Recipient's last name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
accountNumber:
allOf:
- description: The account number of the recipient.
- $ref: '#/components/schemas/AccountNumber'
accountNumberType:
allOf:
- description: The type of the `accountNumber`. This property is required if the `fundingType` is `account-to-account` or `person-to-person`.
- $ref: '#/components/schemas/AccountNumberType'
address:
description: The address of the recipient.
$ref: '#/components/schemas/FundingAddressInputForReceiver'
FundingChargeRequest:
type: object
required:
- merchantAcceptorResolver
- card
- amount
- type
- receiver
additionalProperties: false
description: 'Create a funding charge.
'
properties:
merchantAcceptorResolver:
$ref: '#/components/schemas/schemas-AcceptorResolver'
card:
$ref: '#/components/schemas/schemas-Card'
tokenDetails:
$ref: '#/components/schemas/TokenDetails'
amount:
$ref: '#/components/schemas/common_Amount'
type:
$ref: '#/components/schemas/FundingChargeType'
threeDsAuthenticationResult:
$ref: '#/components/schemas/FundingPayoutThreeDsAuthenticationResult'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionType:
$ref: '#/components/schemas/FundingTransactionType'
transactionReference:
$ref: '#/components/schemas/transactionReference'
receiver:
$ref: '#/components/schemas/FundingReceiverInput'
sender:
$ref: '#/components/schemas/FundingSenderInput'
purposeOfPayment:
$ref: '#/components/schemas/purposeOfPayment'
dynamicDescriptor:
$ref: '#/components/schemas/schemas-DynamicDescriptor'
allowPartialApproval:
$ref: '#/components/schemas/allowPartialApproval'
scaExemptionRequest:
$ref: '#/components/schemas/fundingScaExemptionRequest'
clearingMode:
allOf:
- description: 'The clearing method for the 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 for MASTERCARD.**
'
- $ref: '#/components/schemas/clearingMode'
clearAfter:
allOf:
- description: 'If provided, clearing will not occur before this point in time. This is only supported when using `clearingMode` `auto`.
This value may be at most 6 months in the future from when the charge was created.
This field is only supported for MASTERCARD
'
- $ref: '#/components/schemas/clearAfter'
riskAssessmentKey:
$ref: '#/components/schemas/riskAssessmentKey'
foreignRetailer:
$ref: '#/components/schemas/schemas-foreignRetailer'
subMerchant:
$ref: '#/components/schemas/subMerchant'
ChargeCreateAtm:
type: object
additionalProperties: false
required:
- merchantAcceptorResolver
- card
- amount
- type
- accountSource
- terminal
- emvData
- pinBlock
description: 'Create an ATM charge
'
properties:
merchantAcceptorResolver:
$ref: '#/components/schemas/schemas-AcceptorResolver'
card:
$ref: '#/components/schemas/AtmCardInput'
type:
$ref: '#/components/schemas/ChargeAtmType'
amount:
$ref: '#/components/schemas/AtmAmount'
dcc:
$ref: '#/components/schemas/Dcc'
accountSource:
$ref: '#/components/schemas/accountSource'
terminal:
$ref: '#/components/schemas/AtmTerminal'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionReference:
$ref: '#/components/schemas/transactionReference'
track2Data:
allOf:
- description: 'The information encoded on track 2 of the card magnetic stripe as defined in the ISO 7813 specification, including data element separator but excluding the beginning and ending sentinels and the LRC (Longitudinal Redundancy Check) character.
This property is mandatory when the `terminalEntryMode` is `chip`, `contactless` or `magstripe`.
'
- $ref: '#/components/schemas/track2Data'
cardSequenceNumber:
$ref: '#/components/schemas/cardSequenceNumber'
emvData:
$ref: '#/components/schemas/emvData'
pinBlock:
$ref: '#/components/schemas/PinBlockIso4'
clearingMode:
$ref: '#/components/schemas/clearingMode'
clearAfter:
$ref: '#/components/schemas/clearAfter'
components-schemas-CountryCodeAlpha3:
type: object
required:
- alpha3
additionalProperties: false
properties:
alpha3:
$ref: '#/components/schemas/schemas-countryCodeAlpha3'
openapi_components-schemas-created:
type: string
description: The date and time this object was created
format: iso-8601-date-time
readOnly: true
isoFieldResponseCode:
type: string
description: Contents of field 39
example: '00'
StatusAtm:
type: object
required:
- authorization
- clearing
description: 'The status property provides a high-level representation of the lifecycle of an ATM charge. ATM charges do not support authentication (no 3DS).
'
properties:
authorization:
type: string
description: Authorization status of the ATM charge.
enum:
- approved
- declined
- reversed
example: approved
clearing:
$ref: '#/components/schemas/ClearingStatus'
avsResult:
description: The result of the AVS verification
type: string
enum:
- none
- match
- partial-match
- no-match
- not-processed
components-schemas-Address:
type: object
required:
- countryCode
- city
- line1
- postalCode
additionalProperties: false
description: 'A physical postal address
'
properties:
countryCode:
$ref: '#/components/schemas/schemas-CountryCode'
stateOrProvince:
$ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
city:
$ref: '#/components/schemas/openapi_components-schemas-city'
line1:
$ref: '#/components/schemas/openapi_components-schemas-line1'
line2:
$ref: '#/components/schemas/openapi_components-schemas-line2'
postalCode:
$ref: '#/components/schemas/openapi_components-schemas-postalCode'
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.
ChargeCreatePosResponse:
type: object
required:
- key
- created
- status
- type
- merchantAcceptorRef
- authorizationIsoFields
- amount
- version
- card
- localTransactionDateTime
- terminal
description: 'A POS charge
'
properties:
key:
$ref: '#/components/schemas/chargeKey'
merchantAcceptorRef:
$ref: '#/components/schemas/components-schemas-AcceptorRef'
card:
$ref: '#/components/schemas/OutputCard'
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/ResponsePosAmount'
type:
$ref: '#/components/schemas/ChargePosType'
status:
$ref: '#/components/schemas/StatusPos'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionReference:
$ref: '#/components/schemas/transactionReference'
newEmvData:
$ref: '#/components/schemas/newEmvData'
terminalAction:
$ref: '#/components/schemas/terminalAction'
authorizationIsoFields:
$ref: '#/components/schemas/charges-pos_PosAuthorizationIsoFields'
allowPartialApproval:
$ref: '#/components/schemas/allowPartialApproval'
subMerchant:
$ref: '#/components/schemas/subMerchantResponse'
clearingMode:
$ref: '#/components/schemas/clearingMode'
clearAfter:
$ref: '#/components/schemas/clearAfter'
terminal:
$ref: '#/components/schemas/Terminal'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
version:
$ref: '#/components/schemas/schemas-version'
ChargeCreateAtmResponse:
type: object
required:
- key
- created
- version
- merchantAcceptorRef
- card
- amount
- type
- status
- localTransactionDateTime
- authorizationIsoFields
description: 'An ATM charge
'
properties:
key:
$ref: '#/components/schemas/chargeKey'
merchantAcceptorRef:
$ref: '#/components/schemas/components-schemas-AcceptorRef'
card:
$ref: '#/components/schemas/OutputCardAtm'
type:
$ref: '#/components/schemas/ChargeAtmType'
amount:
allOf:
- description: The amount encoded as an object with a `value` in minor units and a `currency` code. For ATM withdrawals, this is the authorized amount.
- $ref: '#/components/schemas/AtmAmount'
dcc:
allOf:
- description: Dynamic Currency Conversion details. Only present if DCC was enabled on the request.
- $ref: '#/components/schemas/Dcc'
status:
$ref: '#/components/schemas/StatusAtm'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionReference:
$ref: '#/components/schemas/transactionReference'
newEmvData:
$ref: '#/components/schemas/newEmvData'
issuerMessage:
type: string
description: Optional message from the card issuer
authorizationIsoFields:
$ref: '#/components/schemas/AtmAuthorizationIsoFields'
clearingMode:
$ref: '#/components/schemas/clearingMode'
clearAfter:
$ref: '#/components/schemas/clearAfter'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
version:
$ref: '#/components/schemas/schemas-version'
StoredTokenDetailsNetwork:
type: object
required:
- type
properties:
type:
type: string
description: Details about a token from one of the card networks
enum:
- network
eci:
$ref: '#/components/schemas/schemas-eci'
allowPartialApproval:
type: boolean
default: false
description: 'Indicates whether to allow partial approvals for this charge.
If set to `true` the charge''s and the authorization action''s `amount` field will contain the approved amount.
It is only implemented for Visa and Mastercard. It will be ignored for other card networks.
'
threeDsComplianceReason:
description: 'Indicates the reason for the SCA compliance.
'
type: string
enum:
- mandated
- none
- ucof
- recurring
- installment
- incremental
- delayed-charges
- no-show
- reauthorization
- resubmission
- whitelist
- auto
- mit
- tra
- low-value
- delegation
- scp
PayoutReceiverInput:
type: object
description: 'Details of the recipient of the payout.
**Must be provided for Mastercard transactions.**
'
properties:
type:
allOf:
- description: The type of the receiver. **Mastercard only.** EXPERIMENTAL
- $ref: '#/components/schemas/SenderReceiverType'
organizationName:
allOf:
- description: 'The name of the organization.
Required when the `receiver.type` = `"organization"`. **Mastercard only.** EXPERIMENTAL
'
- $ref: '#/components/schemas/SenderReceiverOrganizationName'
firstName:
allOf:
- description: 'Recipient''s first name.
**Must be provided for Mastercard transactions.**
'
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
middleName:
allOf:
- description: Recipient's middle name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
lastName:
allOf:
- description: 'Recipient''s last name.
**Must be provided for Mastercard transactions.**
'
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
accountNumber:
allOf:
- description: The account number of the recipient.
- $ref: '#/components/schemas/AccountNumber'
accountNumberType:
$ref: '#/components/schemas/charges-payout_AccountNumberType'
address:
allOf:
- description: The address of the recipient.
- $ref: '#/components/schemas/schemas-AddressInput'
identification:
allOf:
- description: Identification used to verify the receiver.
- $ref: '#/components/schemas/charges-payout_Identification'
terminalAction:
description: Indicates if the issuer requests a PIN in Single Tap mode, or switching interface.
type: string
enum:
- requestPin
- switchInterface
IncompatibleCardErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/incompatible-card
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Incompatible Card
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
ChargeCreateBEPRequest:
type: object
required:
- bepKey
- type
properties:
bepKey:
$ref: '#/components/schemas/schemas-bepKey'
type:
$ref: '#/components/schemas/BepChargeType'
transactionReference:
$ref: '#/components/schemas/transactionReference'
sequencePos:
description: 'This property indicates that the cardholder has entered Online PIN, when required by the issuer for a Mastercard Single Tap transaction.
'
type: string
enum:
- subsequent
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'
PayoutSenderAddress:
type: object
required:
- countryCode
- city
- line1
- postalCode
additionalProperties: false
description: 'A physical postal address returned in payout sender responses. Fields are typed as strings
without pattern validation, as payout sender address may originate from the merchant (set to the merchant''s registered address when the field was not set in the request).
'
properties:
countryCode:
$ref: '#/components/schemas/schemas-CountryCode'
stateOrProvince:
type: string
minLength: 1
maxLength: 120
description: The state (US) or province (non-US) of the address.
city:
type: string
minLength: 1
maxLength: 120
description: The city of the address.
line1:
type: string
minLength: 1
maxLength: 120
description: Address line 1
line2:
type: string
minLength: 1
maxLength: 120
description: Address line 2
postalCode:
type: string
minLength: 1
maxLength: 10
description: The postal code of the address.
SenderReceiverOrganizationName:
allOf:
- description: The name of the organization.
- minLength: 1
- maxLength: 140
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
intentPos:
description: 'The intention of the cardholder
'
type: string
enum:
- purchase
- reservation
- refund
TerminalCapability:
type: string
enum:
- contactChip
- contactlessChip
- contactMagStripe
- contactlessMagStripe
- offlineEncipheredPin
- offlinePlaintextPin
- onlinePin
- signature
- keyEntry
- noCvm
- oneTap
schemas-InvalidRequestErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/invalid-request
title:
$ref: '#/components/schemas/errorTitle'
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 400
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
components-schemas-acceptorKeyRef:
description: 'Uniquely identifies a merchant acceptor.
'
type: string
pattern: ^mac-[a-zA-Z0-9]+$
minLength: 5
maxLength: 120
example: mac-1eOdAHhgstYTUhlphPFf
OutputCardAtm:
type: object
required:
- maskedNumber
additionalProperties: false
description: 'Card data for ATM transactions. ATM transactions do not support processor tokenization.
'
properties:
maskedNumber:
type: string
description: 'The card number used to create this charge, masked according to PCI standards. For card numbers with 16 or more digits, the first 8 and the last 4 digits are visible. For card numbers with 13-15 digits, the first 6 and the last 4 digits are visible. For cards numbers with less than 13 digits, the first 6 and last 2 digits are visible.
'
PinBlockIso0Iso1:
type: object
title: ISO-0/ISO-1 PIN Block
description: PIN block related data in `ISO-0` or `ISO-1` format.
additionalProperties: false
required:
- format
- block
- zoneId
- keyId
properties:
format:
type: string
description: Indicates the type of PIN block format used.
enum:
- ISO-0
- ISO-1
block:
$ref: '#/components/schemas/PinBlockDataIso0Iso1'
zoneId:
$ref: '#/components/schemas/PinBlockZoneId'
keyId:
$ref: '#/components/schemas/PinBlockKeyId'
MissingPosAddressErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/merchant-acceptor/missing-pos-address
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Missing Point of Sale Address
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
schemas-IncompatibleCardNetworkErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/bin/unexpected-network
title:
$ref: '#/components/schemas/errorTitle'
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
ChargeAuthentication:
type: object
required:
- sca
- cvc
- avs
description: 'Object container for authentication. If present, contains Strong Customer Authentication (SCA) information, but also indicates whether CVC and AVS was used.
'
properties:
sca:
$ref: '#/components/schemas/sca'
cvc:
$ref: '#/components/schemas/cvcResult'
avs:
$ref: '#/components/schemas/avsResult'
FundingSenderInput:
type: object
description: 'The details of the sender of the funds.
**Must be provided for Visa transactions.**
'
required:
- firstName
- lastName
- address
properties:
type:
allOf:
- description: The type of the sender. **Mastercard only.** EXPERIMENTAL
- $ref: '#/components/schemas/SenderReceiverType'
organizationName:
allOf:
- description: 'The name of the organization.
Required when the `sender.type` = `"organization"`. **Mastercard only.** EXPERIMENTAL
'
- $ref: '#/components/schemas/SenderReceiverOrganizationName'
firstName:
allOf:
- description: Sender's first name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
middleName:
allOf:
- description: Sender's middle name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
lastName:
allOf:
- description: Sender's last name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
accountNumber:
allOf:
- description: The account number of the sender. This property is required if the `fundingType` is `account-to-account`.
- $ref: '#/components/schemas/AccountNumber'
accountNumberType:
$ref: '#/components/schemas/AccountNumberType'
address:
allOf:
- description: The address of the sender.
- $ref: '#/components/schemas/schemas-AddressInput'
identification:
allOf:
- description: Identification used to verify the sender.
- $ref: '#/components/schemas/charges-funding_Identification'
nationality:
oneOf:
- $ref: '#/components/schemas/components-schemas-CountryCodeAlpha3'
- $ref: '#/components/schemas/components-schemas-CountryCodeAlpha2'
- $ref: '#/components/schemas/components-schemas-CountryCodeNumeric'
amexSpecificFields:
type: object
required:
- acquirerReferenceData
description: American Express-specific ISO8583 raw values
properties:
acquirerReferenceData:
type: string
description: Contents of field 31.
cvcResult:
type: string
description: Contents of field 44, first byte.
example: Y
avsResult:
type: string
description: Contents of field 44, second byte.
example: Y
ChargeType:
description: 'Describes the kind of charge the merchant wants to submit.
'
type: object
required:
- intent
- cardEntry
- order
properties:
intent:
$ref: '#/components/schemas/schemas-intent'
cardEntry:
$ref: '#/components/schemas/schemas-cardEntry'
order:
description: 'The method used to place the order.
'
type: string
enum:
- checkout
- unspecified
- mail
- phone
- one-click
- recurring
- ucof
- installment
- standing-order
charges-payout_PayoutReceiver:
type: object
description: Details of the recipient of the payout.
properties:
type:
allOf:
- description: The type of the receiver.
- $ref: '#/components/schemas/SenderReceiverType'
organizationName:
allOf:
- description: The name of the organization.
- $ref: '#/components/schemas/SenderReceiverOrganizationName'
firstName:
allOf:
- description: Recipient's first name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
middleName:
allOf:
- description: Recipient's middle name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
lastName:
allOf:
- description: Recipient's last name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
accountNumber:
allOf:
- description: The masked account number of the recipient.
- $ref: '#/components/schemas/MaskedAccountNumber'
accountNumberType:
$ref: '#/components/schemas/charges-payout_AccountNumberType'
address:
allOf:
- description: The address of the recipient.
- $ref: '#/components/schemas/components-schemas-Address'
identification:
allOf:
- description: Identification used to verify the receiver.
- $ref: '#/components/schemas/charges-payout_Identification'
TokenDetails:
description: 'Further details about the token that was used.
Required if `type.cardEntry` is `token` or `token-on-file`.
'
oneOf:
- $ref: '#/components/schemas/TokenDetailsNetwork'
- $ref: '#/components/schemas/TokenDetailsDigitalWallet'
StatusBep:
type: object
required:
- authentication
- authorization
- clearing
description: "The status property provides a high-level representation of the lifecycle of a charge. \nFor a complete history, the actions should be used.\n"
properties:
authentication:
type: string
description: Strong Customer Authentication (SCA) status of the charge
enum:
- authenticated
authorization:
type: string
description: Authorization status of the charge
enum:
- approved
- declined
clearing:
$ref: '#/components/schemas/ClearingStatus'
isoFieldEciAmex:
type: string
description: E-commerce Indicator
schemas-AddressInput:
type: object
required:
- countryCode
- city
- line1
- postalCode
additionalProperties: false
description: 'A physical postal address.
'
properties:
countryCode:
oneOf:
- $ref: '#/components/schemas/components-schemas-CountryCodeAlpha3'
- $ref: '#/components/schemas/components-schemas-CountryCodeAlpha2'
- $ref: '#/components/schemas/components-schemas-CountryCodeNumeric'
stateOrProvince:
$ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
city:
$ref: '#/components/schemas/openapi_components-schemas-city'
line1:
$ref: '#/components/schemas/openapi_components-schemas-line1'
line2:
$ref: '#/components/schemas/openapi_components-schemas-line2'
postalCode:
$ref: '#/components/schemas/openapi_components-schemas-postalCode'
FundingCardEntry:
type: string
description: 'The method used to capture the card details.
'
enum:
- e-commerce
- token
- token-on-file
- card-on-file
ThreeDsAuthentication:
type: object
required:
- compliance
- complianceReason
- method
- result
description: 'Object container for strong customer authentication.
'
properties:
method:
$ref: '#/components/schemas/method'
compliance:
type: string
enum:
- mandated
- mit
- exemption
complianceReason:
$ref: '#/components/schemas/threeDsComplianceReason'
result:
$ref: '#/components/schemas/ThreeDsAuthenticationResultResponse'
VisaPayoutInitialTransactionReference:
title: Visa Initial Transaction Reference
type: object
required:
- initialTransactionIdentifier
additionalProperties: false
properties:
initialTransactionIdentifier:
type: string
description: The Visa transaction identifier of the initial transaction
pattern: ^[0-9]+$
minLength: 1
maxLength: 15
example: '303219322378732'
schemas-Card:
description: "This field represents the card or token information. \nThe card credentials can either be passed directly in the request or be referenced using a `key`. "
oneOf:
- $ref: '#/components/schemas/CardInput'
- $ref: '#/components/schemas/schemas-CardByProcessorTokenKey'
ForeignRetailerEnabled:
type: object
description: Transaction involves a foreign retailer
required:
- indicator
additionalProperties: false
properties:
indicator:
type: boolean
enum:
- true
description: Specifies if end seller in the transaction is a foreign retailer
amount:
type: integer
format: int64
minimum: 1
maximum: 999999999999
description: Specifies the exact amount corresponding to the foreign retailer. Cannot be more than the total charge amount (amount.value).
example: 1000
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'
Dcc:
description: 'Dynamic Currency Conversion (DCC) allows cardholders to see the transaction amount in their home currency at the ATM.
'
oneOf:
- $ref: '#/components/schemas/DccDisabled'
- $ref: '#/components/schemas/DccEnabled'
transactionReference:
type: string
description: 'Unique ID assigned by the merchant or payment service provider for the transaction. Used to identify the transaction.
'
pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?|]+$
minLength: 1
maxLength: 120
example: Dz3dIzE74EfH1HeTInyE
authorizationIsoFieldsDiners:
allOf:
- $ref: '#/components/schemas/commonIsoFields'
- type: object
required:
- networkCode
- systemTraceAuditNumber
- retrievalReferenceNumber
- eci
- networkSpecificFields
properties:
authorizationCode:
$ref: '#/components/schemas/isoFieldAuthorizationCode'
networkCode:
type: string
example: not-applicable
systemTraceAuditNumber:
$ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
retrievalReferenceNumber:
$ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
eci:
$ref: '#/components/schemas/isoFieldEciDiners'
networkSpecificFields:
$ref: '#/components/schemas/dinersSpecificFields'
PayoutSenderInput:
type: object
description: 'The details of the sender of the payout. If not provided or partially provided, the missing sender information will be filled in with the details taken from the merchant acceptor.
**Must be provided for Mastercard transactions.**
'
properties:
type:
allOf:
- description: The type of the sender. **Mastercard only.** EXPERIMENTAL
- $ref: '#/components/schemas/SenderReceiverType'
organizationName:
allOf:
- description: 'The name of the organization.
Required when the `sender.type = "organization"`. **Mastercard only.** EXPERIMENTAL
'
- $ref: '#/components/schemas/SenderReceiverOrganizationName'
firstName:
allOf:
- description: Sender's first name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
middleName:
allOf:
- description: Sender's middle name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
lastName:
allOf:
- description: Sender's last name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
accountNumber:
allOf:
- description: 'The account number of the sender.
**Must be provided for Mastercard transactions.**
'
- $ref: '#/components/schemas/AccountNumber'
accountNumberType:
allOf:
- description: 'The type of the `accountNumber`.
**Must be provided for Mastercard transactions.**
'
- $ref: '#/components/schemas/charges-payout_AccountNumberType'
address:
allOf:
- description: Address of the sender.
- $ref: '#/components/schemas/schemas-AddressInput'
identification:
allOf:
- description: Identification used to verify the sender.
- $ref: '#/components/schemas/charges-payout_Identification'
tokenCryptogram:
type: string
description: The token cryptogram. It must be encoded in base64 format (40 bytes).
minLength: 28
maxLength: 28
pattern: ^[\w\/+=]+$
example: 112233445566778899001122334=
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.
BillingAddressInput:
type: object
required:
- postalCode
additionalProperties: false
description: The billing address of the cardholder
properties:
countryCode:
oneOf:
- $ref: '#/components/schemas/components-schemas-CountryCodeAlpha3'
- $ref: '#/components/schemas/components-schemas-CountryCodeAlpha2'
- $ref: '#/components/schemas/components-schemas-CountryCodeNumeric'
stateOrProvince:
$ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
city:
$ref: '#/components/schemas/openapi_components-schemas-city'
line1:
$ref: '#/components/schemas/openapi_components-schemas-line1'
line2:
$ref: '#/components/schemas/openapi_components-schemas-line2'
postalCode:
$ref: '#/components/schemas/openapi_components-schemas-postalCode'
schemas-processorTokenKey:
type: string
description: The key to a card tokenized in the [Processor Tokenization](#tag/Processor-Tokenization).
pattern: ^ptk-[a-zA-Z0-9]+$
minLength: 5
maxLength: 120
schemas-intent:
description: 'The intention of the cardholder.
To perform an `account-status` for AMEX, either `card.cvc` has to be present or `avs` has to be set to `true`.
'
type: string
enum:
- purchase
- reservation
- account-status
- refund
Terminal:
type: object
description: Details about the terminal.
oneOf:
- $ref: '#/components/schemas/POS'
- $ref: '#/components/schemas/mPOS'
- $ref: '#/components/schemas/SoftPOS'
openapi_components-schemas-line2:
type: string
pattern: ^[\w -,\.\-\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
minLength: 1
maxLength: 120
description: 'Address line 2
'
example: '4200'
authorizationIsoFieldsAmericanExpress:
allOf:
- $ref: '#/components/schemas/commonIsoFields'
- type: object
required:
- networkCode
- systemTraceAuditNumber
- retrievalReferenceNumber
- eci
- networkSpecificFields
properties:
authorizationCode:
$ref: '#/components/schemas/isoFieldAuthorizationCode'
networkCode:
type: string
description: Not applicable for American Express transactions.
enum:
- not-applicable
systemTraceAuditNumber:
$ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
retrievalReferenceNumber:
$ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
eci:
$ref: '#/components/schemas/isoFieldEciAmex'
networkSpecificFields:
$ref: '#/components/schemas/amexSpecificFields'
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'
posAmountValue:
type: integer
format: int64
minimum: 1
maximum: 999999999999
description: 'An amount in minor units. For example `$12.34` should be encoded as `1234`.
'
example: 2599
mastercardSpecificFields:
type: object
required:
- banknetReference
- traceId
description: Mastercard specific ISO8583 raw values
properties:
banknetReference:
type: string
description: Contents of field 63, subfield 2
example: ATSGHX
traceId:
type: string
description: 'The trace ID can be used to refer to the original authorization for subsequent transactions (e.g., reversals, MITs).
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.
'
merchantAdviceCode:
type: string
description: Contents of field 48, subelement 84
example: '01'
cvcResult:
type: string
description: Contents of field 48, subelement 87
example: M
nameValidationResult:
type: string
description: Contents of field 108, subelement 08, subfield 02. Result of Mastercard name validation check. To request name validation set `type.intent` = `account-status` and provide `card.holderName`.
example: A
avsResponse:
type: string
description: Contents of field 48, subelement 83
example: A
paymentAccountReference:
type: string
description: Contents of field 56, subelement 1, subfield 1
example: 50020EHB2QT3YBD5KU6OFMSN6BHLU
transactionLinkId:
type: string
description: Contents of field 105, subelement 1
example: qtQRrYlsSvSecPJDBzrzYA
digitalCommerceProgramType:
type: string
description: Contents of field 48, subelement 48, subfield 2. Identifies the specific digital commerce program used.
example: '1'
onBehalfServices:
type: array
description: Contents of field 48, subelement 71.
items:
type: object
required:
- onBehalfService
- onBehalfResult1
- onBehalfResult2
properties:
onBehalfService:
type: string
description: Contents of field 48, subelement 71, subfield 1.
example: '61'
onBehalfResult1:
type: string
description: Contents of field 48, subelement 71, subfield 2.
example: V
onBehalfResult2:
type: string
description: Contents of field 48, subelement 71, subfield 3.
example: T
POS:
allOf:
- type: object
required:
- type
properties:
type:
type: string
enum:
- pos
- $ref: '#/components/schemas/BaseTerminal'
- type: object
required:
- capabilities
properties:
capabilities:
type: array
description: 'The capabilities of the terminal. This can be one or multiple, and if more than one is specified it means that it is capable of all of those things.
#### Restrictions
If `capabilities` include `keyEntry` or `signature` then `attended` must be set to `true`.
'
items:
$ref: '#/components/schemas/TerminalCapability'
example:
- contactChip
- contactlessChip
- contactMagStripe
- oneTap
RequestPosAmount:
type: object
required:
- value
- currency
additionalProperties: false
description: 'The amount encoded as an object with a `value` in minor units and a `currency` code.
An optional `breakdown` can be provided to indicate specific sub-amounts.
'
properties:
value:
allOf:
- description: 'The full transaction amount in minor units. For example `$12.34` should be encoded as `1234`.
If a `breakdown` is provided, it must exactly add up to this `value`.
'
- $ref: '#/components/schemas/posAmountValue'
currency:
$ref: '#/components/schemas/common_currencyCode'
breakdown:
$ref: '#/components/schemas/RequestAmountBreakdown'
complianceReasonBEP:
description: 'Indicates the reason for the SCA compliance.
'
type: string
enum:
- mandated
TransactionType:
type: string
enum:
- cryptocurrency
- high-risk-securities
- central-bank-digital-currency
- stablecoin
- blockchain-native-coin
- non-fungible-token
description: 'In case of a special transaction type, this allows you to specify which one.
`type.intent` needs to be `purchase`.
- `cryptocurrency`: A transaction involving the purchasing of cryptocurrencies. Use this for Visa only if specific type of digital asset cannot be determined.
- `high-risk-securities`: A transaction involving the purchasing of high-risk securities. Only supported for Mastercard.
- `central-bank-digital-currency`: A transaction involving purchase of a Central Bank Digital Currency (CBDC). Only supported for Visa.
- `stablecoin`: A transaction involving purchase of stablecoins.
- `blockchain-native-coin`: A transaction involving purchase of a non fiat backed blockchain coin. Only supported for Visa.
- `non-fungible-token`: A transaction involving purchase of a Non Fungible Token (NFT). Only supported for Visa.
Not supported for Diners.
'
schemas-foreignRetailer:
description: 'Used for transactions fulfilled partly or fully by end seller that is in a different country than the Marketplace or Ramp Provider. VISA EXPERIMENTAL
'
oneOf:
- $ref: '#/components/schemas/ForeignRetailerDisabled'
- $ref: '#/components/schemas/ForeignRetailerEnabled'
FundingPayoutThreeDsAuthentication:
type: object
required:
- compliance
- complianceReason
- method
- result
description: 'Object container for strong customer authentication.
'
properties:
method:
$ref: '#/components/schemas/method'
compliance:
type: string
enum:
- mandated
- mit
- exemption
complianceReason:
$ref: '#/components/schemas/threeDsComplianceReason'
result:
$ref: '#/components/schemas/FundingPayoutThreeDsAuthenticationResultResponse'
clearingMode:
type: string
enum:
- auto
- manual
description: 'The clearing method for the 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.
'
default: auto
cvcResultBEP:
enum:
- none
description: The result of cvc verification
ChargeRequest:
type: object
required:
- merchantAcceptorResolver
- card
- amount
- type
additionalProperties: false
description: 'Create a charge
'
properties:
merchantAcceptorResolver:
$ref: '#/components/schemas/schemas-AcceptorResolver'
card:
allOf:
- description: 'This field represents the card or token information.
The card credentials can either be passed directly in the request or be referenced using a `key`.
Alternatively, if `type.cardEntry` is `token-on-file`, this property should contain the token credentials instead.
'
- $ref: '#/components/schemas/schemas-Card'
tokenDetails:
$ref: '#/components/schemas/TokenDetails'
amount:
$ref: '#/components/schemas/common_Amount'
type:
$ref: '#/components/schemas/ChargeType'
avs:
$ref: '#/components/schemas/avs'
threeDsAuthenticationResult:
$ref: '#/components/schemas/ThreeDsAuthenticationResult'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionType:
$ref: '#/components/schemas/TransactionType'
transactionReference:
$ref: '#/components/schemas/transactionReference'
billingAddress:
$ref: '#/components/schemas/BillingAddressInput'
clearingMode:
$ref: '#/components/schemas/clearingMode'
clearAfter:
$ref: '#/components/schemas/clearAfter'
riskAssessmentKey:
$ref: '#/components/schemas/riskAssessmentKey'
scaExemptionRequest:
$ref: '#/components/schemas/scaExemptionRequest'
dynamicDescriptor:
$ref: '#/components/schemas/schemas-DynamicDescriptor'
allowPartialApproval:
$ref: '#/components/schemas/allowPartialApproval'
foreignRetailer:
$ref: '#/components/schemas/schemas-foreignRetailer'
subMerchant:
$ref: '#/components/schemas/subMerchant'
enhancedData:
$ref: '#/components/schemas/enhancedDataInput'
initialTransactionReferences:
$ref: '#/components/schemas/ChargeRefundMastercardInitialTransactionReference'
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
subMerchant:
description: 'Submerchant information used in the Payment Facilitator set-up. If present, will override any subMerchant information present on the Merchant Acceptor. DISCOVER MASTERCARD VISA
'
type: object
additionalProperties: false
properties:
id:
type: string
description: Unique ID assigned to the subMerchant. When provided, overrides `merchantAcceptor.subMerchantId`.
minLength: 1
maxLength: 15
example: SUB123456
address:
$ref: '#/components/schemas/schemas-AddressInput'
description: Physical address of the subMerchant. When provided, overrides `merchantAcceptor.subMerchantAddress`.
sca:
oneOf:
- $ref: '#/components/schemas/ThreeDsAuthentication'
- $ref: '#/components/schemas/ScaBEP'
- $ref: '#/components/schemas/AuthenticationOutOfScope'
- $ref: '#/components/schemas/AuthenticationExempt'
- $ref: '#/components/schemas/ScaMit'
ReferencedEntityNotFoundErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/referenced-entity-not-found
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Referenced Entity Not Found
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
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'
ScaMit:
type: object
required:
- compliance
- complianceReason
- method
properties:
method:
type: string
enum:
- none
compliance:
type: string
enum:
- mit
complianceReason:
type: string
enum:
- installment
- ucof
components-schemas-pan:
type: string
description: Full digits of a card
pattern: ^\d+$
minLength: 12
maxLength: 19
format: password
example: '4761070000000905'
ChargeAuthenticationBEP:
type: object
required:
- sca
- cvc
- avs
description: 'Object container for authentication. If present, contains Strong Customer Authentication (SCA) information, but also indicates whether CVC and AVS was used.
'
properties:
sca:
$ref: '#/components/schemas/ScaBEP'
cvc:
$ref: '#/components/schemas/cvcResultBEP'
avs:
$ref: '#/components/schemas/avsResultBEP'
errorTitle:
type: string
description: 'A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
'
schemas-acceptorRoute:
type: string
pattern: ^(^$|^[a-zA-Z0-9-_:;.,]+$)
minLength: 0
maxLength: 255
description: 'Route key used to uniquely reference an acceptor when used in combination
with its card network and merchant key.
'
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'
components-schemas-CountryCodeNumeric:
type: object
required:
- numeric
additionalProperties: false
properties:
numeric:
$ref: '#/components/schemas/schemas-countryCodeNumeric'
charges-payout_PayoutSender:
type: object
description: The details of the sender of the payout.
properties:
type:
allOf:
- description: The type of the sender.
- $ref: '#/components/schemas/SenderReceiverType'
organizationName:
allOf:
- description: The name of the organization.
- $ref: '#/components/schemas/SenderReceiverOrganizationName'
firstName:
allOf:
- description: Sender's first name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
middleName:
allOf:
- description: Sender's middle name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
lastName:
allOf:
- description: Sender's last name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
accountNumber:
allOf:
- description: The masked account number of the sender.
- $ref: '#/components/schemas/MaskedAccountNumber'
accountNumberType:
$ref: '#/components/schemas/charges-payout_AccountNumberType'
address:
allOf:
- description: Address of the sender.
- $ref: '#/components/schemas/PayoutSenderAddress'
identification:
allOf:
- description: Identification used to verify the sender.
- $ref: '#/components/schemas/charges-payout_Identification'
ChargeClearingStatus:
type: string
description: Clearing status of the charge
enum:
- none
- manual
- pending
- completed
- cancelled
- abandoned
example: pending
PayoutFundingSource:
description: 'The source of the funds for the payout.
`mobile-money-account` is specific to Mastercard transactions. The rest are common to both networks.
**Required for all Mastercard Payouts.**
'
type: string
enum:
- credit
- debit
- prepaid
- deposit-account
- mobile-money-account
- cash
- other
FundingChargeResponse:
type: object
required:
- merchantAcceptorRef
- card
- key
- amount
- localTransactionDateTime
- type
- receiver
- status
- fraudLiability
- created
- version
- authentication
- clearingMode
- authorizationIsoFields
description: 'Create a funding charge.
'
properties:
key:
$ref: '#/components/schemas/chargeKey'
merchantAcceptorRef:
$ref: '#/components/schemas/components-schemas-AcceptorRef'
card:
$ref: '#/components/schemas/OutputCard'
amount:
$ref: '#/components/schemas/common_Amount'
type:
$ref: '#/components/schemas/FundingChargeType'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionType:
$ref: '#/components/schemas/FundingTransactionType'
transactionReference:
$ref: '#/components/schemas/transactionReference'
receiver:
$ref: '#/components/schemas/charges-funding_FundingReceiver'
sender:
$ref: '#/components/schemas/charges-funding_FundingSender'
fraudLiability:
$ref: '#/components/schemas/fraudLiability'
status:
$ref: '#/components/schemas/Status'
authentication:
$ref: '#/components/schemas/FundingPayoutChargeAuthentication'
clearingMode:
type: string
enum:
- none
- auto
- manual
description: The clearing mode of the charge.
authorizationIsoFields:
$ref: '#/components/schemas/authorizationIsoFields'
purposeOfPayment:
$ref: '#/components/schemas/purposeOfPayment'
dynamicDescriptor:
$ref: '#/components/schemas/schemas-DynamicDescriptor'
foreignRetailer:
$ref: '#/components/schemas/schemas-foreignRetailer'
subMerchant:
$ref: '#/components/schemas/subMerchantResponse'
tokenDetails:
$ref: '#/components/schemas/StoredTokenDetails'
allowPartialApproval:
$ref: '#/components/schemas/allowPartialApproval'
clearAfter:
$ref: '#/components/schemas/clearAfter'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
version:
$ref: '#/components/schemas/schemas-version'
track2Data:
type: string
description: 'The information encoded on track 2 of the card magnetic stripe as defined in the ISO 7813 specification, including data element separator but excluding the beginning and ending sentinels and the LRC (Longitudinal Redundancy Check) character.
This property is mandatory when the `terminalEntryMode` is `chip`, `contactless`,`magstripe` or `magstripe-fallback`.
'
pattern: ^[A-Fa-f0-9]+$
minLength: 1
maxLength: 37
example: 6799995700000004054D25122010875408456
schemas-CardByProcessorTokenKey:
type: object
title: Processor Token Key
required:
- processorTokenKey
properties:
processorTokenKey:
$ref: '#/components/schemas/schemas-processorTokenKey'
cvc:
allOf:
- description: 'The CVC of the card.
If a CVC is provided here, it takes precedence over the one stored in the Processor Tokenization.
For Mastercard, Visa, Discover, Bancontact, and Diners the length must be 3.
For American Express the length must be 4.
'
- $ref: '#/components/schemas/schemas-cvc'
sequence:
type: string
title: Sequence
description: 'Setting this to `initial` flags the charge as the initial charge in a sequence of payments.
'
enum:
- initial
orderPos:
description: 'The method used to place the order.
'
type: string
enum:
- counter
fundingScaExemptionRequest:
type: string
description: "This field can be used to indicate an acquirer SCA exemption request. Silverflow supports several SCA exemption request use cases, listed below:\n - Transaction risk analysis (TRA)\n - Low value payment (LVP)\n - Secure corporate payment (SCP)\n\nPlease note that these exemption requests may or may not be honored by the issuer.\n"
enum:
- scp
- low-value
- tra
ChargeAuthorizationStatus:
type: string
description: Authorization status of the charge
enum:
- none
- approved
- declined
- reversed
- approved-partial
example: approved
authorizationIsoFieldsMastercard:
allOf:
- $ref: '#/components/schemas/commonIsoFields'
- type: object
required:
- networkCode
- systemTraceAuditNumber
- retrievalReferenceNumber
- eci
- networkSpecificFields
properties:
authorizationCode:
$ref: '#/components/schemas/isoFieldAuthorizationCode'
networkCode:
$ref: '#/components/schemas/isoFieldNetworkCode'
systemTraceAuditNumber:
$ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
retrievalReferenceNumber:
$ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
eci:
$ref: '#/components/schemas/isoFieldEciMastercard'
networkSpecificFields:
$ref: '#/components/schemas/mastercardSpecificFields'
charges-payout_Identification:
description: Identification used to verify sender or receiver.
type: object
required:
- value
- type
properties:
type:
description: "Type of identification:\n - `date-of-birth` - Date of birth according to [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601)\n - `national-identification` - National identification\n - `passport-number` - Passport number\n - `driver-license` - Driver license\n - `tax-identification` - Tax identification\n - `company-registration-number` - Company registration number\n - `social-security-number` - Social security number\n - `other` - Customer identification (unspecified)\n"
type: string
enum:
- date-of-birth
- national-identification
- passport-number
- driver-license
- tax-identification
- company-registration-number
- social-security-number
- other
value:
description: 'The value used for identification of the sender or receiver.
For BTHD (date of birth) the format should be [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
'
type: string
minLength: 1
maxLength: 35
issuingCountry:
description: Issuing country of the identification, according to [ISO 3166-3](https://en.wikipedia.org/wiki/ISO_3166-3)
type: string
minLength: 3
maxLength: 3
CannotDetermineCardNetworkErrorDetails:
type: object
required:
- type
- title
- status
- detail
- instance
properties:
type:
allOf:
- $ref: '#/components/schemas/errorType'
- enum:
- /silverflow/problems/charge/cannot-determine-card-network-by-card-number
title:
allOf:
- $ref: '#/components/schemas/errorTitle'
- enum:
- Cannot Determine Card Network By Card Number
status:
allOf:
- $ref: '#/components/schemas/errorStatus'
- enum:
- 409
detail:
$ref: '#/components/schemas/errorDetail'
instance:
$ref: '#/components/schemas/errorInstance'
BillingAddress:
type: object
required:
- postalCode
additionalProperties: false
description: 'The billing address of the cardholder
'
properties:
countryCode:
$ref: '#/components/schemas/schemas-CountryCode'
stateOrProvince:
$ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
city:
$ref: '#/components/schemas/openapi_components-schemas-city'
line1:
$ref: '#/components/schemas/openapi_components-schemas-line1'
line2:
$ref: '#/components/schemas/openapi_components-schemas-line2'
postalCode:
$ref: '#/components/schemas/openapi_components-schemas-postalCode'
cardEntryPos:
description: 'The method used to capture the card details.
'
type: string
enum:
- terminal
example: terminal
schemas-ResolverByMerchant:
type: object
additionalProperties: false
required:
- merchantKey
description: 'Used to select a merchant acceptor by merchant key and an optional route.
'
properties:
merchantKey:
$ref: '#/components/schemas/schemas-merchantKey'
route:
$ref: '#/components/schemas/schemas-acceptorRoute'
FundingType:
type: string
description: "Describes the type of funding charge.\n - `account-to-account`: Transfer funds to a specific type of account. This can be specified in the `receiver`.\n - `general-funds-disbursement`: Funding transaction used to enable a payout disbursement for various use cases.\n - `liquid-assets`: Funding type used for direct acquisition of liquid and cryptocurrency assets or to prefund a wallet primarily used for such assets (e.g., stocks, shares, foreign currency exchange, or cryptocurrency). Currently only supported for **Visa.**\n - `wallet-transfer`: Transfer funds to a wallet. Currently only supported for **Visa.**\n - `person-to-person`: Transaction that uses funds from the sender’s account to fund a subsequent and linked transaction to the receiver's account. Currently only supported for **Mastercard.**\n - `me-to-me`: Transaction that debits a card account of a consumer or organization for the purpose of transferring funds to the same consumer or organization. Currently only supported for **Mastercard.** EXPERIMENTAL\n - `me-to-me-debit-prepaid`: Transaction that debits a card account of a consumer or organization for the purpose of transferring funds to a Debit or Prepaid account of the same consumer or organization. Currently only supported for **Mastercard.** EXPERIMENTAL\n"
enum:
- account-to-account
- general-funds-disbursement
- liquid-assets
- wallet-transfer
- person-to-person
- me-to-me
- me-to-me-debit-prepaid
TokenDetailsNetwork:
allOf:
- $ref: '#/components/schemas/StoredTokenDetailsNetwork'
- type: object
required:
- tokenCryptogram
properties:
tokenCryptogram:
$ref: '#/components/schemas/tokenCryptogram'
isoFieldEciDiners:
type: string
description: E-commerce Indicator
AtmAmount:
type: object
additionalProperties: false
description: The amount for ATM transactions
required:
- value
- currency
properties:
value:
type: integer
format: int64
description: The amount in minor units.
minimum: 1
maximum: 999999999999
example: 10000
currency:
$ref: '#/components/schemas/common_currencyCode'
ScaBEP:
type: object
required:
- compliance
- complianceReason
- method
- result
description: 'Object container for strong customer authentication.
'
properties:
method:
$ref: '#/components/schemas/methodBEP'
compliance:
$ref: '#/components/schemas/complianceBEP'
complianceReason:
$ref: '#/components/schemas/complianceReasonBEP'
result:
$ref: '#/components/schemas/BEPAuthenticationResult'
bancontactSpecificFields:
type: object
description: Bancontact specific ISO8583 raw values
properties:
iban:
type: string
description: The International Bank Account Number (IBAN) returned from the bancontact authorization response.
isoFieldEciVisa:
type: string
description: E-commerce Indicator
example: '5'
charges-funding_FundingReceiver:
type: object
description: Required when `type.intent` is `funding`. Details of the recipient of the funds.
required:
- firstName
- lastName
- accountNumber
- address
properties:
type:
allOf:
- description: The type of the receiver.
- $ref: '#/components/schemas/SenderReceiverType'
organizationName:
allOf:
- description: The name of the organization.
- $ref: '#/components/schemas/SenderReceiverOrganizationName'
firstName:
allOf:
- description: Recipient's first name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
middleName:
allOf:
- description: Recipient's middle name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
lastName:
allOf:
- description: Recipient's last name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
accountNumber:
allOf:
- description: The masked account number of the recipient.
- $ref: '#/components/schemas/MaskedAccountNumber'
accountNumberType:
$ref: '#/components/schemas/AccountNumberType'
address:
allOf:
- description: The address of the recipient.
- $ref: '#/components/schemas/FundingAddress'
schemas-AcceptorResolver:
type: object
description: 'The resolver is used to select the appropriate merchant acceptor for creating the charge.
It can accept either a `merchantAcceptorKey` or a combination of `merchantKey` and an optional `route`. If the optional property for `route` is not provided
the default one generated when creating an acceptor will be used.
'
oneOf:
- $ref: '#/components/schemas/schemas-ResolverByAcceptorKey'
- $ref: '#/components/schemas/schemas-ResolverByMerchant'
PayoutTransactionType:
type: string
enum:
- tax-refund
- cryptocurrency
- central-bank-digital-currency
- stablecoin
- blockchain-native-coin
- non-fungible-token
description: 'In case of a special transaction type, this allows you to specify which one.
- `tax-refund`: A transaction involving a tax rebate. Only allowed for `payoutType` of `general-funds-disbursement`. Required for USA cardholders. VISA
- `cryptocurrency`: A transaction involving the purchasing of cryptocurrencies. Use this for Visa only if specific type of digital asset cannot be determined. Only allowed for Mastercard when `payoutType` is `account-to-account`. VISAMASTERCARD
- `central-bank-digital-currency`: A transaction involving purchase of a Central Bank Digital Currency (CBDC). VISA
- `stablecoin`: A transaction involving purchase of stablecoins. VISA
- `blockchain-native-coin`: A transaction involving purchase of a non fiat backed blockchain coin. VISA
- `non-fungible-token`: A transaction involving purchase of a Non Fungible Token (NFT). VISA
'
PinBlockDataIso0Iso1:
type: string
title: ISO-0/ISO-1 Block
description: 'Contains encrypted PIN information, formatted as an `ISO-0`/`ISO-1` block of 16 hexadecimal characters.
'
pattern: ^[A-Fa-f0-9]+$
minLength: 16
maxLength: 16
example: 32CF86E514CB24FE
PinBlockKeyId:
type: string
pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]*$
minLength: 1
maxLength: 128
description: Encryption key in the specified zone to use.
isoFieldEciDiscover:
type: string
description: E-commerce Indicator
FundingChargeType:
type: object
description: Describes the kind of charge the merchant wants to submit.
required:
- intent
- cardEntry
- order
- fundingType
properties:
intent:
$ref: '#/components/schemas/FundingIntent'
cardEntry:
$ref: '#/components/schemas/FundingCardEntry'
order:
$ref: '#/components/schemas/FundingOrder'
fundingType:
$ref: '#/components/schemas/FundingType'
mPOS:
allOf:
- type: object
required:
- type
properties:
type:
type: string
enum:
- mpos
- $ref: '#/components/schemas/BaseTerminal'
- type: object
required:
- attended
- capabilities
properties:
attended:
type: boolean
enum:
- true
capabilities:
type: array
description: 'The capabilities of the terminal. This can be one or multiple, and if more than one is specified it means that it is capable of all of those things.
'
items:
$ref: '#/components/schemas/TerminalCapability'
example:
- contactChip
- contactlessChip
- contactMagStripe
- oneTap
cvcResult:
description: The result of cvc verification
type: string
enum:
- none
- match
- no-match
- not-processed
StoredTokenDetails:
description: 'Further details about the token that was used.
Required if `type.cardEntry` is `token` or `token-on-file`.
'
oneOf:
- $ref: '#/components/schemas/StoredTokenDetailsNetwork'
- $ref: '#/components/schemas/StoredTokenDetailsDigitalWallet'
expiryYearOptional:
allOf:
- $ref: '#/components/schemas/components-schemas-expiryYear'
description: 'The year the card expires including the century. Must be provided together with `expiryMonth`, or omitted alongside it.
'
FundingAddress:
type: object
required:
- countryCode
additionalProperties: false
description: 'A physical postal address
'
properties:
countryCode:
$ref: '#/components/schemas/schemas-CountryCode'
stateOrProvince:
$ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
city:
$ref: '#/components/schemas/openapi_components-schemas-city'
line1:
$ref: '#/components/schemas/openapi_components-schemas-line1'
line2:
$ref: '#/components/schemas/openapi_components-schemas-line2'
postalCode:
$ref: '#/components/schemas/openapi_components-schemas-postalCode'
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'
schemas-cardEntry:
description: 'The method used to capture the card details.
'
type: string
enum:
- e-commerce
- manual
- card-on-file
- token
- token-on-file
example: e-commerce
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'
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'
AuthenticationStatus:
type: string
description: Strong Customer Authentication (SCA) status of the charge
enum:
- none
- authenticated
- non-authenticated
example: authenticated
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'
FundingOrder:
type: string
enum:
- checkout
- recurring
- ucof
- standing-order
- one-click
isoFieldNetworkCode:
type: string
description: Contents of field 63, subfield 1
example: '0000'
method:
description: 'Indicates the method that was used to comply to SCA.
'
type: string
enum:
- 3ds1
- 3ds2
- device
subMerchantResponse:
description: 'Submerchant information used in the Payment Facilitator set-up. This overrides any subMerchant information present on the Merchant Acceptor.
'
type: object
additionalProperties: false
properties:
id:
type: string
description: Unique ID assigned to the subMerchant.
minLength: 1
maxLength: 15
example: SUB123456
address:
$ref: '#/components/schemas/components-schemas-Address'
description: Physical address of the subMerchant.
PayoutChargeResponse:
type: object
description: 'The created payout charge
'
required:
- key
- created
- status
- type
- amount
- merchantAcceptorRef
- clearingMode
- authorizationIsoFields
- authentication
- card
- version
- localTransactionDateTime
properties:
key:
$ref: '#/components/schemas/chargeKey'
merchantAcceptorRef:
$ref: '#/components/schemas/components-schemas-AcceptorRef'
card:
$ref: '#/components/schemas/OutputCard'
amount:
$ref: '#/components/schemas/common_Amount'
type:
$ref: '#/components/schemas/PayoutChargeType'
clearingMode:
type: string
enum:
- none
- auto
- manual
description: The clearing mode of the charge.
status:
$ref: '#/components/schemas/StatusWithoutPartialApproval'
authentication:
$ref: '#/components/schemas/FundingPayoutChargeAuthentication'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionType:
$ref: '#/components/schemas/PayoutTransactionType'
transactionReference:
$ref: '#/components/schemas/transactionReference'
fundingSource:
$ref: '#/components/schemas/PayoutFundingSource'
authorizationIsoFields:
$ref: '#/components/schemas/authorizationIsoFields'
sender:
$ref: '#/components/schemas/charges-payout_PayoutSender'
receiver:
$ref: '#/components/schemas/charges-payout_PayoutReceiver'
purposeOfPayment:
$ref: '#/components/schemas/purposeOfPayment'
dynamicDescriptor:
$ref: '#/components/schemas/schemas-DynamicDescriptor'
foreignRetailer:
$ref: '#/components/schemas/schemas-foreignRetailer'
subMerchant:
$ref: '#/components/schemas/subMerchantResponse'
clearAfter:
$ref: '#/components/schemas/clearAfter'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
version:
$ref: '#/components/schemas/schemas-version'
ChargeStatus:
type: object
required:
- authentication
- authorization
- clearing
description: 'The status property provides a high-level representation of the lifecycle of a charge.
For a complete history, the actions should be used.
'
properties:
authentication:
$ref: '#/components/schemas/AuthenticationStatus'
authorization:
$ref: '#/components/schemas/ChargeAuthorizationStatus'
clearing:
$ref: '#/components/schemas/ChargeClearingStatus'
AuthorizationStatus:
type: string
description: Authorization status of the charge.
enum:
- none
- approved
- approved-partial
- declined
- reversed
example: approved
openapi_components-schemas-stateOrProvince:
type: string
pattern: ^[\w -,\.\-\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
minLength: 1
maxLength: 120
description: 'The state (US) or province (non-US) of the address.
'
example: NH
isoFieldResponseCodeDescription:
type: string
description: The description of the `responseCode`
example: Approved
openapi_components-schemas-city:
type: string
pattern: ^[\w -,\.\-\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
minLength: 1
maxLength: 120
description: 'The city of the address.
'
example: Amsterdam
AuthenticationOutOfScope:
type: object
required:
- compliance
- complianceReason
- method
properties:
method:
type: string
enum:
- none
compliance:
type: string
enum:
- out-of-scope
complianceReason:
type: string
enum:
- none
- moto
- one-leg
- anonymous-prepaid
- recurring
StatusWithoutPartialApproval:
type: object
required:
- authentication
- authorization
- clearing
description: 'The status property provides a high-level representation of the lifecycle of a charge.
For a complete history, the actions should be used.
'
properties:
authentication:
$ref: '#/components/schemas/AuthenticationStatus'
authorization:
$ref: '#/components/schemas/AuthorizationStatusWithoutPartialApproval'
clearing:
$ref: '#/components/schemas/ClearingStatus'
complianceBEP:
description: 'Indicates SCA compliance of the charges
'
type: string
enum:
- mandated
atmTerminalEntryMode:
description: 'This field indicates the method used for PAN entry on the ATM terminal to initiate the transaction.
'
type: string
enum:
- chip
- contactless
- contactless-magstripe
- magstripe
- magstripe-fallback
ChargePosType:
description: Describes the kind of POS charge the merchant wants to submit.
type: object
required:
- intent
- cardEntry
- order
- terminalEntryMode
properties:
intent:
$ref: '#/components/schemas/intentPos'
cardEntry:
$ref: '#/components/schemas/cardEntryPos'
order:
$ref: '#/components/schemas/orderPos'
terminalEntryMode:
$ref: '#/components/schemas/terminalEntryMode'
sequence:
$ref: '#/components/schemas/sequencePos'
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
BaseAmountBreakdown:
type: object
required:
- baseAmount
description: "A breakdown of the transaction `value`. \n\nAll provided amounts must exactly add up to `value`.\nProviding a breakdown is only required if any other amounts besides the `baseAmount` are included.\n"
properties:
baseAmount:
allOf:
- description: 'The base transaction value in minor units. For example `$12.34` should be encoded as `1234`.
'
- $ref: '#/components/schemas/posAmountValue'
ChargeAtmType:
description: 'Describes the kind of ATM charge.
'
type: object
additionalProperties: false
required:
- intent
- terminalEntryMode
properties:
intent:
$ref: '#/components/schemas/intentAtm'
terminalEntryMode:
$ref: '#/components/schemas/atmTerminalEntryMode'
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
CardWithOptionalExpiryDate:
description: "This field represents the card or token information. \nThe card credentials can either be passed directly in the request or be referenced using a `key`. "
oneOf:
- $ref: '#/components/schemas/CardInputWithOptionalExpiryDate'
- $ref: '#/components/schemas/schemas-CardByProcessorTokenKey'
components-schemas-lastModified:
type: string
description: The date and time this object was last modified
format: iso-8601-date-time
readOnly: true
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'
ChargeCreateBEPResponse:
type: object
required:
- key
- created
- status
- amount
- type
- merchantAcceptorRef
- fraudLiability
- authorizationIsoFields
- authentication
- version
- card
- localTransactionDateTime
description: 'A BEP charge
'
properties:
key:
$ref: '#/components/schemas/chargeKey'
merchantAcceptorRef:
$ref: '#/components/schemas/components-schemas-AcceptorRef'
card:
$ref: '#/components/schemas/OutputCard'
amount:
$ref: '#/components/schemas/common_Amount'
type:
$ref: '#/components/schemas/BepChargeType'
status:
$ref: '#/components/schemas/StatusBep'
authentication:
$ref: '#/components/schemas/ChargeAuthenticationBEP'
localTransactionDateTime:
$ref: '#/components/schemas/localTransactionDateTime'
transactionReference:
$ref: '#/components/schemas/transactionReference'
fraudLiability:
$ref: '#/components/schemas/fraudLiability'
clearingMode:
type: string
enum:
- auto
authorizationIsoFields:
$ref: '#/components/schemas/authorizationIsoFieldsBancontact'
billingAddress:
$ref: '#/components/schemas/BillingAddress'
created:
$ref: '#/components/schemas/openapi_components-schemas-created'
lastModified:
$ref: '#/components/schemas/components-schemas-lastModified'
version:
$ref: '#/components/schemas/schemas-version'
riskAssessmentKey:
type: string
description: 'Key that was returned by the transaction risk assessment.
'
pattern: ^rak-[a-zA-Z0-9]+$
minLength: 5
maxLength: 120
example: rak-1e1dAHhgstYTUhlphPzZ
schemas-cvc:
type: string
description: 'The CVC of the card
For Mastercard, Visa, Discover, Bancontact, and Diners the length must be 3.
For American Express the length must be 4.
'
pattern: ^\d+$
minLength: 3
maxLength: 4
example: '123'
AuthorizationStatusWithoutPartialApproval:
type: string
description: Authorization status of the charge.
enum:
- none
- approved
- declined
- reversed
example: approved
schemas-holderName:
type: string
description: 'The name of the cardholder.
In case of AVS, it will be truncated by the scheme if longer than 26 characters (Visa) or 22 characters (Mastercard).
More information here: [Cardholder name restrictions](charges.html#section/Appendix-A-Cardholder-Name-Restrictions)
'
pattern: ^[\x20-\x7E\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
minLength: 1
maxLength: 120
example: Joe Cardholder
ResponsePosAmount:
type: object
required:
- value
- currency
additionalProperties: false
description: 'The amount encoded as an object with a `value` in minor units and a `currency` code.
An optional `breakdown` can be provided to indicate specific sub-amounts.
'
properties:
value:
allOf:
- description: 'The full transaction amount in minor units. For example `$12.34` should be encoded as `1234`.
If a `breakdown` is provided, it must exactly add up to this `value`.
'
- $ref: '#/components/schemas/posAmountValue'
currency:
$ref: '#/components/schemas/common_currencyCode'
breakdown:
$ref: '#/components/schemas/ResponseAmountBreakdown'
isoFieldSystemTraceAuditNumber:
type: string
description: Contents of field 11
example: '123456'
discoverSpecificFields:
type: object
description: Discover specific ISO8583 raw values
required:
- network
properties:
network:
type: string
description: Card network providing these fields
enum:
- discover
avsResponseCode:
type: string
description: Contents field 44, usage 2, position 1.
cidResultCode:
type: string
description: Contents field 44, usage 2, position 2.
networkReferenceId:
type: string
description: Contents field 48, position 11-25.
isoFieldEciMastercard:
type: string
description: Contents of field 48, subelement 42, subfield 1, also known as "UCAF Collection Indicator".
example: '2'
PayoutChargeType:
type: object
description: 'Describes the kind of charge the merchant wants to submit.
'
required:
- intent
- cardEntry
- order
- payoutType
properties:
intent:
description: 'The intention of the cardholder.
'
type: string
enum:
- payout
cardEntry:
$ref: '#/components/schemas/PayoutCardEntry'
order:
$ref: '#/components/schemas/PayoutOrder'
payoutType:
description: '- `account-to-account`: Payout transaction for moving money from one account to another account, both of which are owned by the sender. Currently only supported for **Visa** EXPERIMENTAL and **Mastercard**.
- `fast-refund`: Transaction that returns funds to the same card used in the original purchase. MASTERCARD EXPERIMENTAL
- `general-funds-disbursement`: Generic funds disbursement transaction used to push funds from a business to an individual cardholder for various purposes. Currently only supported for **Visa** and **Mastercard**.
- `liquid-assets`: Payout of liquid or cryptocurrency asset proceeds to a card account, e.g., from a sale or cash out. Currently only supported for **Visa**.
- `merchant-disbursement`: Merchant payments for purchase transaction processing where the settlement payment is sent directly to a card account. Currently only supported for **Visa** and **Mastercard**.
- `online-gambling`: Payouts of online casino winnings. Currently only supported for **Visa** and **Mastercard**.
- `person-to-person`: Payout transaction moving funds from the sender''s account to the receiver''s account. Currently only supported for **Mastercard**.
- `wallet-transfer`: Payout transaction for adding funds to a digital wallet, the direct acquisition of cryptocurrency, or the acquisition of liquid assets (for example, stocks, shares, foreign currency). Currently only supported for **Visa**.
'
type: string
enum:
- account-to-account
- fast-refund
- general-funds-disbursement
- liquid-assets
- merchant-disbursement
- online-gambling
- person-to-person
- wallet-transfer
avsResultBEP:
enum:
- none
description: The result of the AVS verification
avs:
type: boolean
description: 'Specifies whether AVS authentication should be used for the charge.
When `true`, `billingAddress` is required.
Not supported for Diners.
'
OutputCard:
type: object
required:
- maskedNumber
additionalProperties: false
description: 'Card data
'
properties:
maskedNumber:
type: string
description: 'The card number used to create this charge, masked according to PCI standards. For card numbers with 16 or more digits, the first 8 and the last 4 digits are visible. For card numbers with 13-15 digits, the first 6 and the last 4 digits are visible. For cards numbers with less than 13 digits, the first 6 and last 2 digits are visible.
'
processorTokenKey:
$ref: '#/components/schemas/schemas-processorTokenKey'
PinBlock:
type: object
description: PIN block related data.
oneOf:
- $ref: '#/components/schemas/PinBlockIso0Iso1'
- $ref: '#/components/schemas/PinBlockIso4'
AccountNumberType:
description: The type of the `accountNumber`.
type: string
enum:
- card-account
- iban-bank-account
- bic-bank-account
- rtn-bank-account
- email
- phone-number
- wallet-id
- social-network-id
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'
authorizationIsoFieldsBancontact:
type: object
required:
- responseCode
- responseCodeDescription
- networkCode
- systemTraceAuditNumber
- retrievalReferenceNumber
- eci
- networkSpecificFields
description: Object containing the raw values from the ISO8583 response message received from the network.
properties:
responseCode:
$ref: '#/components/schemas/isoFieldResponseCode'
responseCodeDescription:
$ref: '#/components/schemas/isoFieldResponseCodeDescription'
authorizationCode:
$ref: '#/components/schemas/isoFieldAuthorizationCode'
networkCode:
type: string
enum:
- none
systemTraceAuditNumber:
$ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
retrievalReferenceNumber:
$ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
eci:
type: string
enum:
- none
networkSpecificFields:
$ref: '#/components/schemas/bancontactSpecificFields'
BepChargeType:
description: 'Describes the kind of charge the merchant wants to submit.
'
type: object
required:
- intent
- cardEntry
- order
properties:
intent:
type: string
description: 'The intention of the cardholder
'
enum:
- purchase
cardEntry:
type: string
description: 'The method used to capture the card details.
'
enum:
- e-commerce
order:
type: string
description: 'The method used to place the order.
'
enum:
- checkout
sequence:
type: string
description: 'Setting this to `initial` flags the charge as the initial charge in a sequence of payments.
**From November 22, 2026 this field will be removed since it currently does not have any effect on the charge creation.**
'
enum:
- initial
deprecated: true
responseIntentEcommerce:
description: 'The intention of the cardholder.
'
type: string
enum:
- purchase
- reservation
- account-status
- refund
ResponseChargeType:
description: 'Describes the kind of charge the merchant wants to submit.
'
type: object
required:
- intent
- cardEntry
- order
properties:
intent:
$ref: '#/components/schemas/responseIntentEcommerce'
cardEntry:
$ref: '#/components/schemas/responseCardEntry'
order:
description: 'The method used to place the order.
'
type: string
enum:
- checkout
- unspecified
- mail
- phone
- one-click
- recurring
- ucof
- installment
- standing-order
sequence:
$ref: '#/components/schemas/sequence'
BEPAuthenticationResult:
type: object
required:
- trm
readOnly: true
description: 'Object containing the information of a BEP transaction.
'
properties:
trm:
description: The method of initiating the BEP authentication. Stands for Transaction Routing Means.
type: string
enum:
- '50'
- '51'
example: '50'
ThreeDsAuthenticationResultResponse:
type: object
readOnly: true
description: Object containing the information of a 3DS transaction.
properties:
version:
description: 'The 3DS protocol version which has been used to perform 3DS.
This information is only available when it has been provided in the request.
'
type: string
enum:
- 2.2.0
directoryServerTransId:
type: string
description: Transaction ID retrieved from the Directory Server
example: 5340af8a-5505-4bf6-abcd-123412341234
visaSpecificFields:
type: object
required:
- transactionIdentifier
description: Visa specific ISO8583 raw values
properties:
transactionIdentifier:
type: string
description: Contents of field 62, subfield 2
example: '238210000026090'
cvv2ResultCode:
type: string
description: Contents of field 44, subfield 10
example: M
avsResultCode:
type: string
description: Contents of field 44, subfield 2
example: Y
paymentAccountReference:
type: string
description: Contents of field 56, dataset 1, tag 1
example: 50020EHB2QT3YBD5KU6OFMSN6BHLU
aniResults:
type: object
description: Contents of field 34, dataset 4. Result of Visa Account Name Inquiry (ANI) check. To request ANI set `type.intent` = `account-status` and provide `card.holderName`
required:
- status
properties:
status:
type: string
description: Contents of field 34, dataset 4, tag C0
fullNameMatch:
type: string
description: Contents of field 34, dataset 4, tag C4
firstNameMatch:
type: string
description: Contents of field 34, dataset 4, tag CA
middleNameMatch:
type: string
description: Contents of field 34, dataset 4, tag C9
lastNameMatch:
type: string
description: Contents of field 34, dataset 4, tag C8
vaaiScore:
type: string
description: Contents of field 104, dataset 5b, tag 85
example: '01'
tokenRequestorId:
type: string
description: Contents of field 123, dataset 68, tag 03. Identifies the Token Requestor Id (TRID)
example: '40000000000'
result3DS:
type: string
description: 'Type of 3DS authentication result.
'
enum:
- full-auth
- attempt
MaskedAccountNumber:
type: string
description: The masked account number.
pattern: ^[a-zA-Z0-9 !#$%&'()*+,./:;<=>?@^_`{|}~"\-\[\]\\]+$
minLength: 1
maxLength: 50
example: '************0007'
schemas-eci:
type: string
description: Zero-padded e-commerce indicator.
minLength: 2
maxLength: 2
pattern: ^\d+$
example: '05'
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'
PinBlockZoneId:
type: string
pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]*$
minLength: 1
maxLength: 128
description: ID of the encryption zone.
example: my-zone
responseCardEntry:
description: 'The method used to capture the card details.
'
type: string
enum:
- e-commerce
- manual
- card-on-file
- terminal
- token
- token-on-file
example: e-commerce
errorStatus:
type: integer
format: int32
description: 'The HTTP status code generated by the origin server for this occurrence
of the problem.
'
FundingPayoutChargeAuthentication:
type: object
required:
- sca
- cvc
- avs
description: 'Object container for authentication. If present, contains Strong Customer Authentication (SCA) information, but also indicates whether CVC and AVS was used.
'
properties:
sca:
$ref: '#/components/schemas/fundingPayoutSca'
cvc:
$ref: '#/components/schemas/cvcResult'
avs:
$ref: '#/components/schemas/avsResult'
PayoutCardEntry:
type: string
description: 'The method used to capture the card details.
'
enum:
- e-commerce
errorDetail:
type: string
description: 'A human readable explanation specific to this occurrence of the problem.
'
CardholderBillingAmount:
allOf:
- $ref: '#/components/schemas/common_Amount'
- type: object
required:
- conversionRate
properties:
conversionRate:
type: object
required:
- cardholderBillingConversionRate
- decimalIndicator
properties:
cardholderBillingConversionRate:
type: number
decimalIndicator:
type: number
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
CardInput:
type: object
title: Card Input
required:
- number
- expiryMonth
- expiryYear
additionalProperties: false
description: Card data
properties:
number:
$ref: '#/components/schemas/components-schemas-pan'
expiryMonth:
$ref: '#/components/schemas/expiryMonth'
expiryYear:
$ref: '#/components/schemas/components-schemas-expiryYear'
cvc:
$ref: '#/components/schemas/schemas-cvc'
holderName:
$ref: '#/components/schemas/schemas-holderName'
charges-funding_FundingSender:
type: object
description: Details of the sender of the funds.
required:
- firstName
- lastName
- address
properties:
type:
allOf:
- description: The type of the sender.
- $ref: '#/components/schemas/SenderReceiverType'
organizationName:
allOf:
- description: The name of the organization.
- $ref: '#/components/schemas/SenderReceiverOrganizationName'
firstName:
allOf:
- description: Sender's first name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
middleName:
allOf:
- description: Sender's middle name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
lastName:
allOf:
- description: Sender's last name.
- $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
accountNumber:
allOf:
- description: The masked account number of the sender.
- $ref: '#/components/schemas/MaskedAccountNumber'
accountNumberType:
$ref: '#/components/schemas/AccountNumberType'
address:
allOf:
- description: The address of the sender.
- $ref: '#/components/schemas/components-schemas-Address'
identification:
allOf:
- description: Identification used to verify the sender.
- $ref: '#/components/schemas/charges-funding_Identification'
nationality:
allOf:
- description: The nationality of the sender. Only relevant for Visa transactions.
- $ref: '#/components/schemas/schemas-CountryCode'
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
ChargeRefundMastercardInitialTransactionReference:
title: Mastercard
type: object
additionalProperties: false
properties:
transactionLinkId:
type: string
description: Mastercard generated Transaction Link Identifier (TLID). This value comes from the field 105 subelement 001 of the original transaction response. Use only for Refund charges.
minLength: 1
maxLength: 22
example: qtQRrYlsSvSecPJDBzrzYA
errorType:
type: string
description: 'A relative URI reference, this property can be used to perform automated error handling.
'
intentAtm:
description: 'The intention of the cardholder for ATM transactions
'
type: string
enum:
- withdrawal
FundingTransactionType:
type: string
enum:
- cryptocurrency
- central-bank-digital-currency
- stablecoin
- blockchain-native-coin
- non-fungible-token
description: 'In case of a special transaction type, this allows you to specify which one. EXPERIMENTAL
- `cryptocurrency`: A transaction involving the purchasing of cryptocurrencies. Use this for Visa only if specific type of digital asset cannot be determined. Use this for Mastercard only when `fundingType` is `account-to-account`. VISAMASTERCARD
- `central-bank-digital-currency`: A transaction involving purchase of a Central Bank Digital Currency (CBDC). VISA
- `stablecoin`: A transaction involving purchase of stablecoins. VISA
- `blockchain-native-coin`: A transaction involving purchase of a non fiat backed blockchain coin. VISA
- `non-fungible-token`: A transaction involving purchase of a Non Fungible Token (NFT). VISA
'
DccEnabled:
type: object
description: DCC is enabled for this transaction
required:
- enabled
- preConversionAmount
additionalProperties: false
properties:
enabled:
type: boolean
enum:
- true
description: Specifies if DCC is enabled for this transaction
preConversionAmount:
allOf:
- description: The amount before currency conversion, in the cardholder's home currency
- $ref: '#/components/schemas/AtmAmount'
examples:
funding_Request:
summary: Create a funding charge
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '4761070000000905'
expiryYear: 2030
expiryMonth: 12
holderName: Joe Cardholder
type:
intent: funding
cardEntry: e-commerce
order: checkout
fundingType: account-to-account
amount:
value: 200
currency: EUR
receiver:
firstName: Joe
lastName: Cardholder
accountNumber: '4200350000000801'
accountNumberType: card-account
address:
line1: Entrada 300
city: Amsterdam
stateOrProvince: NL
postalCode: 1114AA
countryCode:
alpha2: NL
sender:
firstName: Joy
lastName: Cardholder
accountNumber: '4761340000000035'
accountNumberType: card-account
address:
line1: Entrada 600
city: Amsterdam
stateOrProvince: NL
postalCode: 1114AA
countryCode:
alpha2: NL
transactionReference: FR1
network-token_Request:
summary: Create a charge using a network token
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '4761070000000905'
expiryYear: 2030
expiryMonth: 12
cvc: '196'
holderName: Joe Cardholder
tokenDetails:
type: network
tokenCryptogram: 112233445566778899001122334=
type:
intent: purchase
cardEntry: token
order: checkout
amount:
value: 2000
currency: EUR
avs_Request:
summary: Creating a charge with AVS authentication
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '4761070000000905'
expiryYear: 2030
expiryMonth: 12
cvc: '196'
holderName: Joe Cardholder
type:
intent: purchase
cardEntry: e-commerce
order: checkout
amount:
value: 2000
currency: EUR
avs: true
billingAddress:
countryCode:
alpha3: NLD
stateOrProvince: NH
city: Amsterdam
line1: Langtown Road
line2: '4200'
postalCode: 1234BC
recurring_Response:
summary: Creating the initial charge of a recurring sequence
value:
key: chg-3nt0YDfssspoTmAONWxa
merchantAcceptorRef:
key: mac-1eOdAHhgstYTUhlphPFf
version: 3
card:
maskedNumber: 47610700****0905
amount:
value: 2000
currency: EUR
type:
intent: purchase
cardEntry: e-commerce
order: recurring
sequence: initial
clearingMode: auto
status:
authentication: none
authorization: approved
clearing: pending
authentication:
sca:
compliance: out-of-scope
complianceReason: none
method: none
cvc: none
avs: none
localTransactionDateTime: '2023-09-07T10:00:36.241Z'
fraudLiability: acquirer
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: F6D651
systemTraceAuditNumber: '180298'
retrievalReferenceNumber: '325010180298'
eci: '07'
networkCode: '0000'
networkSpecificFields:
transactionIdentifier: '230022687321855'
created: '2023-09-07T10:00:36.241Z'
version: 1
funding_Response:
summary: Create a funding charge
value:
merchantAcceptorRef:
key: mac-3rCoHlIyxYkhLa0YRTzT
version: 1
key: chg-3sBWL1ZGCvgzMufWEjMy
card:
maskedNumber: 47610700****0905
amount:
value: 200
currency: EUR
type:
intent: funding
fundingType: account-to-account
cardEntry: e-commerce
order: checkout
localTransactionDateTime: '2023-10-13T12:24:08.501Z'
transactionReference: FR1
receiver:
firstName: Joe
lastName: Cardholder
accountNumber: '**0801'
accountNumberType: card-account
address:
countryCode:
alpha2: NL
alpha3: NLD
numeric: '528'
stateOrProvince: NL
city: Amsterdam
line1: Entrada 300
postalCode: 1114AA
sender:
firstName: Joy
lastName: Cardholder
accountNumber: '**0035'
accountNumberType: card-account
address:
countryCode:
alpha2: NL
alpha3: NLD
numeric: '528'
stateOrProvince: NL
city: Amsterdam
line1: Entrada 300
postalCode: 1114AA
status:
authentication: none
authorization: approved
clearing: none
fraudLiability: acquirer
created: '2023-10-13T12:24:08.502Z'
version: 1
authentication:
sca:
compliance: out-of-scope
complianceReason: none
method: none
cvc: none
avs: none
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
systemTraceAuditNumber: '669292'
retrievalReferenceNumber: '328612669292'
eci: none
networkCode: '0000'
networkSpecificFields:
transactionIdentifier: unknown
clearingMode: none
3ds-provided_Request:
summary: Create charge with a 3DS result
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '4761070000000905'
expiryYear: 2030
expiryMonth: 12
holderName: Joe Cardholder
type:
intent: purchase
cardEntry: e-commerce
order: checkout
amount:
value: 1800
currency: EUR
threeDsAuthenticationResult:
authenticationValue: kANBCCDDYJYjadADpka8KoQBXM
directoryServerTransId: 5340af8a-5505-4bf6-abcd-123412341234
google-pay_Response:
summary: Create a charge using a Google Pay token
value:
key: chg-1e1dAHhgstYTUhlphPzZ
merchantAcceptorRef:
key: mac-1eOdAHhgstYTUhlphPFf
version: 1
card:
maskedNumber: 47610700****0905
tokenDetails:
type: google-pay
eci: '05'
amount:
value: 2000
currency: EUR
type:
intent: purchase
cardEntry: token
order: checkout
clearingMode: auto
status:
authentication: none
authorization: approved
clearing: pending
authentication:
sca:
compliance: out-of-scope
complianceReason: moto
method: none
cvc: match
avs: none
localTransactionDateTime: '2019-08-24T14:15:22Z'
fraudLiability: acquirer
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: 4A4316
networkCode: '0000'
systemTraceAuditNumber: '123456'
retrievalReferenceNumber: '131608123456'
eci: '05'
networkSpecificFields:
transactionIdentifier: '195764913831324'
cvv2ResultCode: M
created: '2019-08-24T14:15:22Z'
version: 1
recurring_Request:
summary: Creating the initial charge of a recurring sequence
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '4761070000000905'
expiryYear: 2030
expiryMonth: 12
holderName: Joe Cardholder
type:
intent: purchase
cardEntry: e-commerce
order: recurring
amount:
value: 2599
currency: EUR
manual-entry_Response:
summary: Create POS charge with manual entry
value:
key: chg-3pkWfhw0Sc3JlIiWiub2
merchantAcceptorRef:
key: mac-1TQ4EL0rI3Uz06VF2a0f
version: 1
card:
maskedNumber: 52869400****0205
amount:
value: 2050
currency: EUR
type:
intent: purchase
cardEntry: terminal
order: counter
terminalEntryMode: manual-entry
clearingMode: auto
status:
authentication: none
authorization: approved
clearing: pending
localTransactionDateTime: '2023-09-20T12:55:18.216Z'
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: 07F3CF
systemTraceAuditNumber: '669292'
retrievalReferenceNumber: '326312669292'
eci: '00'
networkCode: MCS
networkSpecificFields:
traceId: 'MCS7915710527 '
banknetReference: '791571'
terminal:
id: 17s2d469
type: softpos
attended: true
capabilities:
- contactlessChip
- noCvm
- onlinePin
created: '2023-09-20T12:55:18.216Z'
version: 1
payout_Request:
summary: Create a gaming payout charge
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '4761070000000905'
expiryYear: 2030
expiryMonth: 12
cvc: '196'
holderName: Joe Cardholder
type:
intent: payout
cardEntry: e-commerce
order: checkout
payoutType: general-funds-disbursement
amount:
value: 100
currency: EUR
sender:
firstName: John
lastName: Doe
address:
line1: 2000 Purchase Street
line2: Unit 43-1
city: Purchase
stateOrProvince: New York
postalCode: NY10577
countryCode:
alpha2: US
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
InvalidRequestErrorExample:
value:
type: /silverflow/problems/charge/invalid-request
title: Invalid Request
status: 400
detail: Cannot create the charge due to one or more errors in the charge request.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
BlockedMerchantAcceptorErrorExample:
value:
type: /silverflow/problems/merchant-acceptor/blocked
title: Blocked Merchant Acceptor
status: 409
detail: The merchant acceptor with key 'mac-1eOdAHhgstYTUhlphPFf' is blocked from creating charges.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
network-token_Response:
summary: Create a charge using a network token
value:
key: chg-1e1dAHhgstYTUhlphPzZ
merchantAcceptorRef:
key: mac-1eOdAHhgstYTUhlphPFf
version: 1
card:
maskedNumber: 47610700****0905
tokenDetails:
type: network
amount:
value: 2000
currency: EUR
type:
intent: purchase
cardEntry: token
order: checkout
clearingMode: auto
status:
authentication: none
authorization: approved
clearing: pending
authentication:
sca:
compliance: out-of-scope
complianceReason: moto
method: none
cvc: not-processed
avs: none
localTransactionDateTime: '2019-08-24T14:15:22Z'
fraudLiability: acquirer
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: 4A4316
networkCode: '0000'
systemTraceAuditNumber: '123456'
retrievalReferenceNumber: '131608123456'
eci: '05'
networkSpecificFields:
transactionIdentifier: '195764913831324'
cvv2ResultCode: P
created: '2019-08-24T14:15:22Z'
version: 1
examples-Request:
summary: Create a Mail Order/Telephone Order (MOTO) charge
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-25oJsQ99GBpWjcMQidKS
card:
number: '4761070000000905'
expiryYear: 2030
expiryMonth: 12
cvc: '196'
holderName: Joe Cardholder
type:
intent: purchase
cardEntry: manual
order: phone
amount:
value: 2000
currency: EUR
payout_Response:
summary: Create a gaming payout charge
value:
key: chg-3llz36aua7HZLDG2aSpE
merchantAcceptorRef:
key: mac-1eOdAHhgstYTUhlphPFf
version: 1
card:
maskedNumber: 47610700****0905
amount:
value: 100
currency: EUR
localTransactionDateTime: '2023-08-23T12:55:09.425Z'
type:
intent: payout
cardEntry: e-commerce
order: checkout
payoutType: general-funds-disbursement
sender:
firstName: John
lastName: Doe
address:
countryCode:
numeric: '840'
alpha2: US
alpha3: USA
stateOrProvince: New York
city: Purchase
line1: 2000 Purchase Street
line2: Unit 43-1
postalCode: NY10577
status:
authentication: none
authorization: approved
clearing: pending
created: '2023-08-23T12:55:09.425Z'
version: 1
authentication:
sca:
compliance: out-of-scope
complianceReason: none
method: none
cvc: match
avs: none
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: A68B0A
systemTraceAuditNumber: '657595'
retrievalReferenceNumber: '323512657595'
eci: '0'
networkCode: MCS
networkSpecificFields:
traceId: 'MCS4056680527 '
banknetReference: '405668'
clearingMode: none
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
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
3ds-provided_Response:
summary: Create charge with a 3DS result
value:
key: chg-3nsA2szdjeRXOjVmDjcc
merchantAcceptorRef:
key: mac-1eOdAHhgstYTUhlphPFf
version: 3
card:
maskedNumber: 47610700****0905
amount:
value: 1800
currency: EUR
type:
intent: purchase
cardEntry: e-commerce
order: checkout
clearingMode: auto
status:
authentication: authenticated
authorization: approved
clearing: pending
authentication:
sca:
compliance: mandated
complianceReason: mandated
method: 3ds2
result:
directoryServerTransId: 5340af8a-5505-4bf6-abcd-123412341234
cvc: none
avs: none
localTransactionDateTime: '2023-09-07T08:49:47.140Z'
fraudLiability: issuer
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: 8ECD86
systemTraceAuditNumber: '180178'
retrievalReferenceNumber: '325008180178'
eci: '05'
networkCode: '0000'
networkSpecificFields:
transactionIdentifier: '156252053618075'
created: '2023-09-07T08:49:47.140Z'
version: 1
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
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
UnexpectedCurrencyErrorExample:
value:
type: /silverflow/problems/bin/unexpected-currency
title: Unexpected Currency
status: 409
detail: Bin 'bin-1iXRhbDjrT2Yxvo0mSZN' only supports currency 'EUR', but the charge request provides 'USD' as 'amount.currency'.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
MissingPosAddressErrorExample:
value:
type: /silverflow/problems/merchant-acceptor/missing-pos-address
title: Missing Point of Sale Address
status: 409
detail: The merchant acceptor with key 'mac-34EaiVHSeqwAVuS6Gvd' is missing 'pointOfSaleAddress'.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
BlockedBinErrorExample:
value:
type: /silverflow/problems/merchant-acceptor/blocked
title: Blocked Merchant Acceptor
status: 409
detail: This BIN is not permitted to submit charges.
instance: /silverflow/a1451a9d-f66d-4ef7-8f5d-d48564a2bb3a
manual-entry_Request:
summary: Create POS charge with manual entry
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '5286940020000205'
expiryYear: 2030
expiryMonth: 12
amount:
value: 2050
currency: EUR
type:
intent: purchase
cardEntry: terminal
order: counter
terminalEntryMode: manual-entry
terminal:
id: 17s2d469
type: pos
attended: true
capabilities:
- keyEntry
- contactChip
- contactlessChip
- noCvm
- onlinePin
- signature
- oneTap
clearingMode: auto
avs_Response:
summary: Creating a charge with AVS authentication
value:
key: chg-3nsNEo5srpD8XxLrbQ48
merchantAcceptorRef:
key: mac-1eOdAHhgstYTUhlphPFf
version: 3
card:
maskedNumber: 47610700****0905
amount:
value: 2000
currency: EUR
type:
intent: purchase
cardEntry: e-commerce
order: checkout
clearingMode: auto
status:
authentication: none
authorization: approved
clearing: pending
authentication:
sca:
compliance: out-of-scope
complianceReason: none
method: none
cvc: none
avs: match
localTransactionDateTime: '2023-09-07T09:25:34.184Z'
fraudLiability: acquirer
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: 0EDA5E
systemTraceAuditNumber: '180295'
retrievalReferenceNumber: '325009180295'
eci: '07'
networkCode: '0000'
networkSpecificFields:
transactionIdentifier: '262649890621030'
cvv2ResultCode: C
avsResultCode: Y
billingAddress:
countryCode:
alpha2: NL
alpha3: NLD
numeric: '528'
stateOrProvince: NH
city: Amsterdam
line1: Langtown Road
line2: '4200'
postalCode: 1234BC
created: '2023-09-07T09:25:34.184Z'
version: 1
CannotDetermineCardNetworkErrorExample:
value:
type: /silverflow/problems/charge/cannot-determine-card-network-by-card-number
title: Cannot Determine Card Network By Card Number
status: 409
detail: Could not determine a card network for the provided `cardNumber`.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
components-examples-ReferencedEntityNotFoundErrorExample:
value:
type: /silverflow/problems/referenced-entity-not-found
title: Referenced Entity Not Found
status: 409
detail: The referenced acceptor with key 'mac-1eOdAHhgstYTUhlphPFf' was not found.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
reservation_Request:
summary: Create a charge with pre-authorization
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '4761070000000905'
expiryYear: 2030
expiryMonth: 12
holderName: Joe Cardholder
type:
intent: reservation
cardEntry: e-commerce
order: checkout
amount:
value: 2000
currency: EUR
clearingMode: manual
network-token-3ds_Request:
summary: Create a charge using a network token with 3DS authentication
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '4761070000000905'
expiryYear: 2030
expiryMonth: 12
cvc: '196'
holderName: Joe Cardholder
tokenDetails:
type: network
tokenCryptogram: 112233445566778899001122334=
type:
intent: purchase
cardEntry: token
order: checkout
amount:
value: 2000
currency: EUR
threeDsAuthenticationResult:
authenticationValue: kANBCCDDYJYjadADpka8KoQBXMqS
directoryServerTransId: 5340af8a-5505-4bf6-abcd-123412341234
moto_Response:
summary: Create a Mail Order/Telephone Order (MOTO) charge
value:
key: chg-3k3RijlWHj0YkOdU2g9L
merchantAcceptorRef:
key: mac-25oJsQ99GBpWjcMQidKS
version: 1
card:
maskedNumber: 47610700****0905
amount:
value: 2000
currency: EUR
type:
intent: purchase
cardEntry: manual
order: phone
clearingMode: auto
status:
authentication: none
authorization: approved
clearing: pending
authentication:
sca:
compliance: out-of-scope
complianceReason: moto
method: none
cvc: match
avs: none
localTransactionDateTime: '2023-08-14T12:23:43.014Z'
fraudLiability: acquirer
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: 13AE53
networkCode: '0000'
systemTraceAuditNumber: '356286'
retrievalReferenceNumber: '322612356286'
eci: '01'
networkSpecificFields:
transactionIdentifier: '209324308044810'
cvv2ResultCode: M
created: '2023-08-14T12:23:43.014Z'
version: 1
examples-Response:
summary: Create POS charge with online PIN
value:
key: chg-3pkSK2b2ES9ZTiYM4GWZ
merchantAcceptorRef:
key: mac-1TQ4EL0rI3Uz06VF2a0f
version: 1
card:
maskedNumber: 52869400****0205
amount:
value: 2050
currency: EUR
type:
intent: purchase
cardEntry: terminal
order: counter
terminalEntryMode: contactless
clearingMode: auto
status:
authentication: none
authorization: approved
clearing: pending
localTransactionDateTime: '2023-09-20T12:46:05.516Z'
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: '547158'
systemTraceAuditNumber: '665356'
retrievalReferenceNumber: '326312665356'
eci: '00'
networkCode: MCS
networkSpecificFields:
traceId: 'MCS8428230527 '
banknetReference: '842823'
terminal:
id: 17s2d469
type: softpos
attended: true
capabilities:
- contactlessChip
- noCvm
- onlinePin
created: '2023-09-20T12:46:05.516Z'
version: 1
network-token-3ds_Response:
summary: Create a charge using a network token with 3DS authentication
value:
key: chg-1e1dAHhgstYTUhlphPzZ
merchantAcceptorRef:
key: mac-1eOdAHhgstYTUhlphPFf
version: 1
card:
maskedNumber: 47610700****0905
tokenDetails:
type: network
amount:
value: 2000
currency: EUR
type:
intent: purchase
cardEntry: token
order: checkout
clearingMode: auto
status:
authentication: none
authorization: approved
clearing: pending
authentication:
sca:
compliance: mandated
complianceReason: mandated
method: 3ds2
result:
directoryServerTransId: 5340af8a-5505-4bf6-abcd-123412341234
cvc: not-processed
avs: none
localTransactionDateTime: '2019-08-24T14:15:22Z'
fraudLiability: acquirer
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: 4A4316
networkCode: '0000'
systemTraceAuditNumber: '123456'
retrievalReferenceNumber: '131608123456'
eci: '05'
networkSpecificFields:
transactionIdentifier: '195764913831324'
cvv2ResultCode: P
created: '2019-08-24T14:15:22Z'
version: 1
reservation_Response:
summary: Create a charge with pre-authorization
value:
key: chg-3nsVGucquuDDcMbHnEo0
merchantAcceptorRef:
key: mac-1eOdAHhgstYTUhlphPFf
version: 3
card:
maskedNumber: 47610700****0905
amount:
value: 2000
currency: EUR
type:
intent: reservation
cardEntry: e-commerce
order: checkout
clearingMode: manual
status:
authentication: none
authorization: approved
clearing: pending
authentication:
sca:
compliance: out-of-scope
complianceReason: none
method: none
cvc: none
avs: none
localTransactionDateTime: '2023-09-07T09:46:41.401Z'
fraudLiability: acquirer
authorizationIsoFields:
responseCode: '00'
responseCodeDescription: Approved
authorizationCode: 84D28D
systemTraceAuditNumber: '180296'
retrievalReferenceNumber: '325009180296'
eci: '07'
networkCode: '0000'
networkSpecificFields:
transactionIdentifier: '188781568925096'
created: '2023-09-07T09:46:41.401Z'
version: 1
examples-IncompatibleCardNetworkErrorExample:
value:
type: /silverflow/problems/bin/unexpected-network
title: Incompatible Card Network
status: 409
detail: The provided card number is not compatible with the merchant acceptor, expected card number to be of network 'visa'.
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
online-pin_Request:
summary: Create POS charge with online PIN
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '5286940020000205'
expiryYear: 2030
expiryMonth: 12
amount:
value: 2050
currency: EUR
type:
intent: purchase
cardEntry: terminal
order: counter
terminalEntryMode: contactless
track2Data: 5286940020000205D30122010123456789
emvData: 820219808407A00000000410109505000000800101020880
pinBlock:
block: D766AAA13ED5CA50
format: ISO-0
zoneId: pos-gateway
keyId: '0001'
terminal:
id: 17s2d469
type: softpos
attended: true
capabilities:
- contactlessChip
- noCvm
- onlinePin
clearingMode: auto
google-pay_Request:
summary: Create a charge using a Google Pay token
value:
merchantAcceptorResolver:
merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
card:
number: '4761070000000905'
expiryYear: 2030
expiryMonth: 12
cvc: '196'
holderName: Joe Cardholder
tokenDetails:
type: google-pay
eci: '05'
threeDsCryptogram: 112233445566778899001122334=
type:
intent: purchase
cardEntry: token
order: checkout
amount:
value: 2000
currency: EUR
examples-AuthenticationRequiredExample:
value:
type: /silverflow/problems/authentication-required
title: Authentication Required
status: 401
detail: Authentication Required
instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
IncompatibleAuthenticationStatusExample:
value:
type: /silverflow/problems/charge/incompatible-authentication-status
title: Incompatible Authentication Status
status: 409
detail: Authentication status 'non-authenticated' is not supported for this operation.'
instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
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
IncompatibleCardErrorExample:
value:
type: /silverflow/problems/charge/incompatible-card
title: Incompatible Card
status: 409
detail: The country code of both the merchant and the card is 'NLD', but the card is a cross-border-only card.
instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
IncompatibleMccErrorExample:
value:
type: /silverflow/problems/merchant-acceptor/incompatible-mcc
title: Incompatible Merchant Category Code
status: 409
detail: The merchant acceptor with key 'mac-g4EaiVHfd2qwAVuS6Gv' has MCC '8398', but expected '7995'.
instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
responses:
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'
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'
components-responses-TooManyRequestsError:
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsErrorDetails'
examples:
TooManyRequestsErrorExample:
$ref: '#/components/examples/TooManyRequestsErrorExample'
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'
parameters:
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
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