openapi: 3.1.0 info: title: Swittest API 🚀 description: ' ### Prerequisites To use this API, you must have an active organization and an active user. If you don''t have an account yet, please contact us at [contact@switstack.io](mailto:contact@switstack.io). ### Roles - **Data**: Can get test suites, tests, configs and vcards. - **Full**: Can fully use swittest. ### Authentication To make authenticated requests, call `/auth/token` with your credentials and the appropriate grant type. An access token will be returned, which must be included in the request''s Authorization header using the Bearer prefix (`Authorization: Bearer `). ' version: 0.13.0 paths: /auth/token: post: tags: - Auth summary: Token operationId: token requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/OAuth2Form' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TokenSchema' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /auth/refresh-token: post: tags: - Auth summary: Refresh Token operationId: refresh_token requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Body_refresh_token_auth_refresh_token_post' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TokenSchema' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /auth/revoke-token: post: tags: - Auth summary: Revoke Token operationId: revoke_token requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Body_revoke_token_auth_revoke_token_post' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/configs/list: get: tags: - Config summary: List Config Files operationId: list_config_files security: - OAuth2PasswordBearer: [] parameters: - name: path in: query required: false schema: type: string format: path default: . title: Path responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListDirectorySchema' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/configs/load: get: tags: - Config summary: Load Config File operationId: load_config_file security: - OAuth2PasswordBearer: [] parameters: - name: path in: query required: true schema: type: string format: path title: Path responses: '200': description: Successful Response content: application/json: schema: type: object additionalProperties: true title: Response Load Config File Api Configs Load Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/suites: get: tags: - Suite summary: List Test Suites operationId: list_test_suites responses: '200': description: Successful Response content: application/json: schema: items: type: string type: array title: Response List Test Suites Api Suites Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] /api/suites/{test_suite_name_or_index}: get: tags: - Suite summary: Get Test Suite operationId: get_test_suite security: - OAuth2PasswordBearer: [] parameters: - name: test_suite_name_or_index in: path required: true schema: type: string title: Test Suite Name Or Index responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TestSuiteSchema' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/tests/{test_suite_name_or_index}/{test_name_or_index}: get: tags: - Test summary: Get Test operationId: get_test security: - OAuth2PasswordBearer: [] parameters: - name: test_suite_name_or_index in: path required: true schema: type: string title: Test Suite Name Or Index - name: test_name_or_index in: path required: true schema: type: string title: Test Name Or Index responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TestSchema' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/tests/{test_suite_name_or_index}/{test_name_or_index}/config: get: tags: - Test summary: Get Test Config operationId: get_test_config security: - OAuth2PasswordBearer: [] parameters: - name: test_suite_name_or_index in: path required: true schema: type: string title: Test Suite Name Or Index - name: test_name_or_index in: path required: true schema: type: string title: Test Name Or Index responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConfigSchema' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/tests/{test_suite_name_or_index}/{test_name_or_index}/vcard: get: tags: - Test summary: Get Test Vcard operationId: get_test_vcard security: - OAuth2PasswordBearer: [] parameters: - name: test_suite_name_or_index in: path required: true schema: type: string title: Test Suite Name Or Index - name: test_name_or_index in: path required: true schema: type: string title: Test Name Or Index responses: '200': description: Successful Response content: application/json: schema: anyOf: - type: array items: type: string - type: 'null' title: Response Get Test Vcard Api Tests Test Suite Name Or Index Test Name Or Index Vcard Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/tests/{test_suite_name_or_index}/{test_selection}: post: tags: - Test summary: Run Tests description: 'This endpoint runs one or more tests from a specified test suite. The response is streamed in real-time using Server-Sent Events (SSE) to provide continuous updates on the test execution status. Possible test selection values: - A single test name
- An index: 1036
- A list of indexes: 0, 99, 1036
- A range: 0-5
- A list of ranges: 0-5, 15-40
- A combination of ranges and indexes: 0-5, 8, 9, 15-40
- Select all tests with the value all

