openapi: 3.2.0 info: title: Silverflow Transaction Risk Assessment API version: 1.417.0 contact: name: API Support email: support@silverflow.com license: name: Commercial description: 'Operations tagged Transaction Risk Assessment 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: Transaction Risk Assessment description: Transaction Risk Assessment paths: /riskAssessments: post: operationId: performRiskAssessment summary: Perform a risk assessment for a given provider description: 'This endpoint is used to do a risk assessment outside of the transaction flow. It returns a risk assessment, along with a response from the given provider. Requires the `riskAsessments:Create` permission. ' tags: - Transaction Risk Assessment requestBody: description: 'The POST body needs to have all the necessary information required to do a risk assessment. ' required: true content: application/json: schema: $ref: '#/components/schemas/RiskAssessmentRequest' examples: FraudioRequest: $ref: '#/components/examples/perform-risk-assessment-fraudio' CybersourceRequest: $ref: '#/components/examples/perform-risk-assessment-cybersource' responses: '201': headers: Location: description: The URL of the risk assessment schema: type: string description: Risk assessment created content: application/json: schema: $ref: '#/components/schemas/RiskAssessmentResult' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails' examples: InvalidInputErrorExample: $ref: '#/components/examples/components-examples-InvalidInputErrorExample' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/schemas-NotAuthorizedErrorDetails' '408': description: Provider timeout content: application/json: schema: $ref: '#/components/schemas/RiskProviderTimeoutError' '409': description: No customer token content: application/json: schema: $ref: '#/components/schemas/RiskProviderNoCustomerTokenError' '422': description: The server was unable to process the request. content: application/json: schema: $ref: '#/components/schemas/MerchantAcceptorNotFoundError' '500': description: Risk provider unexpected error content: application/json: schema: $ref: '#/components/schemas/RiskProviderUnexpectedError' servers: - url: https://eu-west-1.api.silverflow.com/v1 description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1 - url: https://us-east-2.api.silverflow.com/v1 description: Production URL for North America - url: https://eu-west-1.api-sbx.silverflow.com/v1 description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1 components: schemas: score: type: number description: The score of the Fraudio risk assessment. example: 0.533506949459276 AcceptorKey: description: Uniquely identifies a Merchant Acceptor. type: string pattern: ^mac-[a-zA-Z0-9]+$ example: mac-1JRadf2ffdfrdPMf2XrS2 cybersourceId: type: string description: The id of the Cybersource risk assessment. example: '5526663169230178269497' Authentication: description: Details related to authentication of the transaction type: object properties: cvc: $ref: '#/components/schemas/CvcResult' avs: $ref: '#/components/schemas/AvsResult' threeDsResult: $ref: '#/components/schemas/ThreeDsResult' cybersourceProvider: type: string description: Indicator that risk assessment has been done with Cybersource. enum: - cybersource components-schemas-version: type: integer description: The version of this object format: int64 readOnly: true openapi_components-schemas-city-2: type: string minLength: 1 description: 'The city of the address. ' CybersourceRequest: type: object additionalProperties: false required: - provider - merchantAcceptorKey - card - amount - chargeType - customer properties: provider: $ref: '#/components/schemas/cybersourceProvider' merchantAcceptorKey: $ref: '#/components/schemas/AcceptorKey' card: $ref: '#/components/schemas/components-schemas-CardInput' amount: $ref: '#/components/schemas/openapi_components-schemas-Amount-3' chargeType: $ref: '#/components/schemas/openapi_components-schemas-ChargeType-2' customer: $ref: '#/components/schemas/CybersourceCustomer' localTransactionDateTime: $ref: '#/components/schemas/schemas-LocalTransactionDateTime' authentication: $ref: '#/components/schemas/Authentication' authorizationFields: $ref: '#/components/schemas/Authorization' errorTitle: type: string description: 'A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error. ' openapi_components-schemas-InvalidInputErrorDetails: type: object required: - type - title - status - detail - instance - validationErrors properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/invalid-input title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Invalid Input status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 400 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' validationErrors: type: array items: $ref: '#/components/schemas/ValidationError' description: A list of validation errors. schemas-amountValue: type: integer format: int64 minimum: 0 maximum: 900000000 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. ' openapi_components-schemas-currencyCode-6: type: string pattern: ^[A-Z]{3}$ description: An alphabetic ISO-4217 currency code. externalDocs: description: Find more info here url: https://www.iso.org/iso-4217-currency-codes.html example: EUR schemas-NotAuthorizedErrorDetails: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/riskAssessments/not-authorized title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Not authorized status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 401 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' AvsResult: enum: - none - match - partial-match - no-match - not-processed description: The result of the AVS verification. expiryYear: type: integer description: 'The year the card expires including the century ' minimum: 2020 maximum: 2050 openapi_components-schemas-pan-3: type: string writeOnly: true description: Full digits of a card pattern: ^\d{12,19}$ format: password example: '1234123412341234' FraudioRequest: description: Fields used for a Fraudio request. required: - provider - merchantAcceptorKey - card - amount - chargeType type: object additionalProperties: false properties: provider: $ref: '#/components/schemas/fraudioProvider' merchantAcceptorKey: $ref: '#/components/schemas/AcceptorKey' card: $ref: '#/components/schemas/components-schemas-CardInput' amount: $ref: '#/components/schemas/openapi_components-schemas-Amount-3' chargeType: $ref: '#/components/schemas/openapi_components-schemas-ChargeType-2' customer: $ref: '#/components/schemas/FraudioCustomer' localTransactionDateTime: $ref: '#/components/schemas/schemas-LocalTransactionDateTime' authentication: $ref: '#/components/schemas/Authentication' authorizationFields: $ref: '#/components/schemas/Authorization' components-schemas-eci: type: string description: E-commerce Indicator openapi_components-schemas-AcceptorRef: type: object description: Reference key and status of the acceptor required: - key - version properties: key: $ref: '#/components/schemas/AcceptorKey' version: $ref: '#/components/schemas/components-schemas-version' intent: description: 'The intention of the cardholder. ' type: string enum: - purchase - reservation - account-status - payout - payout-status - funding - advice - refund components-schemas-NameOfPeopleAndPlaces: type: string pattern: ^[\w -,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$ minLength: 1 maxLength: 120 example: Name errorInstance: type: string description: 'A reference that identifies the specific occurrence of the error. The instance is unique for every error. ' ChargeKey: description: Uniquely identifies a charge. type: string pattern: ^chg-[a-zA-Z0-9]+$ minLength: 5 maxLength: 120 example: chg-1e1dAHhgstYTUhlphPzZ CybersourceCustomer: type: object additionalProperties: false description: Details of the customer carrying out the transaction required: - firstName - lastName - email - phoneNumber - billingAddress properties: firstName: description: The first name of the customer. allOf: - $ref: '#/components/schemas/components-schemas-NameOfPeopleAndPlaces' lastName: description: The last name of the customer. allOf: - $ref: '#/components/schemas/components-schemas-NameOfPeopleAndPlaces' email: description: The email of the customer. allOf: - $ref: '#/components/schemas/email' phoneNumber: description: The phone number of the customer. allOf: - $ref: '#/components/schemas/schemas-phoneNumber' billingAddress: description: The billing address of the customer. $ref: '#/components/schemas/AddressInputAlpha2' components-schemas-order: description: 'The method used to place the order. ' type: string enum: - checkout - unspecified - mail - phone - one-click - recurring - ucof - installment - counter openapi_components-schemas-Amount-3: 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/schemas-amountValue' currency: $ref: '#/components/schemas/openapi_components-schemas-currencyCode-6' errorStatus: type: integer format: int32 description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' openapi_components-schemas-cardEntry-2: description: 'The method used to capture the card details. ' type: string enum: - e-commerce - manual - card-on-file - token - token-on-file - terminal example: e-commerce Authorization: description: The authorization fields received in the ISO response message. type: object properties: responseCode: $ref: '#/components/schemas/responseCode' eci: $ref: '#/components/schemas/components-schemas-eci' schemas-LocalTransactionDateTime: type: string format: date-time description: Date and time of the transaction in the local timezone. cybersource_score: type: integer description: The score of the Cybersource risk assessment. example: 10 RiskProviderTimeoutError: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/riskAssessments/provider-timeout title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Request timed out status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 408 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' RiskAssessmentKey: description: Uniquely identifies a risk assessment. type: string pattern: ^rak-[a-zA-Z0-9]+$ minLength: 5 maxLength: 120 example: rak-1e1dAHhgstYTUhlphPzZ Provider: type: string description: The supported risk assessment providers. oneOf: - $ref: '#/components/schemas/fraudioProvider' - $ref: '#/components/schemas/cybersourceProvider' expiryMonth: type: integer description: 'The month the card expires. January is 1 ' minimum: 1 maximum: 12 openapi_components-schemas-status: type: string description: The status associated with the Cybersource risk assessment. enum: - ACCEPTED - REJECTED - PENDING_REVIEW - DECLINED - PENDING_AUTHENTICATION - INVALID_REQUEST - AUTHENTICATION_FAILED - CHALLENGE email: type: string description: A valid email address pattern: \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* CybersourceResult: type: object additionalProperties: false required: - id - score - status description: A risk assessment result from Cybersource. properties: id: $ref: '#/components/schemas/cybersourceId' score: $ref: '#/components/schemas/cybersource_score' status: $ref: '#/components/schemas/openapi_components-schemas-status' RiskAssessmentRequest: oneOf: - $ref: '#/components/schemas/FraudioRequest' - $ref: '#/components/schemas/CybersourceRequest' fraudioProvider: type: string description: Indicator that risk assessment has been done with Fraudio. enum: - fraudio recommendation: description: The recommendation of the Fraudio risk assessment. type: string enum: - green - amber - red example: green errorDetail: type: string description: 'A human readable explanation specific to this occurrence of the problem. ' openapi_components-schemas-terminalEntryMode: description: 'Required when `cardEntry` is `terminal`. This field indicates the method used for PAN entry on the terminal to initiate the transaction. ' type: string enum: - contactless - chip responseCode: type: string description: Contents of field 39 RiskAssessmentResult: type: object additionalProperties: false required: - key - provider - merchantAcceptorRef - card - amount - chargeType - result - created - status - version description: The risk assessment response. properties: key: $ref: '#/components/schemas/RiskAssessmentKey' provider: $ref: '#/components/schemas/Provider' merchantAcceptorRef: $ref: '#/components/schemas/openapi_components-schemas-AcceptorRef' chargeKey: $ref: '#/components/schemas/ChargeKey' card: $ref: '#/components/schemas/schemas-OutputCard' amount: $ref: '#/components/schemas/openapi_components-schemas-Amount-3' chargeType: $ref: '#/components/schemas/openapi_components-schemas-ChargeType-2' localTransactionDateTime: $ref: '#/components/schemas/schemas-LocalTransactionDateTime' customer: oneOf: - $ref: '#/components/schemas/FraudioCustomer' - $ref: '#/components/schemas/CybersourceCustomer' authentication: $ref: '#/components/schemas/Authentication' authorizationFields: $ref: '#/components/schemas/Authorization' result: oneOf: - $ref: '#/components/schemas/schemas-FraudioResult' - $ref: '#/components/schemas/CybersourceResult' created: $ref: '#/components/schemas/openapi_components-schemas-created-2' lastModified: $ref: '#/components/schemas/openapi_components-schemas-lastModified' status: $ref: '#/components/schemas/common_status' version: $ref: '#/components/schemas/components-schemas-version' openapi_components-schemas-countryCodeAlpha2: type: string pattern: ^[A-Z]{2}$ description: 'The ISO code of the country. **European ISO Country Codes**
| Country | Alpha-2 code | Numeric | | ------- | ------------ | ------- | | Åland Islands | AX | 248 | | Andorra | AD | 020 | | Austria | AT | 040 | | Belgium | BE | 056 | | Cyprus | CY | 196 | | Estonia | EE | 233 | | | Finland | FI | 246 | | France | FR | 250 | | French Guiana | GF | 254 | | French Southern Territories | TF | 260 | | Germany | DE | 280 | | Greece | GR | 300 | | Guadeloupe | GP | 312 | | Ireland | IE | 372 | | Italy | IT | 380 | | Kosovo, United Nations Mission in Kosovo (UNMIK) | QZ | 900 | | Latvia | LV | 428 | | Lithuania | LT | 440 | | Luxembourg | LU | 442 | | Malta | MT | 470 | | Martinique | MQ | 474 | | Mayotte | YT | 175 | | Monaco | MC | 492 | | Montenegro | ME | 499 | | Netherlands | NL | 528 | | Portugal | PT | 620 | | Reunion | RE | 638 | | Saint Barthélemy | BL | 652 | | Saint Martin (French Part) | MF | 663 | | San Marino | SM | 674 | | Slovakia | SK | 703 | | Slovenia | SI | 705 | | Spain | ES | 724 | | St. Pierre and Miquelon | PM | 666 | | Vatican City State (Holy See) | VA | 336 |
**US ISO Country Codes**
| Country | Alpha-2 code | Numeric | | ------- | ------------ | ------- | | American Samoa | AS | 016 | | Bonaire, St. Eusasius and Saba | BQ | 535 | | British Indian Ocean Territory | IO | 086 | | Ecuador | EC | 218 | | Guam | GU | 316 | | Marshall Islands | MH | 584 | | Micronesia, Federated States of | FM | 583 | | Northern Mariana Islands | MP | 580 | | Palau | PW | 585 | | Palestine, State of | PS | 275 | | Puerto Rico | PR | 630 | | Timor-Leste | TP | 626 | | Turks and Caicos Islands | TC | 796 | | U.S. Minor Outlying Islands | UM | 581 | | United States | US | 840 | | Virgin Islands, British | VG | 092 | | Virgin Islands, U.S. | VI | 850 |
**Other ISO Country Codes**
| Country | Alpha-2 code | Numeric | | ------- | ------------ | ------- | | Afghanistan | AF | 004 | | Albania | AL | 008 | | Algeria | DZ | 012 | | Angola | AO | 024 | | Anguilla | AI | 660 | | Antarctica | AQ | 010 | | Antigua and Barbuda | AG | 028 | | Argentina | AR | 032 | | Armenia | AM | 051 | | Aruba | AW | 533 | | Australia | AU | 036 | | Azerbaijan | AZ | 031 | | Bahamas | BS | 044 | | Bahrain | BH | 048 | | Bangladesh | BD | 050 | | Barbados | BB | 052 | | Belarus | BR | 112 | | Belize | BZ | 084 | | Benin | BJ | 204 | | Bermuda | BM | 060 | | Bhutan | BT | 064 | | Bolivia, Plurinational State of | BO | 068 | | Bosnia and Herzegovina | BA | 070 | | Botswana | BW | 072 | | Bouvet Island | BV | 074 | | Brazil | BR | 076 | | Brunei Darussalam | BN | 096 | | Bulgaria | BG | 100 | | Burkina Faso | BF | 854 | | Burundi | BI | 108 | | Cambodia | KH | 116 | | Cameroon | CM | 120 | | Canada | CA | 124 | | Cape Verde | CV | 132 | | Cayman Islands | KY | 136 | | Central African Republic | CF | 140 | | Chad | TD | 148 | | Chile | CL | 152 | | China | CN | 156 | | Christmas Island | CX | 162 | | Cocos (Keeling) Islands | CC | 166 | | Colombia | CO | 170 | | Comoros | KM | 174 | | Congo | CG | 178 | | Cook Islands | CK | 184 | | Costa Rica | CR | 188 | | Côte D''Ivoire | CI | 384 | | Croatia | HR | 191 | | Cuba | CU | 192 | | Curacao | CW | 531 | | Czech Republic | CZ | 203 | | Democratic Republic of the Congo | CD | 180 | | Denmark | DK | 208 | | Djibouti | DJ | 262 | | Dominica | DM | 212 | | Dominican Republic | DO | 214 | | Egypt | EG | 818 | | El Salvador | SV | 222 | | Equatorial Guinea | GQ | 226 | | Eritrea | ER | 232 | | Ethiopia | ET | 230 | | Falkland Islands (Malvinas) | FK | 238 | | Faroe Islands | FO | 234 | | Fiji | FJ | 242 | | French Polynesia | PF | 258 | | Gabon | GA | 266 | | Gambia | GM | 270 | | Georgia | GE | 268 | | Ghana | GH | 288 | | Gibraltar | GI | 292 | | Greenland | GL | 304 | | Grenada | GD | 308 | | Guatemala | GT | 320 | | Guernsey | GG | 831 | | Guinea | GN | 324 | | Guinea-Bissau | GW | 624 | | Guyana | GY | 328 | | Haiti | HT | 332 | | Heard and McDonald Islands | HM | 334 | | Honduras | HN | 340 | | Hong Kong | HK | 344 | | Hungary | HU | 348 | | Iceland | IS | 352 | | India | IN | 356 | | Indonesia | ID | 360 | | Iraq | IQ | 368 | | Isle of Man | IM | 833 | | Israel | IL | 376 | | Jamaica | JM | 388 | | Japan | JP | 392 | | Jersey | JE | 832 | | Jordan | JO | 400 | | Kazakhstan | KZ | 398 | | Kenya | KE | 404 | | Kiribati | KI | 296 | | Korea, Republic of | KR | 410 | | Kuwait | KW | 414 | | Kyrgyzstan | KG | 417 | | Lao People''s Democratic Republic | LA | 418 | | Lebanon | LB | 422 | | Lesotho | LS | 426 | | Liberia | LR | 430 | | Libyan Arab Jamahiriya | LY | 434 | | Liechtenstein | LI | 438 | | Macao | MO | 446 | | Macedonia | MK | 807 | | Madagascar | MG | 450 | | Malawi | MW | 454 | | Malaysia | MY | 458 | | Maldives | MV | 462 | | Mali | ML | 466 | | Mauritania | MR | 478 | | Mauritius | MU | 480 | | Mexico | MX | 484 | | Moldova, Republic of | MD | 498 | | Mongolia | MN | 496 | | Montserrat | MS | 500 | | Morocco | MA | 504 | | Mozambique | MZ | 508 | | Myanmar (effective 1 November 2012) | MM | 104 | | Namibia | NA | 516 | | Nauru | NR | 520 | | Nepal | NP | 524 | | Netherlands Antilles | AN | 530 | | New Caledonia | NC | 540 | | New Zealand | NZ | 554 | | Nicaragua | NI | 558 | | Niger | NE | 562 | | Nigeria | NG | 566 | | Niue | NU | 570 | | Norfolk Island | NF | 574 | | Norway | NO | 578 | | Oman | OM | 512 | | Pakistan | PK | 586 | | Panama | PA | 591 | | Papua New Guinea | PG | 598 | | Paraguay | PY | 600 | | Peru | PE | 604 | | Philippines | PH | 608 | | Pitcairn | PN | 612 | | Poland | PL | 616 | | Qatar | QA | 634 | | Republic of South Sudan | SS | 728 | | Romania | RO | 642 | | Russian Federation | RU | 643 | | Rwanda | RW | 646 | | Samoa | WS | 882 | | Sao Tome and Principe | ST | 678 | | Saudi Arabia | SA | 682 | | Senegal | SN | 686 | | Serbia | RS | 688 | | Seychelles | SC | 690 | | Sierra Leone | SL | 694 | | Singapore | SG | 702 | | Sint Maarten (Dutch Part) | SX | 534 | | Solomon Islands | SB | 090 | | Somalia | SO | 706 | | South Africa | ZA | 710 | | South Georgia and the South Sandwich Islands | GS | 239 | | Sri Lanka | LK | 144 | | Saint Helena, Ascension and Tristan Da Cunha | SH | 654 | | St. Kitts and Nevis | KN | 659 | | St. Lucia | LC | 662 | | St. Vincent and the Grenadines | VC | 670 | | Suriname | SR | 740 | | Svalbard and Jan Mayen | SJ | 744 | | Swaziland | SZ | 748 | | Sweden | SE | 752 | | Switzerland | CH | 756 | | Taiwan | TW | 158 | | Tajikistan | TJ | 762 | | Tanzania, United Republic of | TZ | 834 | | Thailand | TH | 764 | | Togo | TG | 768 | | Tokelau | TK | 772 | | Tonga | TO | 776 | | Trinidad and Tobago | TT | 780 | | Tunisia | TN | 788 | | Turkey | TR | 792 | | Turkmenistan | TM | 795 | | Tuvalu | TV | 798 | | Uganda | UG | 800 | | Ukraine | UA | 804 | | United Arab Emirates | AE | 784 | | United Kingdom | GB | 826 | | Uruguay | UY | 858 | | Uzbekistan | UZ | 860 | | Vanuatu | VU | 548 | | Venezuela, Bolivarian Republic of | VE | 862 | | Vietnam | VN | 704 | | Wallis and Futuna | WF | 876 | | Western Sahara | EH | 732 | | Yemen | YE | 886 | | Zambia | ZM | 894 | | Zimbabwe | ZW | 716 |
' externalDocs: description: Find more info here url: https://www.iso.org/iso-3166-country-codes.html example: NL ThreeDsResult: type: string description: 'The result of the 3DS authentication. ' enum: - authenticated - non-authenticated - attempt default: none ValidationError: type: object required: - path - message properties: path: type: string description: A relative path to the error location within the request body. errorCode: type: string description: A code that identifies the error. message: type: string description: A brief description of the validation error. common_status: type: string description: The status of the object enum: - active - archived RiskProviderNoCustomerTokenError: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/riskAssessments/no-customer-token title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - No risk provider token found for given agent key status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 409 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' schemas-phoneNumber: type: string description: An international phone number pattern: ^\+\d{2}(\(0\))?\d{3,19}$ example: +31(0)850609160 CvcResult: enum: - none - match - no-match - not-processed description: The result of cvc verification. openapi_components-schemas-stateOrProvince-2: type: string minLength: 1 description: 'The state (US) or province (non-US) of the address. ' AddressInputAlpha2: type: object required: - countryCode - city - line1 - postalCode additionalProperties: false description: 'A physical postal address ' properties: countryCode: $ref: '#/components/schemas/openapi_components-schemas-countryCodeAlpha2' stateOrProvince: $ref: '#/components/schemas/openapi_components-schemas-stateOrProvince-2' city: $ref: '#/components/schemas/openapi_components-schemas-city-2' line1: $ref: '#/components/schemas/openapi_components-schemas-line1-2' line2: $ref: '#/components/schemas/openapi_components-schemas-line2-2' postalCode: $ref: '#/components/schemas/openapi_components-schemas-postalCode-2' openapi_components-schemas-line2-2: type: string minLength: 1 description: 'Address line 2 ' MerchantAcceptorNotFoundError: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/riskAssessments/merchant-acceptor-not-found title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - The merchant acceptor was not found. status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 422 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' openapi_components-schemas-sequence: description: 'Required for recurring charges. This field indicates whether a charge is part of a recurring sequence. The initial charge of a recurring sequence should be flagged as `initial`, all subsequent transactions should be flagged as `subsequent` and must be sent to the `/charges/{initialChargeKey}/mit` endpoint. **From November 22, 2026 this field will be removed since it is not used.** ' type: string enum: - initial - subsequent deprecated: true openapi_components-schemas-holderName: type: string description: "The name of the cardholder. In case of AVS, value will be trimmed by the scheme if greater than 26 characters (Visa) or 22 characters (Mastercard).\n\nFor 3DS it will be trimmed if greater than 45 characters . \n\nMore information here: [Cardholder name restrictions](#section/Cardholder-name-restrictions)\n" pattern: ^[\x20-\x7E\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$ minLength: 1 maxLength: 120 example: Joe Cardholder RiskProviderUnexpectedError: type: object required: - type - title - status - detail - instance properties: type: allOf: - $ref: '#/components/schemas/errorType' - enum: - /silverflow/problems/riskAssessments/provider-unexpected title: allOf: - $ref: '#/components/schemas/errorTitle' - enum: - Request to risk provider returned with unexpected error status: allOf: - $ref: '#/components/schemas/errorStatus' - enum: - 500 detail: $ref: '#/components/schemas/errorDetail' instance: $ref: '#/components/schemas/errorInstance' errorType: type: string description: 'A relative URI reference, this property can be used to perform automated error handling. ' FraudioCustomer: type: object additionalProperties: false description: Details of the customer carrying out the transaction properties: firstName: description: The first name of the customer. allOf: - $ref: '#/components/schemas/components-schemas-NameOfPeopleAndPlaces' lastName: description: The last name of the customer. allOf: - $ref: '#/components/schemas/components-schemas-NameOfPeopleAndPlaces' email: description: The email of the customer. allOf: - $ref: '#/components/schemas/email' phoneNumber: description: The phone number of the customer. allOf: - $ref: '#/components/schemas/schemas-phoneNumber' openapi_components-schemas-postalCode-2: type: string pattern: ^[A-Z0-9]+$ description: 'The postal code of the address without any spaces. ' schemas-FraudioResult: type: object additionalProperties: false required: - score - recommendation description: A risk assessment result from Fraudio. properties: score: $ref: '#/components/schemas/score' recommendation: $ref: '#/components/schemas/recommendation' openapi_components-schemas-lastModified: type: string description: The date and time this object was last modified format: date-time readOnly: true schemas-OutputCard: type: object required: - last4 additionalProperties: false description: 'Card data ' properties: last4: type: string pattern: ^[0-9]+$ minLength: 4 maxLength: 4 example: 0905 openapi_components-schemas-created-2: type: string description: The date and time this object was created format: date-time readOnly: true openapi_components-schemas-line1-2: type: string minLength: 1 description: 'Address line 1 ' components-schemas-CardInput: type: object required: - number - expiryMonth - expiryYear additionalProperties: false description: 'Card data ' properties: number: $ref: '#/components/schemas/openapi_components-schemas-pan-3' expiryMonth: $ref: '#/components/schemas/expiryMonth' expiryYear: $ref: '#/components/schemas/expiryYear' holderName: $ref: '#/components/schemas/openapi_components-schemas-holderName' openapi_components-schemas-ChargeType-2: description: 'Describes the kind of charge the merchant wants to submit. ' type: object required: - intent - cardEntry - order properties: intent: $ref: '#/components/schemas/intent' cardEntry: $ref: '#/components/schemas/openapi_components-schemas-cardEntry-2' order: $ref: '#/components/schemas/components-schemas-order' sequence: $ref: '#/components/schemas/openapi_components-schemas-sequence' terminalEntryMode: $ref: '#/components/schemas/openapi_components-schemas-terminalEntryMode' examples: perform-risk-assessment-fraudio: value: provider: fraudio merchantAcceptorKey: mac-1JRadf2ffdfrdPMf2XrS2 card: number: '1234123412341234' expiryMonth: 1 expiryYear: 2020 holderName: Joe Cardholder amount: value: 900000000 currency: EUR chargeType: intent: purchase cardEntry: e-commerce order: checkout sequence: initial terminalEntryMode: contactless perform-risk-assessment-cybersource: value: provider: cybersource merchantAcceptorKey: mac-1JRadf2ffdfrdPMf2XrS2 card: number: '1234123412341234' expiryMonth: 1 expiryYear: 2020 holderName: Joe Cardholder amount: value: 900000000 currency: EUR chargeType: intent: purchase cardEntry: e-commerce order: checkout sequence: initial terminalEntryMode: contactless customer: firstName: Joe lastName: Cardholder email: joecardholder@example.com phoneNumber: +31(0)12345678 billingAddress: countryCode: US stateOrProvince: Pennsylvania city: Scranton line1: 1725 Slough Avenue line2: Suite 200 postalCode: '18503' localTransactionDateTime: '2019-08-24T14:15:22Z' authentication: cvc: none avs: none threeDsResult: authenticated authorizationFields: responseCode: '00' eci: '5' components-examples-InvalidInputErrorExample: value: type: /silverflow/problems/invalid-input title: Invalid Input status: 400 detail: The request does not adhere to the defined API schema. instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6 validationErrors: - path: /body/card/number message: must have required property 'number' errorCode: required.openapi.validation 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