openapi: 3.2.0 info: title: Silverflow 3DS Authentication API version: 1.417.0 contact: name: API Support email: support@silverflow.com license: name: Commercial description: 'Operations tagged 3DS Authentication 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: 3DS Authentication description: 3DS Authentication Endpoints paths: /3ds: post: operationId: create3dsAuthentication summary: Create 3DS Authentication description: 'Create a new 3DS authentication. This endpoint can potentially trigger a 3DS challenge flow. Requires the `threeDs:Create` permission. Diners support is EXPERIMENTAL. Standalone merchant info (`merchantInfo`) is EXPERIMENTAL. ' tags: - 3DS Authentication requestBody: description: 'Create a 3DS authentication. ' required: true content: application/json: schema: $ref: '#/components/schemas/PublicCreate3dsRequest' examples: threeDsWithMerchantAcceptor: $ref: '#/components/examples/ThreeDsRequestWithMerchantAcceptorExample' threeDsWithMerchantInfo: $ref: '#/components/examples/ThreeDsRequestWithMerchantInfoExample' responses: '201': description: The 3DS authentication entity headers: Location: description: The URL of the newly created 3DS authentication schema: type: string content: application/json: schema: oneOf: - $ref: '#/components/schemas/ThreeDsFrictionlessAuthenticated' - $ref: '#/components/schemas/ThreeDsChallenge' - $ref: '#/components/schemas/ThreeDsNoFlowNoAuth' - $ref: '#/components/schemas/ThreeDsDataOnly' examples: challenge: $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantAcceptorExample' frictionless: $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantAcceptorExample' frictionlessWithMerchantInfo: $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantInfoExample' challengeWithMerchantInfo: $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantInfoExample' '400': description: Bad Request content: application/json: schema: oneOf: - $ref: '#/components/schemas/InvalidRequestErrorDetails' - $ref: '#/components/schemas/schemas-InvalidInputErrorDetails' examples: InvalidRequestErrorExample: $ref: '#/components/examples/InvalidRequestExample' InvalidInputErrorExample: $ref: '#/components/examples/InvalidInputErrorExample' '401': $ref: '#/components/responses/components-responses-UnauthorizedError' '409': description: Conflict content: application/json: schema: oneOf: - $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails' - $ref: '#/components/schemas/UnsupportedCardNetworkErrorDetails' - $ref: '#/components/schemas/UnsupportedCardNetworkRegionErrorDetails' examples: ReferencedEntityNotFoundErrorExample: $ref: '#/components/examples/ReferencedEntityNotFoundErrorExample' UnsupportedCardNetwork: $ref: '#/components/examples/UnsupportedCardNetwork' UnsupportedCardNetworkRegion: $ref: '#/components/examples/UnsupportedCardNetworkRegion' '422': description: Unprocessable Content content: application/json: schema: oneOf: - $ref: '#/components/schemas/UnsupportedProtocolVersionErrorDetails' - $ref: '#/components/schemas/UnenrolledAccountNumberErrorDetails' - $ref: '#/components/schemas/UnenrolledAcquireOrMerchantErrorDetails' examples: UnsupportedProtocolVersionCardExample: $ref: '#/components/examples/UnsupportedProtocolVersionCardExample' UnenrolledAccountNumberExample: $ref: '#/components/examples/UnenrolledAccountNumberExample' UnenrolledAcquireOrMerchantExample: $ref: '#/components/examples/UnenrolledAcquireOrMerchantExample' '429': $ref: '#/components/responses/components-responses-TooManyRequestsError' '500': $ref: '#/components/responses/InternalServerError' get: operationId: get3dsAuthentications summary: List 3DS Authentications description: 'List 3DS transactions. 3DS authentications returned from this endpoint will never have the `authenticationValue` property in either `ares` or `rreq` properties. Requires the `threeDs:List` permission. ' tags: - 3DS Authentication parameters: - $ref: '#/components/parameters/parameters-offsetToken' - $ref: '#/components/parameters/sortOrder' - $ref: '#/components/parameters/limit' responses: '200': description: A (paged) list of 3DS authentications. content: application/json: schema: $ref: '#/components/schemas/threeDsPage' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/InvalidOffsetTokenErrorDetails' examples: InvalidOffsetToken: $ref: '#/components/examples/InvalidOffsetTokenExample' '401': $ref: '#/components/responses/components-responses-UnauthorizedError' '429': $ref: '#/components/responses/components-responses-TooManyRequestsError' '500': $ref: '#/components/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 /3ds/3ri: post: operationId: create3riAuthentication summary: Create 3RI Authentication description: "Create a new 3RI authentication. Also known as merchant-initiated authentications, allows merchants to authenticate a transaction without the direct involvement of the cardholder.\n\nRequires the `threeDs:Create` permission.\n\nDiners support is EXPERIMENTAL. \n\nStandalone merchant info (`merchantInfo`) is EXPERIMENTAL.\n" tags: - 3DS Authentication requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ThreeRiRequest' examples: threeRiWithMerchantAcceptor: $ref: '#/components/examples/RequestWithMerchantAcceptor' threeRiWithMerchantInfo: $ref: '#/components/examples/RequestWithMerchantInfo' responses: '201': description: The 3RI authentication entity headers: Location: description: The URL of the newly created 3RI authentication schema: type: string content: application/json: schema: $ref: '#/components/schemas/ThreeRiResponse' examples: authenticated: $ref: '#/components/examples/ResponseWithMerchantAcceptor' authenticatedWithMerchantInfo: $ref: '#/components/examples/ResponseWithMerchantInfo' '400': description: Bad Request content: application/json: schema: oneOf: - $ref: '#/components/schemas/InvalidRequestErrorDetails' - $ref: '#/components/schemas/schemas-InvalidInputErrorDetails' examples: InvalidRequestErrorExample: $ref: '#/components/examples/InvalidRequestExample' InvalidInputErrorExample: $ref: '#/components/examples/InvalidInputErrorExample' '401': $ref: '#/components/responses/components-responses-UnauthorizedError' '409': description: Conflict content: application/json: schema: oneOf: - $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails' - $ref: '#/components/schemas/UnsupportedCardNetworkErrorDetails' - $ref: '#/components/schemas/UnsupportedCardNetworkRegionErrorDetails' examples: ReferencedEntityNotFoundErrorExample: $ref: '#/components/examples/ReferencedEntityNotFoundErrorExample' UnsupportedCardNetwork: $ref: '#/components/examples/UnsupportedCardNetwork' UnsupportedCardNetworkRegion: $ref: '#/components/examples/UnsupportedCardNetworkRegion' '422': description: Unprocessable Content content: application/json: schema: oneOf: - $ref: '#/components/schemas/UnsupportedProtocolVersionErrorDetails' - $ref: '#/components/schemas/UnenrolledAccountNumberErrorDetails' - $ref: '#/components/schemas/UnenrolledAcquireOrMerchantErrorDetails' examples: UnsupportedProtocolVersion3riExample: $ref: '#/components/examples/UnsupportedProtocolVersion3riExample' UnsupportedProtocolVersionCardExample: $ref: '#/components/examples/UnsupportedProtocolVersionCardExample' UnenrolledAccountNumberExample: $ref: '#/components/examples/UnenrolledAccountNumberExample' UnenrolledAcquireOrMerchantExample: $ref: '#/components/examples/UnenrolledAcquireOrMerchantExample' '429': $ref: '#/components/responses/components-responses-TooManyRequestsError' '500': $ref: '#/components/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 /3ds/{threedsKey}: get: operationId: get3dsAuthentication summary: Get 3DS Authentication description: 'Returns the 3DS authentication indentified by the key. Requires `threeDs:Get` permission. ' tags: - 3DS Authentication parameters: - $ref: '#/components/parameters/threedsKey' responses: '200': description: The 3DS authentication content: application/json: schema: $ref: '#/components/schemas/ThreeDs' examples: frictionlessWithMerchantAcceptor: $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantAcceptorExample' challengeWithMerchantAcceptor: $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantAcceptorExample' authenticatedChallengeWithMerchantAcceptor: $ref: '#/components/examples/ThreeDsAuthenticatedChallengeResponseWithMerchantAcceptorExample' threeRiWithMerchantAcceptor: $ref: '#/components/examples/ResponseWithMerchantAcceptor' frictionlessWithMerchantInfo: $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantInfoExample' challengeWithMerchantInfo: $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantInfoExample' authenticatedChallengeWithMerchantInfo: $ref: '#/components/examples/ThreeDsAuthenticatedChallengeResponseWithMerchantInfoExample' threeRiWithMerchantInfo: $ref: '#/components/examples/ResponseWithMerchantInfo' '401': $ref: '#/components/responses/components-responses-UnauthorizedError' '404': description: Entity not found content: application/json: schema: $ref: '#/components/schemas/EntityNotFoundErrorDetails' examples: InternalServerErrorExample: $ref: '#/components/examples/EntityNotFoundExample' '429': $ref: '#/components/responses/components-responses-TooManyRequestsError' '500': $ref: '#/components/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 /3ds/cardRanges: post: operationId: 3dsCardRanges summary: Retrieve Card Ranges description: 'Obtain information about which 3DS versions and features are supported for the given PAN. In case of co-branded cards information from both brands is retrieved. Requires `threeDs:Create` permission. ' tags: - 3DS Authentication requestBody: description: 'Details of the PAN to retrieve information about. ' required: true content: application/json: schema: $ref: '#/components/schemas/ThreeDsCardRangesRequest' examples: withoutNetwork: $ref: '#/components/examples/Request' responses: '200': description: PAN information. content: application/json: schema: type: array items: $ref: '#/components/schemas/ThreeDsCardRangesResponse' examples: withoutNetwork: $ref: '#/components/examples/Response' '400': description: Bad Request content: application/json: schema: oneOf: - $ref: '#/components/schemas/InvalidRequestErrorDetails' - $ref: '#/components/schemas/schemas-InvalidInputErrorDetails' examples: InvalidRequestErrorExample: $ref: '#/components/examples/InvalidRequestExample' InvalidInputErrorExample: $ref: '#/components/examples/InvalidInputErrorExample' '401': $ref: '#/components/responses/components-responses-UnauthorizedError' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails' examples: ReferencedEntityNotFoundErrorExample: $ref: '#/components/examples/ReferencedEntityNotFoundErrorExample' '429': $ref: '#/components/responses/components-responses-TooManyRequestsError' '500': $ref: '#/components/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: examples: UnsupportedProtocolVersionCardExample: summary: The account number does not support the supported 3DS versions value: type: /silverflow/problems/3ds/unsupported-protocol-version title: Unsupported Protocol Version status: 422 detail: 'Provided account number is not enrolled for any of the supported 3DS protocol versions: ["2.1.0", "2.2.0"]' instance: /silverflow/e21c1a9d-f66d-4ef7-9f5d-d48064a2bb5e Response: summary: Response to simple request to get card number's information. value: - network: bancontact startRange: '4500000000000001' endRange: '4500000000009999' acsStartProtocolVersion: 2.2.0 acsEndProtocolVersion: 2.2.0 dsStartProtocolVersion: 2.2.0 dsEndProtocolVersion: 2.2.0 threeDSMethodURL: string acsInfoIndicator: - '01' - '02' - '10' - '11' - network: visa startRange: '4500000000000001' endRange: '4500000000009999' acsStartProtocolVersion: 2.2.0 acsEndProtocolVersion: 2.2.0 dsStartProtocolVersion: 2.2.0 dsEndProtocolVersion: 2.2.0 threeDSMethodURL: threeDsMethodUrl acsInfoIndicator: - '01' - '02' - 09 - '10' ThreeDsRequestWithMerchantAcceptorExample: summary: Initiating a 3DS authentication with merchant acceptor value: merchantAcceptorKey: mac-25oJsQ99GBpW23MQidKS card: number: '4200350000000801' expiryYear: 2023 expiryMonth: 12 holderName: Joe Cardholder type: intent: purchase cardEntry: e-commerce order: checkout amount: value: 30000 currency: EUR cardholderInformation: email: carlos.somoza@gmail.com phone: work: number: 063012345678 countryCode: '031' mobile: number: 063012344579 countryCode: '031' billingAddress: countryCode: alpha3: NLD stateOrProvince: NH city: Amsterdam line1: Langtown Road line2: '4200' postalCode: 1234BC transactionReference: FR1 authenticationContext: notificationUrl: https://www.merchant-shop.com/notify browserData: acceptHeader: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 javascriptEnabled: true language: nl-NL userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 screenWidth: '1536' screenHeight: '723' javaEnabled: true colorDepth: '24' timeZoneOffset: '0' browserIP: 123.123.123.123 RequestWithMerchantAcceptor: summary: Initiating a 3RI authentication with merchant acceptor value: merchantAcceptorResolver: merchantAcceptorKey: mac-25oJsQ99GBpWjcMQidKS card: number: '4200350000000801' expiryYear: 2023 expiryMonth: 12 holderName: Joe Cardholder threeRiIndicator: recurring amount: value: 30000 currency: EUR cardholderInformation: email: carlos.somoza@gmail.com phone: work: number: 063012345678 countryCode: '031' mobile: number: 063012344579 countryCode: '031' billingAddress: countryCode: alpha2: NL stateOrProvince: NH city: Amsterdam line1: Langtown Road line2: '4200' postalCode: 1234BC transactionReference: FR1 recurringExpiry: '2024-03-10' recurringFrequency: 30 threeDsPriorAuthenticationInfo: authMethod: challenge dateTime: '2022-06-15T14:30:00.000+00:00' acsTransId: 2385d219-0f19-4e82-a318-511f249c6c21 dsTransId: 043cff46-f694-432a-863b-0338511dc420 InvalidInputErrorExample: summary: The request was invalid value: type: /silverflow/problems/invalid-input title: Invalid Input status: 400 detail: The request does not adhere to the defined API schema. instance: /silverflow/184b44aa-33a4-4244-9074-5eb49715aa90 validationErrors: - path: /body/card/number errorCode: required.openapi.validation message: must match pattern "^[0-9]+$" ThreeDsChallengeResponseWithMerchantInfoExample: summary: The 3DS response in case of a challenge flow with standalone merchant info value: key: tds-5pCQR03sTuUcXGE59fLV merchantInfo: acquirerBin: '123456' merchantId: MERCHANT123 mcc: '5411' merchantName: Example Store Inc merchantCountryCode: alpha2: NL alpha3: NLD numeric: '528' websiteUrl: https://example.com network: visa amount: value: 30000 currency: EUR network: visa protocolVersion: 2.2.0 deviceChannel: browser flow: challenge result: challenge ares: messageType: ARes transStatus: C acsChallengeMandated: Y acsURL: https://issuera-acs.com/challenge threeDSServerTransID: 2b4d6f8a-0c2e-4a6c-8e0b-4f6a8c0e2b4d messageVersion: 2.2.0 dsTransID: 6d8f0b2d-4e6a-4d0f-9c1b-7f9b1d3f5e7a acsTransID: 2f4a6c8e-0a2c-4e8a-b0c2-6a8c0a2e4f6c acsReferenceNumber: 3DS_ACS_REF_NUM acsOperatorID: AcsOpId-123456 dsReferenceNumber: DS_LOA_12345-1234 authenticationType: '01' transactionReference: FR1 type: intent: purchase order: checkout created: '2022-06-16T09:50:12.201+00:00' version: 1 ReferencedEntityNotFoundErrorExample: summary: A referenced entity was not found 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 ThreeDsFrictionlessResponseWithMerchantInfoExample: summary: The 3DS response in case of a frictionless flow with standalone merchant info value: key: tds-4nBPQ92rYsTbWFD48eKU merchantInfo: acquirerBin: '123456' merchantId: MERCHANT123 mcc: '5411' merchantName: Example Store Inc merchantCountryCode: alpha2: NL alpha3: NLD numeric: '528' websiteUrl: https://example.com network: visa amount: value: 30000 currency: EUR network: visa protocolVersion: 2.2.0 deviceChannel: browser flow: frictionless result: authenticated ares: messageType: ARes transStatus: Y threeDSServerTransID: 9a1b3c5e-7f2d-4e8b-b6a0-2d4f6c8e0a12 messageVersion: 2.2.0 dsTransID: 5c7e9a1b-3d5f-4c2e-8b0a-6e8c0a2b4d6f acsTransID: 1e3a5c7b-9d1f-4b6e-a2c4-8e0a2c4e6a8c dsReferenceNumber: DS_LOA_12345-1234 acsReferenceNumber: 3DS_ACS_REF_NUM acsOperatorID: AcsOpId-123456 authenticationValue: AUTHENTICATION_VALUE eci: '05' transactionReference: FR1 type: intent: purchase order: checkout created: '2022-06-16T09:49:42.757+00:00' version: 1 EntityNotFoundExample: summary: The entity was not found value: status: 404 type: /silverflow/problems/3ds/not-found title: Not Found detail: The threeDs with key 'tds-1234abc' was not found. instance: /silverflow/5a276b24-4c46-4c73-beb4-462a7c08f941 AuthenticationRequiredExample: summary: Invalid credentials value: type: /silverflow/problems/authentication-required title: Authentication Required status: 401 detail: Authentication Required instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442 ThreeDsRequestWithMerchantInfoExample: summary: Initiating a 3DS authentication with standalone merchant info value: merchantInfo: acquirerBin: '123456' merchantId: MERCHANT123 mcc: '5411' merchantName: Example Store Inc merchantCountryCode: alpha2: NL websiteUrl: https://example.com network: visa card: number: '4200350000000801' expiryYear: 2023 expiryMonth: 12 holderName: Joe Cardholder type: intent: purchase cardEntry: e-commerce order: checkout amount: value: 30000 currency: EUR cardholderInformation: email: carlos.somoza@gmail.com phone: work: number: 063012345678 countryCode: '031' mobile: number: 063012344579 countryCode: '031' billingAddress: countryCode: alpha3: NLD stateOrProvince: NH city: Amsterdam line1: Langtown Road line2: '4200' postalCode: 1234BC transactionReference: FR1 authenticationContext: notificationUrl: https://www.merchant-shop.com/notify browserData: acceptHeader: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 javascriptEnabled: true language: nl-NL userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 screenWidth: '1536' screenHeight: '723' javaEnabled: true colorDepth: '24' timeZoneOffset: '0' browserIP: 123.123.123.123 UnsupportedProtocolVersion3riExample: summary: The account number does not support 3RI value: type: /silverflow/problems/3ds/unsupported-protocol-version title: Unsupported Protocol Version status: 422 detail: 3RI authentication is only possible when the enrolled card number supports version 2.2.0 or higher. Please submit the transaction directly for authorization. instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e UnenrolledAccountNumberExample: summary: The account number is not enrolled for 3DS value: type: /silverflow/problems/3ds/unenrolled-account-number title: Unenrolled Account Number status: 422 detail: The account number provided in 'card.number' is not enrolled for 3DS authentication. instance: /silverflow/e21c1a9d-f66d-4ef7-9f5d-d48064a2bb5e UnenrolledAcquireOrMerchantExample: summary: The acquirer or merchant is not enrolled for 3DS value: type: /silverflow/problems/3ds/unenrolled-acquirer-or-merchant title: Unenrolled Acquirer or Merchant status: 422 detail: The acquirer or merchant has not been enrolled for 3D Secure authentication. instance: /silverflow/e1451a9d-f66d-4ef7-9f5d-d48064a5bb2c ResponseWithMerchantAcceptor: summary: The 3DS 3RI authenticated response value: key: tds-2lCYA85kxQaWoER37cJS merchantAcceptorRef: key: mac-25oJsQ99GBpWjcMQidKS version: 1 amount: value: 30000 currency: EUR network: visa protocolVersion: 2.2.0 deviceChannel: 3ri result: authenticated fraudLiability: issuer threeRiIndicator: recurring ares: messageType: ARes transStatus: Y threeDSServerTransID: 54c64c00-eef8-4a8b-af44-fee8cc57e530 messageVersion: 2.2.0 dsTransID: 043cff46-f694-432a-863b-0338511dc420 acsTransID: 2385d219-0f19-4e82-a318-511f249c6c21 dsReferenceNumber: DS_LOA_12345-1234 acsReferenceNumber: 3DS_ACS_REF_NUM acsOperatorID: AcsOpId-123456 authenticationValue: AUTHENTICATION_VALUE eci: '05' transactionReference: FR1 created: '2022-06-16T09:49:42.757+00:00' version: 1 ThreeDsFrictionlessResponseWithMerchantAcceptorExample: summary: The 3DS response in case of a frictionless flow value: key: tds-2lCYA85kxQaWoER37cJS merchantAcceptorRef: key: mac-25oJsQ99GBpWjcMQidKS version: 1 amount: value: 30000 currency: EUR network: visa protocolVersion: 2.2.0 deviceChannel: browser flow: frictionless result: authenticated ares: messageType: ARes transStatus: Y threeDSServerTransID: 54c64c00-eef8-4a8b-af44-fee8cc57e530 messageVersion: 2.2.0 dsTransID: 043cff46-f694-432a-863b-0338511dc420 acsTransID: 2385d219-0f19-4e82-a318-511f249c6c21 dsReferenceNumber: DS_LOA_12345-1234 acsReferenceNumber: 3DS_ACS_REF_NUM acsOperatorID: AcsOpId-123456 authenticationValue: AUTHENTICATION_VALUE eci: '05' transactionReference: FR1 type: intent: purchase order: checkout created: '2022-06-16T09:49:42.757+00:00' version: 1 UnsupportedCardNetworkRegion: summary: Unsupported region for the given card network value: type: /silverflow/problems/3ds/unsupported-card-network-region title: Unsupported Region for this Card Network status: 409 detail: 'Amex Direct Merchant model not supported for country ''ATA'' (from merchant.registeredAddress.countryCode.alpha3). Supported regions: USA, CAN, MEX, ARG, EMEA, JAPA. Update merchant address or contact support.' instance: /silverflow/e21c1a9d-f66d-4ef7-9f5d-d48064a2bb5e InternalServerErrorExample: summary: Internal server error value: status: 500 type: /silverflow/problems/internal-server-error title: Internal Server Error detail: The server encountered an unexpected condition. instance: /silverflow/9cb3486d-4fca-495b-91f2-218b669c3aa6 UnsupportedCardNetwork: summary: Unsupported card network value: type: /silverflow/problems/3ds/unsupported-card-network title: Unsupported Card Network status: 409 detail: 'Merchant acceptors with a BIN with network ''discover'' are not supported. Use a merchant acceptor that uses a BIN with a supported card network: ''mastercard'', ''bancontact''.' instance: /silverflow/e21c1a9d-f66d-4ef7-9f5d-d48064a2bb5e InvalidRequestExample: summary: The request was semantically invalid value: type: /silverflow/problems/invalid-request title: Invalid Request status: 400 detail: When 'type.order' is 'recurring', both 'recurringExpiry' and 'recurringFrequency' need to be set. instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442 ResponseWithMerchantInfo: summary: The 3DS 3RI authenticated response with standalone merchant info value: key: tds-3mZKB17pRrXnVGC94hLT merchantInfo: acquirerBin: '123456' merchantId: MERCHANT123 mcc: '5411' merchantName: Example Store Inc merchantCountryCode: alpha2: NL alpha3: NLD numeric: '528' websiteUrl: https://example.com network: visa amount: value: 30000 currency: EUR network: visa protocolVersion: 2.2.0 deviceChannel: 3ri result: authenticated fraudLiability: issuer threeRiIndicator: recurring ares: messageType: ARes transStatus: Y threeDSServerTransID: 7f3a9c12-b8e4-4d1f-a562-9e2c10b7f890 messageVersion: 2.2.0 dsTransID: 1b4e6d3c-72a1-4f8b-9c05-3d7e82a4f619 acsTransID: 8d2f1e4a-c930-4b7d-a185-6e3c9d2b0f47 dsReferenceNumber: DS_LOA_12345-1234 acsReferenceNumber: 3DS_ACS_REF_NUM acsOperatorID: AcsOpId-123456 authenticationValue: AUTHENTICATION_VALUE eci: '05' transactionReference: FR1 created: '2022-06-16T09:49:42.757+00:00' version: 1 ThreeDsAuthenticatedChallengeResponseWithMerchantInfoExample: summary: The 3DS response after an authenticated challenge flow with standalone merchant info value: key: tds-6qDRS14tVvVdYHF60gMW merchantInfo: acquirerBin: '123456' merchantId: MERCHANT123 mcc: '5411' merchantName: Example Store Inc merchantCountryCode: alpha2: NL alpha3: NLD numeric: '528' websiteUrl: https://example.com network: visa amount: value: 30000 currency: EUR network: visa flow: challenge result: authenticated protocolVersion: 2.2.0 deviceChannel: browser ares: messageType: ARes transStatus: C acsChallengeMandated: Y acsURL: https://issuera-acs.com/challenge threeDSServerTransID: 3b5f7a9c-1d2e-4f8b-a6c0-8e2a4c6e8a0c messageVersion: 2.2.0 dsTransID: 7a9b1c3e-5d7f-4a2c-8e0b-2c4e6a8c0e2a acsTransID: 1c3e5a7b-9d1f-4c6e-a2c4-6e8a0c2e4a6c acsReferenceNumber: 3DS_LOA_ACS_PPFU_020100_00009 acsOperatorID: AcsOpId-4138359541 dsReferenceNumber: DS_LOA_DIS_PPFU_020100_00010 authenticationType: '01' rreq: threeDSServerTransID: 3b5f7a9c-1d2e-4f8b-a6c0-8e2a4c6e8a0c acsTransID: 1c3e5a7b-9d1f-4c6e-a2c4-6e8a0c2e4a6c dsTransID: 7a9b1c3e-5d7f-4a2c-8e0b-2c4e6a8c0e2a authenticationMethod: '02' authenticationType: '02' authenticationValue: MTIzNDU2Nzg5MDA5ODc2NTQzMjE= eci: '05' interactionCounter: '01' messageCategory: '01' messageType: RReq messageVersion: 2.2.0 transStatus: Y transactionReference: test-reference type: intent: purchase order: checkout created: '2023-11-08T12:56:06.715Z' lastModified: '2023-11-08T12:56:09.943Z' version: 2 Request: summary: Simple request to get card number's information. value: cardNumber: '4500000000005643' RequestWithMerchantInfo: summary: Initiating a 3RI authentication with standalone merchant info value: merchantInfo: acquirerBin: '123456' merchantId: MERCHANT123 mcc: '5411' merchantName: Example Store Inc merchantCountryCode: alpha2: NL websiteUrl: https://example.com network: visa card: number: '4200350000000801' expiryYear: 2023 expiryMonth: 12 holderName: Joe Cardholder threeRiIndicator: recurring amount: value: 30000 currency: EUR cardholderInformation: email: carlos.somoza@gmail.com phone: work: number: 063012345678 countryCode: '031' mobile: number: 063012344579 countryCode: '031' billingAddress: countryCode: alpha2: NL stateOrProvince: NH city: Amsterdam line1: Langtown Road line2: '4200' postalCode: 1234BC transactionReference: FR1 recurringExpiry: '2024-03-10' recurringFrequency: 30 threeDsPriorAuthenticationInfo: authMethod: challenge dateTime: '2022-06-15T14:30:00.000+00:00' acsTransId: 2385d219-0f19-4e82-a318-511f249c6c21 dsTransId: 043cff46-f694-432a-863b-0338511dc420 ThreeDsChallengeResponseWithMerchantAcceptorExample: summary: The 3DS response in case of a challenge flow value: key: tds-2lCYLHDuRPW9MvQK3sd6 merchantAcceptorRef: key: mac-25oJsQ99GBpWjcMQidKS version: 1 amount: value: 30000 currency: EUR network: visa protocolVersion: 2.2.0 deviceChannel: browser flow: challenge result: challenge ares: messageType: ARes transStatus: C acsChallengeMandated: Y acsURL: https://issuera-acs.com/challenge threeDSServerTransID: 20354d7a-e4fe-47af-8ff6-187bca92f3f9 messageVersion: 2.2.0 dsTransID: 8e9f9d7c-b263-4182-b9ec-52eff401ee33 acsTransID: 17ce478b-14fd-11a7-9611-33f5ad36e53f acsReferenceNumber: 3DS_ACS_REF_NUM acsOperatorID: AcsOpId-123456 dsReferenceNumber: DS_LOA_12345-1234 authenticationType: '01' transactionReference: FR1 type: intent: purchase order: checkout created: '2022-06-16T09:50:12.201+00:00' version: 1 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 ThreeDsAuthenticatedChallengeResponseWithMerchantAcceptorExample: summary: The 3DS response after an authenticated challenge flow value: key: tds-3wjQy7nDTJG9MvPV22dJ merchantAcceptorRef: key: mac-28gKCpqIDKp8jVboUyr2 version: 1 amount: value: 30000 currency: EUR network: visa flow: challenge result: authenticated protocolVersion: 2.2.0 deviceChannel: browser ares: messageType: ARes transStatus: C acsChallengeMandated: Y acsURL: https://issuera-acs.com/challenge threeDSServerTransID: e75139e4-ce9f-4d12-84aa-c8916f0087b7 messageVersion: 2.2.0 dsTransID: a9c308fd-ccd1-4e37-86aa-d063adea5ee9 acsTransID: 63e8ee5b-fe5a-411e-8e7b-3ca9d12364c1 acsReferenceNumber: 3DS_LOA_ACS_PPFU_020100_00009 acsOperatorID: AcsOpId-4138359541 dsReferenceNumber: DS_LOA_DIS_PPFU_020100_00010 authenticationType: '01' rreq: threeDSServerTransID: e75139e4-ce9f-4d12-84aa-c8916f0087b7 acsTransID: 63e8ee5b-fe5a-411e-8e7b-3ca9d12364c1 dsTransID: a9c308fd-ccd1-4e37-86aa-d063adea5ee9 authenticationMethod: '02' authenticationType: '02' authenticationValue: MTIzNDU2Nzg5MDA5ODc2NTQzMjE= eci: '05' interactionCounter: '01' messageCategory: '01' messageType: RReq messageVersion: 2.2.0 transStatus: Y transactionReference: test-reference type: intent: purchase order: checkout created: '2023-11-08T12:56:06.715Z' lastModified: '2023-11-08T12:56:09.943Z' version: 2 InvalidOffsetTokenExample: summary: The offset token is invalid value: status: 400 type: /silverflow/problems/invalid-offset-token title: Invalid Offset Token detail: The provided offset token is invalid. instance: /silverflow/9cb3486d-4fca-495b-af83-218b669c3bb8 schemas: browserScreenWidth: type: string minLength: 1 maxLength: 6 pattern: ^[0-9]+$ description: 'Total width of the cardholder''s screen in pixels. Value is returned from the `screen.width` property from the HTML DOM API. ' example: '1536' interactionCounter: type: string description: The number of interactions for each transaction tracked by the ACS. holderName: type: string minLength: 2 description: "The name of the cardholder as displayed on the card. It will be truncated if longer than 45 characters. \n\nThe name needs to comply with the following regular expression: `^[\\x20-\\x7E\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF]+$`\n\nMore information here: [Cardholder name restrictions](charges.html#section/Appendix-A-Cardholder-Name-Restrictions)\n" example: Joe Cardholder acsUrl: type: string description: 'The merchant or PSP needs to send the base64 encoded CReq message as a form to this URL using an HTTP POST, from the cardholder challenge window. The content type needs to be `application/x-www-form-urlencoded`. ' example: 'https://www.acs.com/challenge ' order: description: 'The method used to place the order. When set to `recurring` or `installment`, you are also required to set `recurringExpiry` and `recurringFrequency`. ' type: string enum: - checkout - unspecified - one-click - recurring - ucof - installment sdkTransID: type: string description: Universally unique transaction identifier assigned upon the activation of 3DS SDK. format: uuid pattern: ^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$ example: 6357449a-b12b-4e81-b577-fee137273136 components-schemas-stateOrProvince: type: string pattern: ^(?!\s*$).+ minLength: 1 maxLength: 3 description: 'The state (US) or province (non-US) of the address. ' example: NH ThreeDsCardRangesCardNumberRequest: type: object title: Card by Number required: - cardNumber properties: cardNumber: $ref: '#/components/schemas/pan' infoSource: $ref: '#/components/schemas/network' schemas-CountryCodeAlpha2: type: object title: alpha-2 required: - alpha2 properties: alpha2: type: string pattern: ^[A-Z]{2}$ description: ISO 3166-1 alpha-2 country code externalDocs: description: Find more info here url: https://www.iso.org/iso-3166-country-codes.html example: NL schemas-created: type: string description: The date and time this object was created format: iso-8601-date-time browserLanguage: type: string minLength: 1 maxLength: 35 pattern: ^.+$ description: 'Value representing the browser language as defined in IETF BCP47. Returned from `navigator.language` property from the HTML DOM API. ' example: nl-NL ThreeDsChallengeFinished: type: object title: 3DS Challenge (Finished) required: - key - amount - network - protocolVersion - deviceChannel - flow - result - ares - rreq - created - lastModified - version properties: key: $ref: '#/components/schemas/threedsKey' merchantAcceptorRef: $ref: '#/components/schemas/schemas-AcceptorRef' merchantInfo: $ref: '#/components/schemas/MerchantInfoResponse' amount: $ref: '#/components/schemas/ResponseAmount' network: $ref: '#/components/schemas/authenticationNetwork' protocolVersion: $ref: '#/components/schemas/protocolVersion' deviceChannel: $ref: '#/components/schemas/deviceChannel' flow: $ref: '#/components/schemas/challengeFlow' result: $ref: '#/components/schemas/challengeResult' ares: $ref: '#/components/schemas/ARes' rreq: $ref: '#/components/schemas/RReq' transactionReference: $ref: '#/components/schemas/transactionReference' fraudLiability: $ref: '#/components/schemas/fraudLiability' type: type: object description: Transaction type information from the request properties: order: $ref: '#/components/schemas/order' intent: $ref: '#/components/schemas/intent' created: $ref: '#/components/schemas/schemas-created' lastModified: $ref: '#/components/schemas/schemas-lastModified' version: $ref: '#/components/schemas/version' frictionlessFlow: allOf: - enum: - frictionless - $ref: '#/components/schemas/flow' ThreeDsPriorAuthenticationInfo: type: object description: References the initial 3DS transaction to set up this sequence. required: - authMethod - dateTime - acsTransId - dsTransId properties: authMethod: type: string enum: - frictionless - challenge description: The authentication method used. dateTime: type: string format: iso-8601-date-time description: The date and time of the authentication. acsTransId: type: string description: The ACS (Access Control Server) transaction ID. dsTransId: type: string description: The DS (Directory Server) transaction ID. DynamicDescriptor: type: object minProperties: 1 additionalProperties: false description: "Allows customizing the DBA name on a per-transaction basis, \nto help the cardholder recognize the business name on their card or bank statement.\n" 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 threeDSServerTransID: type: string description: Universally unique transaction identifier assigned by the 3DS server to identify a single transaction. This identifier is assigned by Silverflow. pattern: ^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$ example: 6357449a-b12b-4e81-b577-fee137273231 notificationUrl: type: string description: 'URL that receives the challenge response (CRes) or error message from the issuer''s Access Control Server (ACS). ' pattern: ^https://.{1,248}$ example: https://myserver.com/send/callback/here ThreeDsCardRangesProcessorTokenRequest: type: object title: Processor Token Key [EXPERIMENTAL] required: - processorTokenKey properties: processorTokenKey: $ref: '#/components/schemas/processorTokenKey' schemas-CountryCodeNumeric: type: object title: numeric required: - numeric properties: numeric: type: string pattern: ^[0-9]{3}$ description: ISO 3166-1 numeric country code externalDocs: description: Find more info here url: https://www.iso.org/iso-3166-country-codes.html example: '528' version: type: integer description: The version of this object format: int64 browserScreenHeight: type: string minLength: 1 maxLength: 6 pattern: ^[0-9]+$ description: "Total height of the cardholder's screen in pixels. Value is returned from the `screen.height` \nproperty from the HTML DOM API.\n" example: '724' schemas-offsetToken: type: string pattern: ^[a-zA-Z0-9%]+$ example: token ResponseAmount: description: 'An amount encoded as an object with a `value` in minor units and a `currency` code. The amount is unknown for entities older than 2023-03-30. ' oneOf: - $ref: '#/components/schemas/Amount' - $ref: '#/components/schemas/UnknownAmount' schemas-Page: type: object properties: offsetToken: $ref: '#/components/schemas/schemas-offsetToken' PublicCreate3dsRequestWithMerchantInfo: title: With Merchant Info [EXPERIMENTAL] type: object additionalProperties: false required: - authenticationContext - card - amount - type - merchantInfo properties: merchantInfo: $ref: '#/components/schemas/MerchantInfoRequest' card: $ref: '#/components/schemas/Card' type: $ref: '#/components/schemas/ThreeDsType' amount: $ref: '#/components/schemas/Amount' challengeIndicator: $ref: '#/components/schemas/challengeIndicator' authenticationContext: $ref: '#/components/schemas/AuthenticationContext' transactionReference: $ref: '#/components/schemas/transactionReference' localTransactionDateTime: $ref: '#/components/schemas/localTransactionDateTime' recurringExpiry: $ref: '#/components/schemas/recurringExpiry' recurringFrequency: $ref: '#/components/schemas/recurringFrequency' dynamicDescriptor: $ref: '#/components/schemas/DynamicDescriptor' cardholderInformation: $ref: '#/components/schemas/CardholderInformation' threeDSServerTransID: allOf: - type: string description: 'The `threeDSServerTransID` used to perform a 3DS Method flow. Include this field in the authentication request if 3DS Method has been used to allow the issuer to capture browser information prior to initiating this authentication request. ' - $ref: '#/components/schemas/threeDSServerTransID' billingAddress: description: The billing address of the cardholder $ref: '#/components/schemas/AddressInput' shippingAddress: $ref: '#/components/schemas/AddressInput' ThreeDsNoFlowNoAuthWithoutAuthValue: type: object title: 3DS Unauthenticated Without Authentication Value required: - key - amount - network - protocolVersion - deviceChannel - flow - result - ares - created - version properties: key: $ref: '#/components/schemas/threedsKey' merchantAcceptorRef: $ref: '#/components/schemas/schemas-AcceptorRef' merchantInfo: $ref: '#/components/schemas/MerchantInfoResponse' amount: $ref: '#/components/schemas/ResponseAmount' network: $ref: '#/components/schemas/authenticationNetwork' protocolVersion: $ref: '#/components/schemas/protocolVersion' deviceChannel: $ref: '#/components/schemas/deviceChannel' flow: $ref: '#/components/schemas/noAuthFlow' result: $ref: '#/components/schemas/noAuthResult' ares: $ref: '#/components/schemas/AResWithoutAuthValue' transactionReference: $ref: '#/components/schemas/transactionReference' type: type: object description: Transaction type information from the request properties: order: $ref: '#/components/schemas/order' intent: $ref: '#/components/schemas/intent' created: $ref: '#/components/schemas/schemas-created' version: $ref: '#/components/schemas/version' PublicCreate3dsRequestWithMerchantAcceptor: title: With Merchant Acceptor type: object additionalProperties: false required: - authenticationContext - card - amount - type - merchantAcceptorKey properties: merchantAcceptorKey: $ref: '#/components/schemas/acceptorKeyRef' card: $ref: '#/components/schemas/Card' type: $ref: '#/components/schemas/ThreeDsType' amount: $ref: '#/components/schemas/Amount' challengeIndicator: $ref: '#/components/schemas/challengeIndicator' authenticationContext: $ref: '#/components/schemas/AuthenticationContext' transactionReference: $ref: '#/components/schemas/transactionReference' localTransactionDateTime: $ref: '#/components/schemas/localTransactionDateTime' recurringExpiry: $ref: '#/components/schemas/recurringExpiry' recurringFrequency: $ref: '#/components/schemas/recurringFrequency' dynamicDescriptor: $ref: '#/components/schemas/DynamicDescriptor' cardholderInformation: $ref: '#/components/schemas/CardholderInformation' threeDSServerTransID: allOf: - type: string description: 'The `threeDSServerTransID` used to perform a 3DS Method flow. Include this field in the authentication request if 3DS Method has been used to allow the issuer to capture browser information prior to initiating this authentication request. ' - $ref: '#/components/schemas/threeDSServerTransID' billingAddress: description: The billing address of the cardholder $ref: '#/components/schemas/AddressInput' shippingAddress: $ref: '#/components/schemas/AddressInput' schemas-currencyCode: type: string pattern: ^[A-Z]{3}$ externalDocs: description: Find more info here url: https://www.iso.org/iso-4217-currency-codes.html example: EUR AResWithoutAuthValue: type: object description: The issuer's response to the 3DS request. allOf: - $ref: '#/components/schemas/Message' - type: object required: - messageType - dsTransID - acsTransID - transStatus - dsReferenceNumber - acsReferenceNumber properties: messageType: type: string enum: - ARes dsTransID: $ref: '#/components/schemas/dsTransID' acsTransID: $ref: '#/components/schemas/acsTransID' transStatus: $ref: '#/components/schemas/transStatus' transStatusReason: $ref: '#/components/schemas/transStatusReason' cardholderInfo: $ref: '#/components/schemas/cardHolderInfo' acsChallengeMandated: $ref: '#/components/schemas/acsChallengeMandated' dsReferenceNumber: $ref: '#/components/schemas/dsReferenceNumber' acsReferenceNumber: $ref: '#/components/schemas/acsReferenceNumber' acsOperatorID: $ref: '#/components/schemas/acsOperatorID' acsDecConInd: $ref: '#/components/schemas/acsDecConInd' acsRenderingType: $ref: '#/components/schemas/acsRenderingType' acsURL: $ref: '#/components/schemas/acsUrl' authenticationType: $ref: '#/components/schemas/authenticationType' eci: $ref: '#/components/schemas/eci' whiteListStatus: $ref: '#/components/schemas/whiteListStatus' whiteListStatusSource: $ref: '#/components/schemas/whiteListStatusSource' acsSignedContent: $ref: '#/components/schemas/acsSignedContent' components-schemas-line2: type: string pattern: ^(?!\s*$).+ minLength: 1 maxLength: 50 description: 'Address line 2 ' example: '4200' ThreeDsCardRangesResponse: type: object required: - network - startRange - endRange - acsStartProtocolVersion - acsEndProtocolVersion - dsStartProtocolVersion - dsEndProtocolVersion properties: network: $ref: '#/components/schemas/network' startRange: type: string description: Starting range of the PAN. endRange: type: string description: Ending range of the PAN. acsStartProtocolVersion: type: string description: ACS start protocol version. acsEndProtocolVersion: type: string description: ACS end protocol version. dsStartProtocolVersion: type: string description: DS start protocol version. dsEndProtocolVersion: type: string description: DS end protocol version. threeDSMethodURL: type: string description: 'URL to call from the iFrame to gather browser''s information. ' threeDSServerTransID: type: string description: 'The `threeDSServerTransID` to use when executing the 3DS Method flow. Include this field in the 3DS authentication request if the 3DS Method has been executed. ' acsInfoIndicator: type: array items: type: string enum: - '01' - '02' - '03' - '04' - '05' - '06' - '07' - 08 - 09 - '10' - '11' description: "An array of ACS indicators that consist of the following values:\n - 01 = Authentication Available at ACS\n - 02 = Attempts Supported by ACS or DS\n - 03 = Decoupled Authentication Supported\n - 04 = Trust List Supported\n - 05 = Device Binding Supported\n - 06 = WebAuthn Authentication Supported\n - 07 = SPC Authentication Supported\n - 08 = Transaction Risk Analysis Exemption Supported\n - 09 = Trust List Exemption Supported\n - 10 = Low Value Exemption Supported\n - 11 = Secure Corporate Payments Exemption Supported\n - 12–79 = Reserved for EMVCo future use (values invalid until defined by EMVCo)\n - 80–99 = Reserved for DS use\n" dataOnlyResult: allOf: - description: 'Indicates that this 3DS transaction was for data sharing purposes only. `informational` will be returned if the `challengeIndicator` field was set to `data-only`. ' enum: - informational - $ref: '#/components/schemas/result' components-schemas-line1: type: string pattern: ^(?!\s*$).+ minLength: 1 maxLength: 50 description: 'Address line 1 ' example: Langtown Road ThreeRiIndicator: type: string description: Indicates the type of 3RI request. This property provides additional information to the ACS to determine the best approach for handling a 3RI request. enum: - recurring - ucof - installment - standing-order 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' ThreeDsChallenge: type: object title: 3DS Challenge required: - key - amount - network - protocolVersion - deviceChannel - flow - result - ares - created - version properties: key: $ref: '#/components/schemas/threedsKey' merchantAcceptorRef: $ref: '#/components/schemas/schemas-AcceptorRef' merchantInfo: $ref: '#/components/schemas/MerchantInfoResponse' amount: $ref: '#/components/schemas/ResponseAmount' network: $ref: '#/components/schemas/authenticationNetwork' protocolVersion: $ref: '#/components/schemas/protocolVersion' deviceChannel: $ref: '#/components/schemas/deviceChannel' flow: allOf: - enum: - challenge - $ref: '#/components/schemas/flow' result: allOf: - description: 'Indicates that the cardholder has to complete the challenge flow. ' enum: - challenge - $ref: '#/components/schemas/result' ares: $ref: '#/components/schemas/ARes' transactionReference: $ref: '#/components/schemas/transactionReference' type: type: object description: Transaction type information from the request properties: order: $ref: '#/components/schemas/order' intent: $ref: '#/components/schemas/intent' created: $ref: '#/components/schemas/schemas-created' version: $ref: '#/components/schemas/version' ThreeDsFrictionlessAuthenticated: type: object title: 3DS Frictionless Authenticated required: - key - amount - network - protocolVersion - deviceChannel - flow - result - ares - created - version properties: key: $ref: '#/components/schemas/threedsKey' merchantAcceptorRef: $ref: '#/components/schemas/schemas-AcceptorRef' merchantInfo: $ref: '#/components/schemas/MerchantInfoResponse' amount: $ref: '#/components/schemas/ResponseAmount' network: $ref: '#/components/schemas/authenticationNetwork' protocolVersion: $ref: '#/components/schemas/protocolVersion' deviceChannel: $ref: '#/components/schemas/deviceChannel' flow: $ref: '#/components/schemas/frictionlessFlow' result: $ref: '#/components/schemas/frictionlessResult' ares: $ref: '#/components/schemas/ARes' transactionReference: $ref: '#/components/schemas/transactionReference' fraudLiability: $ref: '#/components/schemas/fraudLiability' type: type: object description: Transaction type information from the request properties: order: $ref: '#/components/schemas/order' intent: $ref: '#/components/schemas/intent' created: $ref: '#/components/schemas/schemas-created' version: $ref: '#/components/schemas/version' BrowserDataJavascriptEnabledFalse: allOf: - $ref: '#/components/schemas/BrowserData' - type: object required: - javascriptEnabled properties: javascriptEnabled: type: boolean description: The ability of the cardholder browser to execute JavaScript. enum: - false screenWidth: $ref: '#/components/schemas/browserScreenWidth' screenHeight: $ref: '#/components/schemas/browserScreenHeight' timeZoneOffset: $ref: '#/components/schemas/browserTimeZoneOffset' javaEnabled: $ref: '#/components/schemas/browserJavaEnabled' colorDepth: $ref: '#/components/schemas/browserColorDepth' InstallmentTerms: type: integer description: 'Maximum number of authorizations for an installment payment. Required for and only allowed when `threeRiIndicator = "installment"`. Must be greater than 1 and at most 3 digits (max value 999). ' minimum: 2 maximum: 999 AddressInput: allOf: - type: object required: - countryCode properties: countryCode: description: ISO 3166-1 country code externalDocs: description: Find more info here url: https://www.iso.org/iso-3166-country-codes.html oneOf: - $ref: '#/components/schemas/schemas-CountryCodeAlpha3' - $ref: '#/components/schemas/schemas-CountryCodeAlpha2' - $ref: '#/components/schemas/schemas-CountryCodeNumeric' - $ref: '#/components/schemas/addressInputBase' MessageExtension: type: object required: - name - id - criticalityIndicator - data properties: name: type: string example: msgextname pattern: ^[a-zA-Z0-9_\-\s]+$ minLength: 1 maxLength: 64 id: type: string example: 501341592B_0001_4568 pattern: ^[a-zA-Z0-9_\-]+$ minLength: 1 maxLength: 64 criticalityIndicator: type: boolean example: false data: {} result: description: Authentication result. type: string ThreeDsCardRangesRequest: oneOf: - $ref: '#/components/schemas/ThreeDsCardRangesCardNumberRequest' - $ref: '#/components/schemas/ThreeDsCardRangesProcessorTokenRequest' browserUserAgent: type: string minLength: 1 maxLength: 2048 pattern: ^.+$ description: 'Exact content of the HTTP user-agent header. ' example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 browserTimeZoneOffset: type: string minLength: 1 maxLength: 5 pattern: ^.+$ description: "Time-zone offset in minutes between UTC and the cardholder browser local time.\nValue is returned from the `getTimezoneOffset()` method. Note that the offset is positive if the local\ntime zone is behind UTC and negative if it is ahead. \n\nExample: If UTC -5 hours: 300 -> +300, if UTC +5 hours: -> -300\n" example: '0' pan: type: string description: Full digits of the card. pattern: ^[0-9]+$ minLength: 13 maxLength: 19 format: password example: 1234123412341234 acsRenderingType: type: object required: - acsInterface - acsUiTemplate description: The ACS rendering type contains information about the rendering type that the ACS is sending for the cardholder authentication. properties: acsInterface: description: This is the ACS interface that the challenge will present to the cardholder. type: string acsUiTemplate: description: Identifies the UI template format that the ACS first presents to the consumer. type: string whiteListStatus: type: string description: Enables the communication of trusted beneficiary/whitelist status between the ACS, the DS and the 3DS requestor. noAuthResult: allOf: - description: 'Indicates a negative 3DS result, indicating that the cardholder was not authenticated. ' enum: - attempt - non-authenticated - $ref: '#/components/schemas/result' Result: type: string description: Authentication result. enum: - authenticated - non-authenticated challengeCancel: type: string description: Indicator informing the ACS and the DS that the authentication has been canceled. ThreeDsFrictionlessAuthenticatedWithoutAuthValue: type: object title: 3DS Frictionless Authenticated Without Authentication Value required: - key - amount - network - protocolVersion - deviceChannel - flow - result - ares - created - version properties: key: $ref: '#/components/schemas/threedsKey' merchantAcceptorRef: $ref: '#/components/schemas/schemas-AcceptorRef' merchantInfo: $ref: '#/components/schemas/MerchantInfoResponse' amount: $ref: '#/components/schemas/ResponseAmount' network: $ref: '#/components/schemas/authenticationNetwork' protocolVersion: $ref: '#/components/schemas/protocolVersion' deviceChannel: $ref: '#/components/schemas/deviceChannel' flow: $ref: '#/components/schemas/frictionlessFlow' result: $ref: '#/components/schemas/frictionlessResult' ares: $ref: '#/components/schemas/AResWithoutAuthValue' transactionReference: $ref: '#/components/schemas/transactionReference' type: type: object description: Transaction type information from the request properties: order: $ref: '#/components/schemas/order' intent: $ref: '#/components/schemas/intent' created: $ref: '#/components/schemas/schemas-created' version: $ref: '#/components/schemas/version' authenticationMethod: type: string description: Authentication approach that the ACS used to authenticate the cardholder for this specific transaction. schemas-CountryCodeAlpha3: type: object title: alpha-3 required: - alpha3 properties: alpha3: type: string pattern: ^[A-Z]{3}$ description: ISO 3166-1 alpha-3 country code externalDocs: description: Find more info here url: https://www.iso.org/iso-3166-country-codes.html example: NLD RReq: type: object description: 'This property is only present after the cardholder finished the challenge flow. The RReq message communicates the results of the authentication or verification. This message is received by Silverflow from the issuer (through the scheme) and contains the result of a challenge flow. Once Silverflow received the CReq, it will be appended to the 3DS entity it belongs to and the result can be interpreted by the requester.' allOf: - $ref: '#/components/schemas/Message' - type: object required: - messageType - acsTransID - dsTransID - interactionCounter - messageCategory - transStatus properties: messageType: type: string enum: - RReq acsTransID: $ref: '#/components/schemas/acsTransID' acsRenderingType: $ref: '#/components/schemas/acsRenderingType' authenticationMethod: $ref: '#/components/schemas/authenticationMethod' authenticationType: $ref: '#/components/schemas/authenticationType' challengeCancel: $ref: '#/components/schemas/challengeCancel' dsTransID: $ref: '#/components/schemas/dsTransID' eci: $ref: '#/components/schemas/eci' interactionCounter: $ref: '#/components/schemas/interactionCounter' messageCategory: $ref: '#/components/schemas/messageCategory' transStatus: $ref: '#/components/schemas/transStatus' transStatusReason: $ref: '#/components/schemas/transStatusReason' whiteListStatus: $ref: '#/components/schemas/whiteListStatus' whiteListStatusSource: $ref: '#/components/schemas/whiteListStatusSource' authenticationValue: $ref: '#/components/schemas/authenticationValue' errorTitle: type: string description: 'A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error. ' ThreeDsChallengeFinishedWithoutAuthValue: type: object title: 3DS Challenge (Finished) Without Authentication Value required: - key - amount - network - protocolVersion - deviceChannel - flow - result - ares - rreq - created - lastModified - version properties: key: $ref: '#/components/schemas/threedsKey' merchantAcceptorRef: $ref: '#/components/schemas/schemas-AcceptorRef' merchantInfo: $ref: '#/components/schemas/MerchantInfoResponse' amount: $ref: '#/components/schemas/ResponseAmount' network: $ref: '#/components/schemas/authenticationNetwork' protocolVersion: $ref: '#/components/schemas/protocolVersion' deviceChannel: $ref: '#/components/schemas/deviceChannel' flow: $ref: '#/components/schemas/challengeFlow' result: $ref: '#/components/schemas/challengeResult' ares: $ref: '#/components/schemas/AResWithoutAuthValue' rreq: $ref: '#/components/schemas/RReqWithoutAuthValue' transactionReference: $ref: '#/components/schemas/transactionReference' fraudLiability: $ref: '#/components/schemas/fraudLiability' type: type: object description: Transaction type information from the request properties: order: $ref: '#/components/schemas/order' intent: $ref: '#/components/schemas/intent' created: $ref: '#/components/schemas/schemas-created' lastModified: $ref: '#/components/schemas/schemas-lastModified' version: $ref: '#/components/schemas/version' components-schemas-postalCode: type: string pattern: ^[a-zA-Z0-9- ]+$ minLength: 1 maxLength: 16 description: 'The postal code of the address, allowing spaces and dashes ' example: 1234BC flow: description: Indicates the flow that was used for the 3DS authentication. type: string ThreeDsDataOnly: type: object title: 3DS Data Only required: - key - amount - network - protocolVersion - deviceChannel - flow - result - ares - created - version properties: key: $ref: '#/components/schemas/threedsKey' merchantAcceptorRef: $ref: '#/components/schemas/schemas-AcceptorRef' merchantInfo: $ref: '#/components/schemas/MerchantInfoResponse' amount: $ref: '#/components/schemas/ResponseAmount' network: $ref: '#/components/schemas/authenticationNetwork' protocolVersion: $ref: '#/components/schemas/protocolVersion' deviceChannel: $ref: '#/components/schemas/deviceChannel' flow: allOf: - enum: - none - $ref: '#/components/schemas/flow' result: $ref: '#/components/schemas/dataOnlyResult' ares: $ref: '#/components/schemas/ARes' transactionReference: $ref: '#/components/schemas/transactionReference' fraudLiability: $ref: '#/components/schemas/fraudLiability' type: type: object description: Transaction type information from the request properties: order: $ref: '#/components/schemas/order' intent: $ref: '#/components/schemas/intent' created: $ref: '#/components/schemas/schemas-created' version: $ref: '#/components/schemas/version' cvc: type: string description: 'The CVC of the card ' pattern: ^\d+$ minLength: 3 maxLength: 4 example: '132' browserColorDepth: type: string pattern: ^([0-9][1-9]|[1-9][0-9]?)$ description: "Value representing the bit depth of the colour palette for displaying images, in bits per pixel.\nObtained from cardholder browser using the `screen.colorDepth` property. \n\nValues defined by the EMVCo specification: 1, 4, 8, 15, 16, 24, 32, 48\n" example: '24' browserIP: type: string pattern: (^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$) description: 'IP address of the browser as returned by the HTTP headers. Shall be included where regionally acceptable. Example IPv6 address: 2011:0db8:85a3:0101:0101:8a2e:0370:7334. ' example: 1.12.123.255 PhoneNumber: type: object additionalProperties: false required: - countryCode - number properties: countryCode: description: Country code should be between 1 to 3 digits, more information [here](https://en.wikipedia.org/wiki/E.164). type: string minLength: 1 maxLength: 3 pattern: ^[0-9]+$ example: 31 number: description: Phone number should be between 1 and 15 digits, more information [here](https://en.wikipedia.org/wiki/E.164). type: string minLength: 1 maxLength: 15 pattern: ^[0-9]+$ example: 63012345678 MerchantInfoResponse: type: object description: 'Merchant details as stored and returned in the response. The `merchantCountryCode` is returned as a complete ISO 3166-1 country code object containing all representations. ' additionalProperties: false required: - merchantId - mcc - merchantName - merchantCountryCode - websiteUrl - network properties: acquirerBin: type: string description: '6-11 digit Bank Identification Number assigned by the card network. Required for all card networks except AMEX. For AMEX populate this with the SE Number or leave blank depending on the model, see 3DS Guide. ' pattern: ^[0-9]+$ minLength: 6 maxLength: 11 merchantId: type: string description: 'Merchant identifier (MID) assigned by the acquirer. For AMEX populate this with the Seller ID or SE Number depending on the model, see 3DS Guide. ' minLength: 1 maxLength: 20 mcc: type: string description: 4-digit ISO 18245 merchant category code pattern: ^[0-9]+$ minLength: 4 maxLength: 4 merchantName: type: string description: Merchant's doing-business-as name merchantCountryCode: allOf: - $ref: '#/components/schemas/schemas-CountryCodeAlpha3' - $ref: '#/components/schemas/schemas-CountryCodeAlpha2' - $ref: '#/components/schemas/schemas-CountryCodeNumeric' websiteUrl: type: string description: Merchant's website URL maxLength: 2048 network: allOf: - description: The card network that will process the transaction and handle authentication. - $ref: '#/components/schemas/network' CardholderInformation: description: Extra information about the cardholder. type: object additionalProperties: false properties: email: type: string description: The email address associated with the cardholder account. This address is either entered by the cardholder or is on file with the 3DS Requester. pattern: ^[^\s]+$ minLength: 1 maxLength: 254 example: carlos.somoza@gmail.com phone: description: Phone numbers associated with the account. They follow the [ITU-E.164 standard](https://en.wikipedia.org/wiki/E.164). type: object additionalProperties: false properties: work: $ref: '#/components/schemas/PhoneNumber' mobile: $ref: '#/components/schemas/PhoneNumber' home: $ref: '#/components/schemas/PhoneNumber' acsDecConInd: type: string description: Indicates whether the ACS confirms utilisation of decoupled authentication and agrees to utilize decoupled authentication to authenticate the cardholder. addressInputBase: type: object required: - city - line1 - postalCode description: 'A physical postal address ' properties: stateOrProvince: $ref: '#/components/schemas/components-schemas-stateOrProvince' city: $ref: '#/components/schemas/components-schemas-city' line1: $ref: '#/components/schemas/components-schemas-line1' line2: $ref: '#/components/schemas/components-schemas-line2' postalCode: $ref: '#/components/schemas/components-schemas-postalCode' schemas-AcceptorRef: type: object description: Reference key and status of the acceptor required: - key - version properties: key: $ref: '#/components/schemas/schemas-acceptorKey' version: $ref: '#/components/schemas/version' protocolVersion: type: string description: "The 3DS protocol version which has been used to perform 3DS.\n\n **Protocol version 2.1.0 is no longer supported by the card networks. The value 2.1.0 can be retrieved for older authentications.**\n" enum: - 2.1.0 - 2.2.0 UnenrolledAccountNumberErrorDetails: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/3ds/unenrolled-account-number title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Unenrolled Account Number status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 422 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' processorTokenKey: type: string description: The key to a card stored using [Processor Tokenization](#tag/Processor-Tokenization). pattern: ^ptk-[a-zA-Z0-9]+$ minLength: 5 maxLength: 120 ThreeDsPageEntity: title: 3DS Page Entity Without Authentication Value oneOf: - $ref: '#/components/schemas/ThreeDsFrictionlessAuthenticatedWithoutAuthValue' - $ref: '#/components/schemas/ThreeDsChallenge' - $ref: '#/components/schemas/ThreeDsChallengeFinishedWithoutAuthValue' - $ref: '#/components/schemas/ThreeDsNoFlowNoAuthWithoutAuthValue' - $ref: '#/components/schemas/ThreeRiResponseWithoutAuthenticationValue' - $ref: '#/components/schemas/ThreeDsDataOnly' recurringFrequency: type: integer description: 'Number of days between recurring authorizations. Required when `type.order` is `recurring` or `installment`. ' MessageExtensionList: description: Carries additional data that is not defined within the 3DS protocol. This field is usually used for card network specific data. type: array items: $ref: '#/components/schemas/MessageExtension' browserAcceptHeader: type: string minLength: 1 maxLength: 2048 pattern: ^.+$ description: 'Exact content of the HTTP accept headers as sent to the 3DS Requestor from the cardholder''s browser. ' example: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Amount: type: object required: - value - currency additionalProperties: false description: 'An amount encoded as an object with a `value` in minor units and a `currency` code. ' properties: value: $ref: '#/components/schemas/amountValue' currency: $ref: '#/components/schemas/schemas-currencyCode' schemas-acceptorKey: description: Uniquely identifies a merchant acceptor. type: string pattern: ^mac-[a-zA-Z0-9]+$ minLength: 5 maxLength: 120 example: '{{acceptorKeyMastercard}}' acsReferenceNumber: type: string description: Unique identifier assigned by the EMVCo secretariat upon testing and approval. Message: type: object description: 'A 3DS protocol message as it is received by the card network. ' required: - messageVersion - threeDSServerTransID properties: messageVersion: $ref: '#/components/schemas/activeProtocolVersion' threeDSServerTransID: $ref: '#/components/schemas/threeDSServerTransID' sdkTransID: $ref: '#/components/schemas/sdkTransID' messageExtension: $ref: '#/components/schemas/MessageExtensionList' UnsupportedProtocolVersionErrorDetails: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/3ds/unsupported-protocol-version title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Unsupported Protocol Version status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 422 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' CardByProcessorTokenKey: type: object title: Processor Token Key (EXPERIMENTAL) required: - processorTokenKey properties: processorTokenKey: $ref: '#/components/schemas/processorTokenKey' cvc: allOf: - description: 'The three digit CVC code of the card. If a CVC is provided here, it takes precedence over the one stored in the processor token. ' - $ref: '#/components/schemas/cvc' BrowserData: type: object required: - acceptHeader - language - userAgent properties: acceptHeader: $ref: '#/components/schemas/browserAcceptHeader' language: $ref: '#/components/schemas/browserLanguage' userAgent: $ref: '#/components/schemas/browserUserAgent' browserIP: $ref: '#/components/schemas/browserIP' acsSignedContent: type: string description: Contains the JWS object (represented as a string) created by the ACS for the ARes message. example: eyJhbGciOiJQUzI1NiIsIng1YyI6Ik1JSURlVENDQW1HZ0F3SUJ pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]*$ minLength: 1 maxLength: 2560 ThreeRiRecurringFrequency: type: integer description: 'Number of days between recurring authorizations. This property is required for `threeRiIndicator = "recurring"`, `"installment"`, or `"standing-order"`. For other cases, it will default to `1`, indicating that the frequency of payments is not specified. ' cardHolderInfo: type: string description: Text provided by the ACS/issuer to cardholder during a frictionless or decoupled transaction. EntityNotFoundErrorDetails: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/3ds/not-found title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Not Found status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 404 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' acsTransID: type: string description: 'Universally unique transaction identifier assigned by the ACS to identify a single transaction. Each DS can provide a unique ID to each ACS on an individual basis. ' example: d7c1ee99-9478-44a6-b1f2-391e29c6b340 format: uuid pattern: ^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$ PublicCreate3dsRequest: oneOf: - $ref: '#/components/schemas/PublicCreate3dsRequestWithMerchantAcceptor' - $ref: '#/components/schemas/PublicCreate3dsRequestWithMerchantInfo' expiryMonth: type: integer description: 'The month the card expires. January is 1 ' minimum: 1 maximum: 12 MerchantInfoRequest: type: object description: 'Merchant details provided directly in the request, as an alternative to providing a `merchantAcceptorKey`. ' additionalProperties: false required: - merchantId - mcc - merchantName - merchantCountryCode - websiteUrl - network properties: acquirerBin: type: string description: '6-11 digit Bank Identification Number assigned by the card network. Required for all card networks except AMEX. For AMEX populate this with the SE Number or leave blank depending on the model, see 3DS Guide. ' pattern: ^[0-9]+$ minLength: 6 maxLength: 11 merchantId: type: string description: 'Merchant identifier (MID) assigned by the acquirer. For AMEX populate this with the Seller ID or SE Number depending on the model, see 3DS Guide. ' minLength: 1 maxLength: 20 mcc: type: string description: 4-digit ISO 18245 merchant category code pattern: ^[0-9]+$ minLength: 4 maxLength: 4 merchantName: type: string description: Merchant's doing-business-as name minLength: 1 maxLength: 40 merchantCountryCode: description: ISO 3166-1 country code. Can be provided in alpha-2, alpha-3, or numeric format oneOf: - $ref: '#/components/schemas/schemas-CountryCodeAlpha3' - $ref: '#/components/schemas/schemas-CountryCodeAlpha2' - $ref: '#/components/schemas/schemas-CountryCodeNumeric' websiteUrl: type: string description: Merchant's website URL maxLength: 2048 network: allOf: - description: The card network that will process the transaction and handle authentication. - $ref: '#/components/schemas/network' components-schemas-city: type: string pattern: ^(?!\s*$).+ minLength: 1 maxLength: 50 description: 'The city of the address. ' example: Amsterdam network: type: string description: 'The card network to query for PAN information. Diners support is EXPERIMENTAL. ' enum: - american-express - bancontact - diners - mastercard - visa expiryYear: type: integer description: 'The year the card expires including the century ' minimum: 2020 maximum: 2050 ThreeRiAResWithoutAuthenticationValue: type: object description: The issuer's response to the 3DS request. allOf: - type: object required: - messageVersion - threeDSServerTransID - messageType - dsTransID - acsTransID - transStatus - dsReferenceNumber - acsReferenceNumber properties: threeDSServerTransID: $ref: '#/components/schemas/threeDSServerTransID' messageExtension: $ref: '#/components/schemas/MessageExtensionList' messageType: type: string enum: - ARes dsTransID: $ref: '#/components/schemas/dsTransID' acsTransID: $ref: '#/components/schemas/acsTransID' transStatus: $ref: '#/components/schemas/ThreeRiTransStatus' messageVersion: type: string description: The 3DS protocol version which has been used to perform 3DS. For 3RI it's always 2.2.0. enum: - 2.2.0 transStatusReason: $ref: '#/components/schemas/transStatusReason' cardholderInfo: $ref: '#/components/schemas/cardHolderInfo' acsChallengeMandated: $ref: '#/components/schemas/acsChallengeMandated' dsReferenceNumber: $ref: '#/components/schemas/dsReferenceNumber' acsReferenceNumber: $ref: '#/components/schemas/acsReferenceNumber' acsOperatorID: $ref: '#/components/schemas/acsOperatorID' acsDecConInd: $ref: '#/components/schemas/acsDecConInd' authenticationType: $ref: '#/components/schemas/authenticationType' eci: $ref: '#/components/schemas/eci' whiteListStatus: $ref: '#/components/schemas/whiteListStatus' whiteListStatusSource: $ref: '#/components/schemas/whiteListStatusSource' ThreeDsNoFlowNoAuth: type: object title: 3DS Unauthenticated required: - key - amount - network - protocolVersion - deviceChannel - flow - result - ares - created - version properties: key: $ref: '#/components/schemas/threedsKey' merchantAcceptorRef: $ref: '#/components/schemas/schemas-AcceptorRef' merchantInfo: $ref: '#/components/schemas/MerchantInfoResponse' amount: $ref: '#/components/schemas/ResponseAmount' network: $ref: '#/components/schemas/authenticationNetwork' protocolVersion: $ref: '#/components/schemas/protocolVersion' deviceChannel: $ref: '#/components/schemas/deviceChannel' flow: $ref: '#/components/schemas/noAuthFlow' result: $ref: '#/components/schemas/noAuthResult' ares: $ref: '#/components/schemas/ARes' transactionReference: $ref: '#/components/schemas/transactionReference' fraudLiability: $ref: '#/components/schemas/fraudLiability' type: type: object description: Transaction type information from the request properties: order: $ref: '#/components/schemas/order' intent: $ref: '#/components/schemas/intent' created: $ref: '#/components/schemas/schemas-created' version: $ref: '#/components/schemas/version' UnsupportedCardNetworkRegionErrorDetails: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/3ds/unsupported-card-network-region title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Unsupported Region for this Card Network status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 409 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' challengeIndicator: type: string description: "When set, indicates the preferred 3DS challenge flow as follows: \n - `no-preference`: No preference related to the challenge flow.\n - `no-challenge`: No challenge flow requested.\n - `challenge-preferred`: Preferably a challenge flow takes place.\n - `challenge-mandated`: The challenge flow must take place.\n - `no-challenge-tra`: No challenge requested as transaction risk analysis is already performed.\n - `no-challenge-low-value`: No challenge requested as low value exemption is applied. This exemption is only applicable for Mastercard.\n - `no-challenge-scp`: No challenge requested as the secure corporate payment exemption is applied. This exemption is only applicable for Mastercard and Visa.\n - `data-only`: For data sharing purposes only and therefore will never trigger a challenge flow.\n" enum: - no-preference - no-challenge - challenge-preferred - challenge-mandated - no-challenge-tra - no-challenge-low-value - no-challenge-scp - data-only ThreeRiRequestWithMerchantInfo: title: With Merchant Info [EXPERIMENTAL] description: 'Initiate a 3RI authentication by providing merchant information directly. This allows performing 3RI without requiring merchant acceptor onboarding. ' type: object additionalProperties: false required: - card - threeRiIndicator - amount - threeDsPriorAuthenticationInfo - merchantInfo properties: merchantInfo: $ref: '#/components/schemas/MerchantInfoRequest' card: $ref: '#/components/schemas/Card' threeRiIndicator: $ref: '#/components/schemas/ThreeRiIndicator' amount: $ref: '#/components/schemas/Amount' cardholderInformation: $ref: '#/components/schemas/CardholderInformation' billingAddress: description: The billing address of the cardholder $ref: '#/components/schemas/AddressInput' transactionReference: $ref: '#/components/schemas/transactionReference' threeDsPriorAuthenticationInfo: $ref: '#/components/schemas/ThreeDsPriorAuthenticationInfo' recurringExpiry: $ref: '#/components/schemas/ThreeRiRecurringExpiry' recurringFrequency: $ref: '#/components/schemas/ThreeRiRecurringFrequency' installmentTerms: $ref: '#/components/schemas/InstallmentTerms' intent: description: 'The intention of the cardholder. ' type: string enum: - purchase - reservation - account-status - payout - payout-status - funding - advice - refund noAuthFlow: allOf: - enum: - none - $ref: '#/components/schemas/flow' messageCategory: type: string description: Indicates the category of the EMV 3-D Secure message. ThreeRiARes: type: object description: The issuer's response to the 3DS request. allOf: - type: object required: - messageVersion - threeDSServerTransID - messageType - dsTransID - acsTransID - transStatus - dsReferenceNumber - acsReferenceNumber properties: threeDSServerTransID: $ref: '#/components/schemas/threeDSServerTransID' messageExtension: $ref: '#/components/schemas/MessageExtensionList' messageType: type: string enum: - ARes dsTransID: $ref: '#/components/schemas/dsTransID' acsTransID: $ref: '#/components/schemas/acsTransID' transStatus: $ref: '#/components/schemas/ThreeRiTransStatus' messageVersion: type: string description: The 3DS protocol version which has been used to perform 3DS. For 3RI it's always 2.2.0. enum: - 2.2.0 transStatusReason: $ref: '#/components/schemas/transStatusReason' cardholderInfo: $ref: '#/components/schemas/cardHolderInfo' acsChallengeMandated: $ref: '#/components/schemas/acsChallengeMandated' dsReferenceNumber: $ref: '#/components/schemas/dsReferenceNumber' acsReferenceNumber: $ref: '#/components/schemas/acsReferenceNumber' acsOperatorID: $ref: '#/components/schemas/acsOperatorID' acsDecConInd: $ref: '#/components/schemas/acsDecConInd' authenticationType: $ref: '#/components/schemas/authenticationType' eci: $ref: '#/components/schemas/eci' whiteListStatus: $ref: '#/components/schemas/whiteListStatus' whiteListStatusSource: $ref: '#/components/schemas/whiteListStatusSource' authenticationValue: $ref: '#/components/schemas/authenticationValue' frictionlessResult: allOf: - description: 'Indicates that the cardholder was successfully authenticated. ' enum: - authenticated - $ref: '#/components/schemas/result' ThreeRiRecurringExpiry: type: string format: date description: 'The date at which the recurring authorization expires. This property is required for `threeRiIndicator = "recurring"`, `"installment"`, or `"standing-order"`. For other cases, it will default to `2050-12-31`, indicating no expiry date is specified. Format: YYYY-MM-DD. ' AuthenticationContext: type: object description: 'Contains data that the issuer needs to perform the fingerprinting, but also optional configuration settings. ' required: - notificationUrl - browserData properties: notificationUrl: $ref: '#/components/schemas/notificationUrl' browserData: type: object description: 'Information about the browser that is performing the transaction. This data is used by the issuer to perform fingerprinting. ' oneOf: - $ref: '#/components/schemas/BrowserDataJavascriptEnabledTrue' - $ref: '#/components/schemas/BrowserDataJavascriptEnabledFalse' ThreeRiRequestWithMerchantAcceptor: title: With Merchant Acceptor description: 'Initiate a 3RI authentication using an existing merchant acceptor. This requires prior onboarding of the merchant acceptor in the Silverflow system. ' type: object additionalProperties: false required: - card - threeRiIndicator - amount - threeDsPriorAuthenticationInfo - merchantAcceptorResolver properties: merchantAcceptorResolver: $ref: '#/components/schemas/merchantAcceptorResolver' card: $ref: '#/components/schemas/Card' threeRiIndicator: $ref: '#/components/schemas/ThreeRiIndicator' amount: $ref: '#/components/schemas/Amount' cardholderInformation: $ref: '#/components/schemas/CardholderInformation' billingAddress: description: The billing address of the cardholder $ref: '#/components/schemas/AddressInput' transactionReference: $ref: '#/components/schemas/transactionReference' threeDsPriorAuthenticationInfo: $ref: '#/components/schemas/ThreeDsPriorAuthenticationInfo' recurringExpiry: $ref: '#/components/schemas/ThreeRiRecurringExpiry' recurringFrequency: $ref: '#/components/schemas/ThreeRiRecurringFrequency' installmentTerms: $ref: '#/components/schemas/InstallmentTerms' ThreeRiResponseWithoutAuthenticationValue: type: object title: 3RI Authentication Without Authentication Value required: - key - amount - network - protocolVersion - deviceChannel - result - ares - fraudLiability - created - version properties: key: $ref: '#/components/schemas/threedsKey' merchantAcceptorRef: $ref: '#/components/schemas/schemas-AcceptorRef' merchantInfo: $ref: '#/components/schemas/MerchantInfoResponse' amount: $ref: '#/components/schemas/ResponseAmount' network: $ref: '#/components/schemas/authenticationNetwork' protocolVersion: type: string description: The 3DS protocol version which has been used to perform 3DS. For 3RI it's always 2.2.0 enum: - 2.2.0 deviceChannel: type: string description: Indicates the type of the interface used to initiate the transaction. enum: - 3ri result: $ref: '#/components/schemas/Result' ares: $ref: '#/components/schemas/ThreeRiAResWithoutAuthenticationValue' transactionReference: $ref: '#/components/schemas/transactionReference' fraudLiability: $ref: '#/components/schemas/fraudLiability' created: $ref: '#/components/schemas/schemas-created' version: $ref: '#/components/schemas/version' acsChallengeMandated: type: string description: Indication of whether a challenge is required for the transaction to be authorized due to local/regional mandates or other variable. ARes: type: object description: The issuer's response to the 3DS request. allOf: - $ref: '#/components/schemas/Message' - type: object required: - messageType - dsTransID - acsTransID - transStatus - dsReferenceNumber - acsReferenceNumber properties: messageType: type: string enum: - ARes dsTransID: $ref: '#/components/schemas/dsTransID' acsTransID: $ref: '#/components/schemas/acsTransID' transStatus: $ref: '#/components/schemas/transStatus' transStatusReason: $ref: '#/components/schemas/transStatusReason' cardholderInfo: $ref: '#/components/schemas/cardHolderInfo' acsChallengeMandated: $ref: '#/components/schemas/acsChallengeMandated' dsReferenceNumber: $ref: '#/components/schemas/dsReferenceNumber' acsReferenceNumber: $ref: '#/components/schemas/acsReferenceNumber' acsOperatorID: $ref: '#/components/schemas/acsOperatorID' acsDecConInd: $ref: '#/components/schemas/acsDecConInd' acsRenderingType: $ref: '#/components/schemas/acsRenderingType' acsURL: $ref: '#/components/schemas/acsUrl' authenticationType: $ref: '#/components/schemas/authenticationType' eci: $ref: '#/components/schemas/eci' whiteListStatus: $ref: '#/components/schemas/whiteListStatus' whiteListStatusSource: $ref: '#/components/schemas/whiteListStatusSource' acsSignedContent: $ref: '#/components/schemas/acsSignedContent' authenticationValue: $ref: '#/components/schemas/authenticationValue' ThreeRiTransStatus: type: string description: "Indicates whether a transaction is authenticated or not.\n - `Y` indicates authenticated\n - `N` indicates not authenticated\n - `R` indicates rejected\n" enum: - Y - N - R recurringExpiry: type: string format: date description: 'The date at which the recurring authorization expires. Format: YYYY-MM-DD. Required when `type.order` is `recurring` or `installment`. ' transStatusReason: type: string pattern: ^(0[1-9])$|^(1[0-9])$|^(2[0-6])$|^([8-9][0-9])$ description: Provides information on why the `transStatus` field has the specified value. authenticationValue: type: string description: 'The result value from the 3DS transaction received from the ACS. This value is no longer present on responses after 45 days have passed after the authentication. Note that Mastercard and Visa use a different underlying format. This property will only be present in the ARes if `transStatus` is `Y`, `A` and conditionally (by DS rules) `I`. ' acceptorKeyRef: description: Uniquely identifies a merchant acceptor. type: string pattern: ^mac-[a-zA-Z0-9]+$ example: mac-25oJsQ99GBpW23MQidKS activeProtocolVersion: allOf: - type: string enum: - 2.2.0 - $ref: '#/components/schemas/protocolVersion' whiteListStatusSource: type: string description: This data element will be populated by the system setting Whitelist Status. Required if Whitelist Status is present. acsOperatorID: type: string description: DS assigned ACS identifier. ThreeDs: title: 3DS Entity oneOf: - $ref: '#/components/schemas/ThreeDsFrictionlessAuthenticated' - $ref: '#/components/schemas/ThreeDsChallenge' - $ref: '#/components/schemas/ThreeDsChallengeFinished' - $ref: '#/components/schemas/ThreeDsNoFlowNoAuth' - $ref: '#/components/schemas/ThreeRiResponse' - $ref: '#/components/schemas/ThreeDsDataOnly' 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 browserJavaEnabled: type: boolean description: "The ability of the cardholder browser to execute Java. Value is returned from the \n`navigator.javaEnabled` property from the HTML DOM API.\n" example: true UnknownAmount: type: object title: Unknown Amount required: - value - currency additionalProperties: false properties: value: type: integer format: int64 description: The value of the amount is unknown. enum: - -1 currency: type: string description: The currency code is unknown. enum: - unknown Card: description: 'This field represents the card. The card credentials can either be passed directly in the request or be referenced using a `key`. ' oneOf: - $ref: '#/components/schemas/InputCard' - $ref: '#/components/schemas/CardByProcessorTokenKey' challengeResult: allOf: - description: "Indicates that the cardholder has finished the challenge flow and whether the \ncardholder is either authenticated or non-authenticated.\n" enum: - authenticated - non-authenticated - $ref: '#/components/schemas/result' BrowserDataJavascriptEnabledTrue: allOf: - $ref: '#/components/schemas/BrowserData' - type: object required: - javascriptEnabled - screenWidth - screenHeight - timeZoneOffset - javaEnabled - colorDepth properties: javascriptEnabled: type: boolean description: The ability of the cardholder browser to execute JavaScript. enum: - true screenWidth: $ref: '#/components/schemas/browserScreenWidth' screenHeight: $ref: '#/components/schemas/browserScreenHeight' timeZoneOffset: $ref: '#/components/schemas/browserTimeZoneOffset' javaEnabled: $ref: '#/components/schemas/browserJavaEnabled' colorDepth: $ref: '#/components/schemas/browserColorDepth' merchantAcceptorResolver: description: 'The resolver is used to select the appropriate merchant acceptor for doing the authentication. ' type: object additionalProperties: false required: - merchantAcceptorKey properties: merchantAcceptorKey: $ref: '#/components/schemas/schemas-acceptorKey' transStatus: type: string enum: - Y - N - U - A - C - D - R - I description: Indicates whether a transaction qualifies as an authenticated transaction or account verification. 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' cardEntry: description: 'The method used to capture the card details. ' type: string enum: - e-commerce - card-on-file - token - token-on-file 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: 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 description: A list of validation errors. dsTransID: type: string description: Universally unique transaction identifier assigned by the DS to identify a single transaction. format: uuid pattern: ^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$ example: c73bcdcc-2669-4bf6-81d3-e4ae73fb11fd fraudLiability: description: Which party is liable in case of fraud. type: string enum: - acquirer - issuer ThreeRiRequest: oneOf: - $ref: '#/components/schemas/ThreeRiRequestWithMerchantAcceptor' - $ref: '#/components/schemas/ThreeRiRequestWithMerchantInfo' RReqWithoutAuthValue: type: object description: 'This property is only present after the cardholder finished the challenge flow. The RReq message communicates the results of the authentication or verification. This message is received by Silverflow from the issuer (through the scheme) and contains the result of a challenge flow. Once Silverflow received the CReq, it will be appended to the 3DS entity it belongs to and the result can be interpreted by the requester.' allOf: - $ref: '#/components/schemas/Message' - type: object required: - messageType - acsTransID - dsTransID - interactionCounter - messageCategory - transStatus properties: messageType: type: string enum: - RReq acsTransID: $ref: '#/components/schemas/acsTransID' acsRenderingType: $ref: '#/components/schemas/acsRenderingType' authenticationMethod: $ref: '#/components/schemas/authenticationMethod' authenticationType: $ref: '#/components/schemas/authenticationType' challengeCancel: $ref: '#/components/schemas/challengeCancel' dsTransID: $ref: '#/components/schemas/dsTransID' eci: $ref: '#/components/schemas/eci' interactionCounter: $ref: '#/components/schemas/interactionCounter' messageCategory: $ref: '#/components/schemas/messageCategory' transStatus: $ref: '#/components/schemas/transStatus' transStatusReason: $ref: '#/components/schemas/transStatusReason' whiteListStatus: $ref: '#/components/schemas/whiteListStatus' whiteListStatusSource: $ref: '#/components/schemas/whiteListStatusSource' dsReferenceNumber: type: string description: EMVCo-assigned unique identifier to track approved DS. errorInstance: type: string description: 'A reference that identifies the specific occurrence of the error. The instance is unique for every error. ' localTransactionDateTime: type: string format: iso-8601-date-time description: Date and time of the transaction in the local timezone. errorStatus: type: integer format: int32 description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' InvalidRequestErrorDetails: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/invalid-request title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Invalid Request status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 400 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' threedsKey: description: Uniquely identifies a 3DS authentication. type: string pattern: ^tds-[a-zA-Z0-9]+$ example: tds-2lCYLHDuRPW9MvQK3sd6 InvalidOffsetTokenErrorDetails: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/invalid-offset-token title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Invalid Offset Token status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 400 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' authenticationType: type: string description: 'Indicates the type of authentication method the issuer will use to challenge the cardholder, whether in the ARes message or what was used by the ACS when in the RReq message. ' 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' UnenrolledAcquireOrMerchantErrorDetails: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/3ds/unenrolled-acquirer-or-merchant title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Unenrolled Acquirer or Merchant status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 422 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' AuthenticationRequiredErrorDetails: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/authentication-required title: $ref: '#/components/schemas/errorTitle' status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 401 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' errorDetail: type: string description: 'A human readable explanation specific to this occurrence of the problem. ' ThreeDsType: description: 'Describes the kind of transaction the merchant wants to submit. ' type: object required: - intent - cardEntry - order properties: intent: $ref: '#/components/schemas/intent' cardEntry: $ref: '#/components/schemas/cardEntry' order: $ref: '#/components/schemas/order' authenticationNetwork: type: string description: 'The card network that was used for the authentication. It is `unknown` for entities older than 2024-04-11. ' enum: - american-express - bancontact - diners - mastercard - visa - unknown deviceChannel: type: string description: Indicates the type of the interface used to initiate the transaction. enum: - browser - app - 3ri eci: type: string description: Payment system-specific value provided by the ACS or DS to indicate the results of the attempt to authenticate the Cardholder. schemas-lastModified: type: string description: The date and time this object was last modified. format: iso-8601-date-time errorType: type: string description: 'A relative URI reference, this property can be used to perform automated error handling. ' threeDsPage: allOf: - $ref: '#/components/schemas/schemas-Page' - type: object required: - threeDss properties: threeDss: type: array items: $ref: '#/components/schemas/ThreeDsPageEntity' ThreeRiResponse: type: object title: 3RI Authentication required: - key - protocolVersion - amount - network - deviceChannel - result - ares - fraudLiability - threeRiIndicator - created - version properties: key: $ref: '#/components/schemas/threedsKey' merchantAcceptorRef: $ref: '#/components/schemas/schemas-AcceptorRef' merchantInfo: $ref: '#/components/schemas/MerchantInfoResponse' amount: $ref: '#/components/schemas/ResponseAmount' network: $ref: '#/components/schemas/authenticationNetwork' protocolVersion: type: string description: The 3DS protocol version which has been used to perform 3DS. For 3RI it's always 2.2.0 enum: - 2.2.0 deviceChannel: type: string description: Indicates the type of the interface used to initiate the transaction. enum: - 3ri result: $ref: '#/components/schemas/Result' ares: $ref: '#/components/schemas/ThreeRiARes' transactionReference: $ref: '#/components/schemas/transactionReference' fraudLiability: $ref: '#/components/schemas/fraudLiability' threeRiIndicator: $ref: '#/components/schemas/ThreeRiIndicator' created: $ref: '#/components/schemas/schemas-created' version: $ref: '#/components/schemas/version' InputCard: type: object required: - number - expiryMonth - expiryYear additionalProperties: false description: 'Card data ' properties: number: $ref: '#/components/schemas/pan' expiryMonth: $ref: '#/components/schemas/expiryMonth' expiryYear: $ref: '#/components/schemas/expiryYear' cvc: $ref: '#/components/schemas/cvc' holderName: $ref: '#/components/schemas/holderName' challengeFlow: allOf: - enum: - challenge - $ref: '#/components/schemas/flow' 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: 1234 UnsupportedCardNetworkErrorDetails: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/3ds/unsupported-card-network title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Unsupported Card Network status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 409 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' responses: InternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/InternalServerErrorDetails' examples: InternalServerErrorExample: $ref: '#/components/examples/InternalServerErrorExample' components-responses-TooManyRequestsError: description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/TooManyRequestsErrorDetails' examples: TooManyRequestsErrorExample: $ref: '#/components/examples/TooManyRequestsErrorExample' components-responses-UnauthorizedError: description: Authentication Required headers: WWW_Authenticate: schema: type: string content: application/json: schema: $ref: '#/components/schemas/AuthenticationRequiredErrorDetails' examples: AuthenticationRequiredExample: $ref: '#/components/examples/AuthenticationRequiredExample' parameters: threedsKey: name: threedsKey in: path required: true description: The key of the 3DS authentication to get. schema: $ref: '#/components/schemas/threedsKey' parameters-offsetToken: name: offsetToken description: The offset token. This token is returned in the response of previous request. in: query required: false schema: $ref: '#/components/schemas/schemas-offsetToken' sortOrder: name: sortOrder description: The sort order, __asc__ending or __desc__ending in: query required: false schema: type: string enum: - asc - desc example: desc limit: name: limit description: The number of items to return in: query required: false schema: type: integer format: int32 minimum: 1 maximum: 100 default: 10 example: 1 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