Verbose mode levels: - Level 0: Status and errors only
- Level 1: Level 0 + payment data and log data sets
- Level 2: Level 1 + parsed authorization TLV in payment data
- Level 3: Level 2 + parsed DF8129, DF8115, and DF8116 tags
' operationId: run_tests security: - OAuth2PasswordBearer: [] parameters: - name: test_suite_name_or_index in: path required: true schema: type: string title: Test Suite Name Or Index - name: test_selection in: path required: true schema: type: string title: Test Selection requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RunTestSchema' responses: '200': description: Successful Response content: text/event-stream: itemSchema: type: object properties: data: type: string event: type: string id: type: string retry: type: integer minimum: 0 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/tests: post: tags: - Test summary: Run Custom Test description: 'Verbose mode levels: - Level 0: Status and errors only
- Level 1: Level 0 + payment data and log data sets
- Level 2: Level 1 + parsed authorization TLV in payment data
- Level 3: Level 2 + parsed DF8129, DF8115, and DF8116 tags
' operationId: run_custom_test requestBody: content: application/json: schema: $ref: '#/components/schemas/RunCustomTestSchema' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TestResultSchema' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] /api/verify/test-suite: post: tags: - Validation summary: Verify Test Suite operationId: verify_test_suite requestBody: content: application/json: schema: $ref: '#/components/schemas/TestSuiteSchema' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] /api/verify/test: post: tags: - Validation summary: Verify Test operationId: verify_test requestBody: content: application/json: schema: additionalProperties: true type: object title: Payload required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] /api/verify/bin: post: tags: - Validation summary: Verify Bin Scope operationId: verify_bin_scope requestBody: content: application/json: schema: $ref: '#/components/schemas/BINScopeSchema' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] /api/verify/capk: post: tags: - Validation summary: Verify Capk Scope operationId: verify_capk_scope requestBody: content: application/json: schema: $ref: '#/components/schemas/CAPKScopeSchema' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] /api/verify/cr: post: tags: - Validation summary: Verify Cr Scope operationId: verify_cr_scope requestBody: content: application/json: schema: $ref: '#/components/schemas/CRScopeSchema' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] /api/verify/emv: post: tags: - Validation summary: Verify Emv Scope operationId: verify_emv_scope requestBody: content: application/json: schema: $ref: '#/components/schemas/EMVScopeSchema' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] /api/parse/log: post: tags: - Parser summary: Parse Log description: Accepts an uploaded HTML file and returns a test schema and vCard from it. operationId: parse_log requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/Body_parse_log_api_parse_log_post' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TestSchema' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] /api/parse/tag: post: tags: - Parser summary: Parse Tag description: Parse a specific tag and returns all the information that can be extracted from it. operationId: parse_tag security: - OAuth2PasswordBearer: [] parameters: - name: verbose in: query required: false schema: type: boolean default: true title: Verbose requestBody: required: true content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Body_parse_tag_api_parse_tag_post' responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/ParsedTag' - type: object additionalProperties: anyOf: - type: string - type: integer - type: number title: Response Parse Tag Api Parse Tag Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/parse/list-tags: post: tags: - Parser summary: List Tags description: List all supported tags with their names, description and length. operationId: list_tags responses: '200': description: Successful Response content: application/json: schema: additionalProperties: $ref: '#/components/schemas/TagDescription' type: object title: Response List Tags Api Parse List Tags Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] /api/parse/tlv: post: tags: - Parser summary: Parse Tlv description: Parse a TLV string and return a dict of the tag's name and value(s). operationId: parse_tlv requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Body_parse_tlv_api_parse_tlv_post' required: true responses: '200': description: Successful Response content: application/json: schema: anyOf: - additionalProperties: true type: object - items: additionalProperties: true type: object type: array title: Response Parse Tlv Api Parse Tlv Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] components: schemas: BINConfigSchema: properties: name: type: string title: Name bin_lists: items: type: string type: array title: Bin Lists additionalProperties: false type: object required: - name - bin_lists title: BINConfigSchema BINListSchema: properties: name: type: string title: Name bins: items: type: string type: array title: Bins additionalProperties: false type: object required: - name - bins title: BINListSchema BINSchema: properties: name: anyOf: - type: string maxLength: 255 minLength: 1 examples: - BIN name - type: 'null' title: Name min_range: type: integer title: Min Range examples: - 0 max_range: type: integer title: Max Range examples: - 99999999 additionalProperties: false type: object required: - min_range - max_range title: BINSchema BINScopeSchema: properties: bins: additionalProperties: $ref: '#/components/schemas/BINSchema' type: object title: Bins bin_lists: additionalProperties: $ref: '#/components/schemas/BINListSchema' type: object title: Bin Lists bin_config: $ref: '#/components/schemas/BINConfigSchema' additionalProperties: false type: object required: - bins - bin_lists - bin_config title: BINScopeSchema BitBlock: properties: type: type: string const: bit title: Type value: type: string title: Value sections: items: $ref: '#/components/schemas/BitSection' type: array title: Sections type: object required: - type - value - sections title: BitBlock BitSection: properties: value: type: string title: Value length: type: integer title: Length label: anyOf: - type: string - type: 'null' title: Label meaning: anyOf: - type: string - type: integer - type: number title: Meaning is_true: type: boolean title: Is True combinations: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Combinations type: object required: - value - length - meaning - is_true title: BitSection Body_parse_log_api_parse_log_post: properties: file: type: string contentMediaType: application/octet-stream title: File type: anyOf: - $ref: '#/components/schemas/SupportedTypes' - type: 'null' scheme: anyOf: - $ref: '#/components/schemas/SupportedSchemes' - type: 'null' type: object required: - file title: Body_parse_log_api_parse_log_post Body_parse_tag_api_parse_tag_post: properties: tag: type: string title: Tag value: type: string title: Value type: object required: - tag - value title: Body_parse_tag_api_parse_tag_post Body_parse_tlv_api_parse_tlv_post: properties: tlv: type: string title: Tlv type: object required: - tlv title: Body_parse_tlv_api_parse_tlv_post Body_refresh_token_auth_refresh_token_post: properties: refresh_token: type: string title: Refresh Token default: '' examples: - eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiZXhwIjowfQ.CzKsmenoSSYvhTq_SGoFvnTB-zO3hwjTu98Qo50kqQg type: object title: Body_refresh_token_auth_refresh_token_post Body_revoke_token_auth_revoke_token_post: properties: refresh_token: type: string title: Refresh Token default: '' examples: - eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiZXhwIjowfQ.CzKsmenoSSYvhTq_SGoFvnTB-zO3hwjTu98Qo50kqQg type: object title: Body_revoke_token_auth_revoke_token_post ByteBlock: properties: type: type: string const: byte title: Type value: type: string title: Value length: type: integer title: Length label: anyOf: - type: string - type: 'null' title: Label meaning: type: string title: Meaning number_format: anyOf: - type: string enum: - decimal - binary - type: 'null' title: Number Format coefficient: anyOf: - type: number - type: 'null' title: Coefficient unit: anyOf: - type: string - type: 'null' title: Unit combination: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Combination type: object required: - type - value - length - meaning title: ByteBlock CAPKAlgorithmType: type: string enum: - RSA title: CAPKAlgorithmType CAPKHashType: type: string enum: - UNDEFINED - SHA1 - SHA256 title: CAPKHashType CAPKListSchema: properties: name: type: string title: Name capks: items: type: string type: array title: Capks additionalProperties: false type: object required: - name - capks title: CAPKListSchema CAPKSchema: properties: name: anyOf: - type: string maxLength: 255 minLength: 1 examples: - CAPK name - type: 'null' title: Name rid: type: string maxLength: 10 minLength: 10 title: Rid examples: - A000000004 index: type: string maxLength: 2 minLength: 2 title: Index examples: - EF hash_type: $ref: '#/components/schemas/CAPKHashType' default: UNDEFINED algorithm_type: $ref: '#/components/schemas/CAPKAlgorithmType' default: RSA modulus: type: string maxLength: 1024 minLength: 1 title: Modulus examples: - A191CB87473F29349B5D60A88B3EAEE0973AA6F1A082F358D849FDDFF9C091F899EDA9792CAF09EF28F5D22404B88A2293EEBBC1949C43BEA4D60CFD879A1539544E09E0F09F60F065B2BF2A13ECC705F3D468B9D33AE77AD9D3F19CA40F23DCF5EB7C04DC8F69EBA565B1EBCB4686CD274785530FF6F6E9EE43AA43FDB02CE00DAEC15C7B8FD6A9B394BABA419D3F6DC85E16569BE8E76989688EFEA2DF22FF7D35C043338DEAA982A02B866DE5328519EBBCD6F03CDD686673847F84DB651AB86C28CF1462562C577B853564A290C8556D818531268D25CC98A4CC6A0BDFFFDA2DCCA3A94C998559E307FDDF915006D9A987B07DDAEB3B exponent: type: string maxLength: 6 minLength: 2 title: Exponent examples: - '03' hash: type: string minLength: 1 title: Hash expires_at: anyOf: - type: string format: date - type: 'null' title: Expires At additionalProperties: false type: object required: - rid - index - modulus - exponent - hash title: CAPKSchema CAPKScopeSchema: properties: capks: additionalProperties: $ref: '#/components/schemas/CAPKSchema' type: object title: Capks capk_list: $ref: '#/components/schemas/CAPKListSchema' additionalProperties: false type: object required: - capks - capk_list title: CAPKScopeSchema CRListSchema: properties: name: type: string title: Name crs: items: type: string type: array title: Crs additionalProperties: false type: object required: - name - crs title: CRListSchema CRSchema: properties: name: anyOf: - type: string maxLength: 255 minLength: 1 examples: - CR name - type: 'null' title: Name rid: type: string maxLength: 10 minLength: 10 title: Rid examples: - A000000004 index: type: string maxLength: 2 minLength: 2 title: Index examples: - '00' serial_number: type: string maxLength: 6 minLength: 6 title: Serial Number examples: - 3F70D8 additionalProperties: false type: object required: - rid - index - serial_number title: CRSchema CRScopeSchema: properties: crs: additionalProperties: $ref: '#/components/schemas/CRSchema' type: object title: Crs cr_list: $ref: '#/components/schemas/CRListSchema' additionalProperties: false type: object required: - crs - cr_list title: CRScopeSchema ConfigSchema: properties: bin_scope: anyOf: - $ref: '#/components/schemas/BINScopeSchema' - type: 'null' capk_scope: anyOf: - $ref: '#/components/schemas/CAPKScopeSchema' - type: 'null' cr_scope: anyOf: - $ref: '#/components/schemas/CRScopeSchema' - type: 'null' emv_scope: $ref: '#/components/schemas/EMVScopeSchema' poi_config: $ref: '#/components/schemas/POIConfigSchema' additionalProperties: false type: object required: - emv_scope - poi_config title: ConfigSchema CustomEnvironmentSchema: properties: tool: anyOf: - $ref: '#/components/schemas/ToolEnum' - type: 'null' type: anyOf: - $ref: '#/components/schemas/TypeEnum' - type: 'null' scheme: $ref: '#/components/schemas/SchemeEnum' test_suite_version: anyOf: - type: string - type: 'null' title: Test Suite Version additionalProperties: false type: object required: - scheme title: CustomEnvironmentSchema CustomTestSchema: properties: name: type: string title: Name description: anyOf: - type: string - type: 'null' title: Description version: type: string title: Version date: type: string format: date title: Date poi_config: $ref: '#/components/schemas/POIConfigSchema' payments: items: $ref: '#/components/schemas/PaymentSchema' type: array title: Payments vcard: anyOf: - items: type: string type: array - type: 'null' title: Vcard ics: anyOf: - items: type: string type: array - type: 'null' title: Ics ics_not: anyOf: - items: type: string type: array - type: 'null' title: Ics Not environment: anyOf: - $ref: '#/components/schemas/CustomEnvironmentSchema' - type: 'null' additionalProperties: false type: object required: - name - version - date - poi_config - payments title: CustomTestSchema EMVConfigSchema: properties: name: type: string title: Name emv_nominal_list: type: string title: Emv Nominal List emv_failsafe_list: anyOf: - type: string - type: 'null' title: Emv Failsafe List additionalProperties: false type: object required: - name - emv_nominal_list title: EMVConfigSchema EMVListSchema: properties: name: type: string title: Name emvs: items: type: string type: array title: Emvs additionalProperties: false type: object required: - name - emvs title: EMVListSchema EMVSchema: properties: name: anyOf: - type: string maxLength: 255 minLength: 1 examples: - EMV name - type: 'null' title: Name technology_type: $ref: '#/components/schemas/EMVTechnologyType' default: CONTACTLESS kernel: type: string maxLength: 2 minLength: 1 title: Kernel examples: - 0F aid: type: string maxLength: 32 minLength: 1 title: Aid examples: - A0000000041010 transaction_type: $ref: '#/components/schemas/EMVTransactionType' default: '00' asf: type: boolean title: Asf default: true tlv: type: string minLength: 1 title: Tlv examples: - 5F200F4D696B65204A6F686E20536D697468 additionalProperties: false type: object required: - kernel - aid - tlv title: EMVSchema EMVScopeSchema: properties: emvs: additionalProperties: $ref: '#/components/schemas/EMVSchema' type: object title: Emvs emv_lists: additionalProperties: $ref: '#/components/schemas/EMVListSchema' type: object title: Emv Lists emv_config: $ref: '#/components/schemas/EMVConfigSchema' additionalProperties: false type: object required: - emvs - emv_lists - emv_config title: EMVScopeSchema EMVTechnologyType: type: string enum: - CONTACT - CONTACTLESS title: EMVTechnologyType EMVTransactionType: type: string enum: - '00' - '01' - '02' - 09 - '17' - '20' - '21' - '93' title: EMVTransactionType EnvironmentSchema: properties: tool: $ref: '#/components/schemas/ToolEnum' type: $ref: '#/components/schemas/TypeEnum' scheme: $ref: '#/components/schemas/SchemeEnum' test_suite_version: type: string title: Test Suite Version additionalProperties: false type: object required: - tool - type - scheme - test_suite_version title: EnvironmentSchema ErrorIndicationSchema: properties: l1: anyOf: - type: string enum: - OK - TIME OUT ERROR - TRANSMISSION ERROR - PROTOCOL ERROR - type: 'null' title: L1 l2: anyOf: - items: type: string enum: - OK - CARD DATA MISSING - CAM FAILED - STATUS BYTES - PARSING ERROR - MAX LIMIT EXCEEDED - CARD DATA ERROR - MAGSTRIPE NOT SUPPORTED - NO PPSE - PPSE FAULT - EMPTY CANDIDATE LIST - IDS READ ERROR - IDS WRITE ERROR - IDS DATA ERROR - IDS NO MATCHING AC - TERMINAL DATA ERROR type: array - type: 'null' title: L2 l3: anyOf: - type: string enum: - OK - TIME OUT - STOP - AMOUNT NOT PRESENT - type: 'null' title: L3 status_word: anyOf: - type: string maxLength: 4 minLength: 4 pattern: ^([0-9a-fA-F]{2})+$ - type: 'null' title: Status Word message_on_error: anyOf: - type: string enum: - CARD READ OK - TRY AGAIN - APPROVED - APPROVED - SIGN - DECLINED - ERROR - OTHER CARD - INSERT CARD - SEE PHONE - AUTHORISING - PLEASE WAIT - CLEAR DISPLAY - N/A - PROCESSING ERROR - type: 'null' title: Message On Error additionalProperties: false type: object title: ErrorIndicationSchema ExpectationsDataSchema: properties: tags: title: Tags tags_present: anyOf: - items: type: string maxLength: 6 minLength: 2 pattern: ^([0-9a-fA-F]{2})+$ type: array - type: 'null' title: Tags Present tags_not_present: anyOf: - items: type: string maxLength: 6 minLength: 2 pattern: ^([0-9a-fA-F]{2})+$ type: array - type: 'null' title: Tags Not Present additionalProperties: false type: object title: ExpectationsDataSchema ExpectationsPartSchema: properties: intermediate_signals: anyOf: - items: $ref: '#/components/schemas/IntermediateSignalSchema' type: array - type: 'null' title: Intermediate Signals data_record: anyOf: - $ref: '#/components/schemas/ExpectationsDataSchema' - type: 'null' discretionary_data: anyOf: - $ref: '#/components/schemas/ExpectationsDataSchema' - type: 'null' user_interface_request_data: anyOf: - $ref: '#/components/schemas/UserInterfaceRequestDataSchema' - type: 'null' outcome_parameter_set: anyOf: - $ref: '#/components/schemas/OutcomeParameterSetSchema' - type: 'null' error_indication: anyOf: - $ref: '#/components/schemas/ErrorIndicationSchema' - type: 'null' transaction_data: anyOf: - $ref: '#/components/schemas/ExpectationsDataSchema' - type: 'null' additionalProperties: false type: object title: ExpectationsPartSchema ExpectationsSchema: properties: restart: anyOf: - $ref: '#/components/schemas/RestartSchema' - type: 'null' authorization: anyOf: - $ref: '#/components/schemas/ExpectationsPartSchema' - type: 'null' completion: anyOf: - $ref: '#/components/schemas/ExpectationsPartSchema' - type: 'null' additionalProperties: false type: object title: ExpectationsSchema HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError IntermediateSignalSchema: properties: user_interface_request_data: anyOf: - $ref: '#/components/schemas/UserInterfaceRequestDataSchema' - type: 'null' outcome_parameter_set: anyOf: - $ref: '#/components/schemas/OutcomeParameterSetSchema' - type: 'null' error_indication: anyOf: - $ref: '#/components/schemas/ErrorIndicationSchema' - type: 'null' transaction_data: anyOf: - $ref: '#/components/schemas/ExpectationsDataSchema' - type: 'null' additionalProperties: false type: object title: IntermediateSignalSchema ListDirectorySchema: properties: sub_directories: items: type: string type: array title: Sub Directories files: items: type: string type: array title: Files type: object required: - sub_directories - files title: ListDirectorySchema OAuth2Form: properties: grant_type: $ref: '#/components/schemas/Oauth2GrantType' username: anyOf: - type: string maxLength: 255 format: email examples: - email@example.io - type: 'null' title: Username password: anyOf: - type: string minLength: 1 examples: - gha3d%Loin6%6b$DPHH8 - type: 'null' title: Password client_id: anyOf: - type: string minLength: 1 examples: - client_id_OmwkXY21oxg_ZpHBKYdvm-22BCOR4GURohBxnbCSNSeypSa0Dozstr5uOyO67O79P8bSjwWpx5biSm_Aoqqaew - type: 'null' title: Client Id client_secret: anyOf: - type: string minLength: 1 examples: - client_secret_OcEl4AUv3abh-OuYalDQk0L1pAr0Dqvqb4FUs5d9HOw89bGPTZYVRGf-wOjjyHRoabx21tWcwlVjyWz8x90AtQ - type: 'null' title: Client Secret additionalProperties: false type: object required: - grant_type title: OAuth2Form Oauth2GrantType: type: string enum: - password - client_credentials title: Oauth2GrantType OutcomeParameterSetSchema: properties: status: anyOf: - items: type: string enum: - APPROVED - DECLINED - ONLINE REQUEST - END APPLICATION - SELECT NEXT - TRY ANOTHER INTERFACE - TRY AGAIN - N/A type: array - type: 'null' title: Status start: anyOf: - type: string enum: - A - B - C - D - N/A - type: 'null' title: Start online_response_data: anyOf: - type: string const: N/A - type: 'null' title: Online Response Data cvm: anyOf: - type: string enum: - NO CVM - OBTAIN SIGNATURE - ONLINE PIN - CONFIRMATION CODE VERIFIED - N/A - type: 'null' title: Cvm ui_request_on_outcome_present: anyOf: - type: boolean - type: 'null' title: Ui Request On Outcome Present ui_request_on_restart_present: anyOf: - type: boolean - type: 'null' title: Ui Request On Restart Present data_record_present: anyOf: - type: boolean - type: 'null' title: Data Record Present discretionary_data_present: anyOf: - type: boolean - type: 'null' title: Discretionary Data Present receipt: anyOf: - type: string enum: - N/A - 'YES' - type: 'null' title: Receipt alternate_interface_preference: anyOf: - type: string const: N/A - type: 'null' title: Alternate Interface Preference field_off_request: anyOf: - type: string pattern: ^([0-9a-fA-F]{2}|N/A)$ - type: 'null' title: Field Off Request removal_timeout: anyOf: - type: string pattern: ^[0-9a-fA-F]{2}$ - type: 'null' title: Removal Timeout additionalProperties: false type: object title: OutcomeParameterSetSchema POIConfigSchema: properties: name: type: string title: Name bin_config: anyOf: - type: string - type: 'null' title: Bin Config capk_list: anyOf: - type: string - type: 'null' title: Capk List cr_list: anyOf: - type: string - type: 'null' title: Cr List emv_config: type: string title: Emv Config additionalProperties: false type: object required: - name - emv_config title: POIConfigSchema ParsedTag: properties: name: type: string title: Name description: type: string title: Description tag: type: string title: Tag blocks: items: anyOf: - $ref: '#/components/schemas/BitBlock' - $ref: '#/components/schemas/ByteBlock' type: array title: Blocks type: object required: - name - description - tag - blocks title: ParsedTag PaymentSchema: properties: randoms: anyOf: - items: type: string pattern: ^([0-9a-fA-F]{2})+$ type: array - type: 'null' title: Randoms trd: anyOf: - patternProperties: ^([0-9a-fA-F]{2})+$: anyOf: - type: string pattern: ^([0-9a-fA-F]{2})+$ - type: string pattern: ^[0-9YMD]{6}$ - type: string pattern: ^[0-9HMS]{6}$ - type: string maxLength: 0 minLength: 0 propertyNames: maxLength: 6 minLength: 2 type: object - type: 'null' title: Trd authorization_response: anyOf: - type: string pattern: ^([0-9a-fA-F]{2})+$ - type: 'null' title: Authorization Response expectations: anyOf: - $ref: '#/components/schemas/ExpectationsSchema' - type: 'null' additionalProperties: false type: object title: PaymentSchema RestartSchema: properties: outcome_parameter_set: anyOf: - $ref: '#/components/schemas/OutcomeParameterSetSchema' - type: 'null' error_indication: anyOf: - $ref: '#/components/schemas/ErrorIndicationSchema' - type: 'null' additionalProperties: false type: object title: RestartSchema RunCustomTestSchema: properties: settings: $ref: '#/components/schemas/SettingsSchema' probe: type: boolean title: Probe default: false check_expectations: type: boolean title: Check Expectations default: true verbose: type: integer title: Verbose default: 0 test: $ref: '#/components/schemas/CustomTestSchema' config: $ref: '#/components/schemas/ConfigSchema' additionalProperties: false type: object required: - settings - test - config title: RunCustomTestSchema RunTestSchema: properties: settings: $ref: '#/components/schemas/SettingsSchema' probe: type: boolean title: Probe default: false check_expectations: type: boolean title: Check Expectations default: true verbose: type: integer title: Verbose default: 0 sync_run: type: boolean title: Sync Run default: false additionalProperties: false type: object required: - settings title: RunTestSchema SchemeEnum: type: string enum: - mastercard - amex - discover - jcb - cup - rupay - eftpos - cpace title: SchemeEnum SettingsSchema: properties: poi_id: type: string format: uuid title: Poi Id org_admin_email: type: string format: email title: Org Admin Email org_admin_password: type: string title: Org Admin Password user_machine_client_id: type: string title: User Machine Client Id user_machine_client_secret: type: string title: User Machine Client Secret additionalProperties: false type: object required: - poi_id - org_admin_email - org_admin_password - user_machine_client_id - user_machine_client_secret title: SettingsSchema SupportedSchemes: type: string enum: - mastercard title: SupportedSchemes SupportedTypes: type: string enum: - l2 - l3 title: SupportedTypes TagDescription: properties: name: type: string title: Name description: type: string title: Description tag: type: string title: Tag length: type: integer title: Length max_length: anyOf: - type: integer - type: 'null' title: Max Length type: object required: - name - description - tag - length title: TagDescription TestListSchema: properties: name: type: string title: Name poi_config: $ref: '#/components/schemas/POIConfigSchema' additionalProperties: false type: object required: - name - poi_config title: TestListSchema TestResultSchema: properties: status: $ref: '#/components/schemas/TestStatusEnum' results: additionalProperties: true type: object title: Results default: {} type: object required: - status title: TestResultSchema TestSchema: properties: name: type: string title: Name description: anyOf: - type: string - type: 'null' title: Description version: type: string title: Version date: type: string format: date title: Date poi_config: $ref: '#/components/schemas/POIConfigSchema' payments: items: $ref: '#/components/schemas/PaymentSchema' type: array title: Payments vcard: anyOf: - items: type: string type: array - type: 'null' title: Vcard ics: anyOf: - items: type: string type: array - type: 'null' title: Ics ics_not: anyOf: - items: type: string type: array - type: 'null' title: Ics Not environment: $ref: '#/components/schemas/EnvironmentSchema' additionalProperties: false type: object required: - name - version - date - poi_config - payments - environment title: TestSchema TestStatusEnum: type: string enum: - NOT RUN - PASS - NON CONCLUSIVE - FAIL title: TestStatusEnum TestSuiteSchema: properties: name: type: string title: Name version: type: string title: Version date: type: string format: date title: Date environment: $ref: '#/components/schemas/EnvironmentSchema' tests: items: $ref: '#/components/schemas/TestListSchema' type: array title: Tests additionalProperties: false type: object required: - name - version - date - environment - tests title: TestSuiteSchema TokenSchema: properties: token_type: type: string const: Bearer title: Token Type access_token: type: string minLength: 1 title: Access Token expires_in: type: integer title: Expires In default: 300 refresh_token: anyOf: - type: string minLength: 1 - type: 'null' title: Refresh Token refresh_expires_in: type: integer title: Refresh Expires In default: 1800 type: object required: - token_type - access_token title: TokenSchema ToolEnum: type: string enum: - swittest - fime - gallit title: ToolEnum TypeEnum: type: string enum: - l2 - l3 title: TypeEnum UserInterfaceRequestDataSchema: properties: message_identifier: anyOf: - items: type: string enum: - CARD READ OK - TRY AGAIN - APPROVED - APPROVED - SIGN - DECLINED - ERROR - OTHER CARD - INSERT CARD - SEE PHONE - AUTHORISING - PLEASE WAIT - CLEAR DISPLAY - N/A - PROCESSING ERROR - PRESENT CARD type: array - type: 'null' title: Message Identifier status: anyOf: - type: string enum: - NOT READY - IDLE - READY TO READ - PROCESSING - CARD READ SUCCESSFULLY - PROCESSING ERROR - N/A - type: 'null' title: Status hold_time: anyOf: - type: string maxLength: 6 minLength: 6 pattern: ^([0-9]{2})+$ - type: 'null' title: Hold Time language_preference: anyOf: - type: string maxLength: 16 minLength: 16 pattern: ^([0-9a-fA-F]{2})+$ - type: 'null' title: Language Preference additionalProperties: false type: object title: UserInterfaceRequestDataSchema ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError securitySchemes: OAuth2PasswordBearer: type: oauth2 flows: password: scopes: {} tokenUrl: auth/token