openapi: 3.2.0 info: title: Token Info API version: 1.0.0 description: Token REST API. servers: - url: https://api.token.io/v1 tags: - name: Info paths: /bank/countries: get: operationId: GatewayService.GetBanksCountries responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/io.token.proto.gateway.GetBanksCountriesResponse' parameters: - name: ids in: query required: false style: form explode: true schema: type: array items: type: string - name: search in: query required: false schema: type: string - name: tppId in: query required: false schema: type: string - name: bankCode in: query required: false schema: type: string - name: countries in: query required: false style: form explode: true schema: type: array items: type: string - name: providers in: query required: false style: form explode: true schema: type: array items: type: string - name: bank_features.supportsAppless in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsGuestCheckout in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsInformation in: query required: false schema: type: boolean format: boolean - name: bank_features.requiresExternalAuth in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsSendPayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsReceivePayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsBalance in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsScheduledPayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsStandingOrder in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsBulkTransfer in: query required: false schema: type: boolean format: boolean - name: bank_features.requiresOneStepPayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsLinkingUri in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsAisGuestCheckout in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsFundsConfirmation in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsCheckoutFlowV2 in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsGetConsent in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsReturnRefundAccount in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsTransactionsDateFilter in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsAccountInformation in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsSinglePayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsVariableRecurringPayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsAccountList in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsAccountDetails in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsAccountBalance in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsTransactionList in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsTransactionDetails in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsStandingOrderList in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsDeleteAisConsent in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsUnattendedCallsLimit in: query required: false schema: type: boolean format: boolean - name: memberId in: query required: false schema: type: string - name: supportedPaymentNetworks in: query required: false style: form explode: true schema: type: array items: type: string tags: - Info summary: Get list of bank countries description: Retrieve the list of countries with Token-integrated banks deprecated: false /banks: get: operationId: GatewayService.GetBanks responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/io.token.proto.gateway.GetBanksResponse' parameters: - name: page in: query required: false schema: type: integer format: int32 - name: perPage in: query required: false schema: type: integer format: int32 - name: sort in: query required: false schema: type: string - name: memberId in: query required: false schema: type: string - name: ids in: query required: false style: form explode: true schema: type: array items: type: string - name: search in: query required: false schema: type: string - name: tppId in: query required: false schema: type: string - name: providers in: query required: false style: form explode: true schema: type: array items: type: string - name: bankCode in: query required: false schema: type: string - name: countries in: query required: false style: form explode: true schema: type: array items: type: string - name: bank_features.supportsAppless in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsGuestCheckout in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsInformation in: query required: false schema: type: boolean format: boolean - name: bank_features.requiresExternalAuth in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsSendPayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsReceivePayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsBalance in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsScheduledPayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsStandingOrder in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsBulkTransfer in: query required: false schema: type: boolean format: boolean - name: bank_features.requiresOneStepPayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsLinkingUri in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsAisGuestCheckout in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsFundsConfirmation in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsCheckoutFlowV2 in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsGetConsent in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsReturnRefundAccount in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsTransactionsDateFilter in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsAccountInformation in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsSinglePayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsVariableRecurringPayment in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsAccountList in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsAccountDetails in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsAccountBalance in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsTransactionList in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsTransactionDetails in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsStandingOrderList in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsDeleteAisConsent in: query required: false schema: type: boolean format: boolean - name: bank_features.supportsUnattendedCallsLimit in: query required: false schema: type: boolean format: boolean - name: bics in: query required: false style: form explode: true schema: type: array items: type: string - name: supportedPaymentNetworks in: query required: false style: form explode: true schema: type: array items: type: string - name: bankGroup in: query required: false schema: type: string - name: bankSubGroup in: query required: false schema: type: string - name: scaMethods in: query required: false style: form explode: true schema: type: array items: type: string tags: - Info summary: Get list of banks matching criteria description: Retrieve the list of Token-integrated banks matching feature criteria for the selected country deprecated: false /banks/{bankId}/info: get: operationId: GatewayService.GetBankInfo responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/io.token.proto.gateway.GetBankInfoResponse' parameters: - name: bankId in: path required: true schema: type: string tags: - Info summary: Get bank information description: Retrieve information about the Token-supported bank identified deprecated: false /banks/{bankId}/token-requests/{tokenRequestId}/urls: post: operationId: GatewayService.GetBankAuthUrl responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/io.token.proto.gateway.GetBankAuthUrlResponse' parameters: - name: bankId in: path required: true schema: type: string - name: tokenRequestId in: path required: true schema: type: string tags: - Info summary: Produce bank authorization url description: Generates a bank authorization url for the given token request id deprecated: false requestBody: content: application/json: schema: $ref: '#/components/schemas/io.token.proto.gateway.GetBankAuthUrlRequest' required: true /token-requests/{tokenRequestId}/authorization: post: operationId: GatewayService.InitiateBankAuthorization responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/io.token.proto.gateway.InitiateBankAuthorizationResponse' parameters: - name: tokenRequestId in: path required: true schema: type: string tags: - Info summary: Initiate authorization with the bank description: Given a bank ID and token request ID, initiate bank authorization process deprecated: false requestBody: content: application/json: schema: $ref: '#/components/schemas/io.token.proto.gateway.InitiateBankAuthorizationRequest' required: true components: schemas: io.token.proto.common.bank.MandatoryFields.Transfer: type: object properties: domestic: $ref: '#/components/schemas/io.token.proto.common.bank.MandatoryFields.Fields' international: $ref: '#/components/schemas/io.token.proto.common.bank.MandatoryFields.Fields' io.token.proto.common.bank.BankInfo: type: object properties: aliasTypes: items: $ref: '#/components/schemas/io.token.proto.common.alias.Alias.Type' type: array bankLinkingUri: type: string customAliasLabel: type: string linkingUri: type: string realm: items: type: string type: array redirectUriRegex: type: string io.token.proto.gateway.CredentialFields: type: object properties: fields: items: $ref: '#/components/schemas/io.token.proto.common.providerspecific.CredentialField' type: array io.token.proto.common.bank.FieldFormatInformation: type: object properties: constraint: type: string name: type: string path: type: string v2Name: type: string v2Path: type: string io.token.proto.common.bank.MandatoryFields.Fields: type: object properties: beneficiaryAddress: format: boolean type: boolean beneficiaryName: format: boolean type: boolean debtorAccount: format: boolean type: boolean debtorName: format: boolean type: boolean fields: items: type: string type: array polishApi: $ref: '#/components/schemas/io.token.proto.common.bank.MandatoryFields.Fields.PolishApi' polishapiFields: items: type: string type: array stet: $ref: '#/components/schemas/io.token.proto.common.bank.MandatoryFields.Fields.Stet' stetFields: items: type: string type: array io.token.proto.common.bank.AuthMetadataField: type: object properties: description: type: string name: type: string io.token.proto.gateway.GetBankAuthUrlRequest: type: object properties: consentAccepted: format: boolean type: boolean io.token.proto.common.providerspecific.CredentialField: type: object properties: description: type: string displayName: type: string flickerCode: type: string id: type: string image: type: string options: items: type: string type: array password: format: boolean type: boolean type: $ref: '#/components/schemas/io.token.proto.common.providerspecific.CredentialField.Type' io.token.proto.gateway.InitiateBankAuthorizationRequest: type: object properties: consentAccepted: format: boolean type: boolean credentials: $ref: '#/components/schemas/io.token.proto.gateway.InitiateBankAuthorizationRequest.CredentialsEntry' useCredentialFlow: format: boolean type: boolean useWebappCredentialsFlow: format: boolean type: boolean io.token.proto.common.providerspecific.ScaStatus: enum: - INVALID - AUTHENTICATED - AUTHENTICATION_FAILED - DECLINED_BY_PSU default: INVALID type: string io.token.proto.common.bank.OpenBankingStandard: enum: - Invalid_Standard - UK_Open_Banking_Standard - Starling_Bank_API - PolishAPI - STET_PSD2_API - Citi_Handlowy_PSD2_API - NextGenPSD2 - Slovak_Banking_API_Standard - Czech_Open_Banking_Standard - Budapest_Bank_API - Token default: Invalid_Standard type: string io.token.proto.common.providerspecific.CredentialField.Type: enum: - INVALID - FIELD - PASSWORD - PSU_MESSAGE - IMAGE - FLICKER - DECOUPLED - CONFIRMATION default: INVALID type: string io.token.proto.common.bank.MandatoryFields.Fields.PolishApi: type: object properties: deliveryMode: format: boolean type: boolean io.token.proto.common.bank.MaintenanceWindow: type: object properties: endTime: type: string productType: $ref: '#/components/schemas/io.token.proto.common.bank.ProductType' startTime: type: string type: $ref: '#/components/schemas/io.token.proto.common.bank.MaintenanceWindow.Type' io.token.proto.common.alias.Alias.Type: enum: - INVALID - UNKNOWN - EMAIL - PHONE - DOMAIN - USERNAME - BANK - CUSTOM - EIDAS default: INVALID type: string io.token.proto.common.bank.MandatoryFields.StandingOrder: type: object properties: domestic: $ref: '#/components/schemas/io.token.proto.common.bank.MandatoryFields.Fields' international: $ref: '#/components/schemas/io.token.proto.common.bank.MandatoryFields.Fields' io.token.proto.common.bank.Bank: type: object properties: authorizationMetadata: items: $ref: '#/components/schemas/io.token.proto.common.bank.AuthMetadataField' type: array bankGroup: type: string bankSubGroup: type: string bic: type: string countries: items: type: string type: array country: type: string credentialFields: items: $ref: '#/components/schemas/io.token.proto.common.providerspecific.CredentialField' type: array fieldsFormatInformation: items: $ref: '#/components/schemas/io.token.proto.common.bank.FieldFormatInformation' type: array fullLogoUri: type: string id: type: string identifier: type: string logoUri: type: string maintenanceWindow: items: $ref: '#/components/schemas/io.token.proto.common.bank.MaintenanceWindow' type: array mandatoryFields: $ref: '#/components/schemas/io.token.proto.common.bank.MandatoryFields' name: type: string openBankingStandard: $ref: '#/components/schemas/io.token.proto.common.bank.OpenBankingStandard' operationalTime: type: string provider: type: string rank: format: int32 type: integer requiresExternalAuth: format: boolean type: boolean requiresLegacyTransfer: format: boolean type: boolean requiresOneStepPayment: format: boolean type: boolean scaMethods: items: $ref: '#/components/schemas/io.token.proto.common.bank.ScaMethod' type: array supportedTransferDestinationTypes: items: type: string type: array supportsAccountBalance: format: boolean type: boolean supportsAccountDetails: format: boolean type: boolean supportsAccountList: format: boolean type: boolean supportsAisGuestCheckout: format: boolean type: boolean supportsAppToAppOnAndroid: format: boolean type: boolean supportsAppToAppOnIos: format: boolean type: boolean supportsAppless: format: boolean type: boolean supportsBalance: format: boolean type: boolean supportsBulkTransfer: format: boolean type: boolean supportsCheckoutFlowV2: format: boolean type: boolean supportsDeleteAisConsent: format: boolean type: boolean supportsFundsConfirmation: format: boolean type: boolean supportsGetConsent: format: boolean type: boolean supportsGuestCheckout: format: boolean type: boolean supportsInformation: format: boolean type: boolean supportsLinkingUri: format: boolean type: boolean supportsReceivePayment: format: boolean type: boolean supportsReturnRefundAccount: format: boolean type: boolean supportsScheduledPayment: format: boolean type: boolean supportsSendPayment: format: boolean type: boolean supportsStandingOrder: format: boolean type: boolean supportsStandingOrderList: format: boolean type: boolean supportsTransactionDetails: format: boolean type: boolean supportsTransactionList: format: boolean type: boolean supportsTransactionsDateFilter: format: boolean type: boolean supportsUnattendedCallsLimit: format: boolean type: boolean supportsVariableRecurringPayment: format: boolean type: boolean transactionHistoryLimit: format: int32 type: integer io.token.proto.common.bank.MaintenanceWindow.Type: enum: - INVALID - NO_DOWNTIME_EXPECTED - DOWNTIME_EXPECTED - OUTAGE default: INVALID type: string io.token.proto.common.bank.MandatoryFields.Access: type: object properties: fields: items: type: string type: array io.token.proto.common.bank.ProductType: enum: - INVALID - AIS - SIP default: INVALID type: string io.token.proto.gateway.GetBankInfoResponse: type: object properties: info: $ref: '#/components/schemas/io.token.proto.common.bank.BankInfo' io.token.proto.common.bank.MandatoryFields.Fields.Stet: type: object properties: creditorAgent: format: boolean type: boolean io.token.proto.gateway.InitiateBankAuthorizationResponse: type: object properties: fields: $ref: '#/components/schemas/io.token.proto.gateway.CredentialFields' oauthState: type: string redirectUrl: type: string status: $ref: '#/components/schemas/io.token.proto.common.providerspecific.ScaStatus' io.token.proto.common.bank.Paging: type: object properties: page: format: int32 type: integer pageCount: format: int32 type: integer perPage: format: int32 type: integer totalCount: format: int32 type: integer io.token.proto.gateway.GetBanksResponse: type: object properties: banks: items: $ref: '#/components/schemas/io.token.proto.common.bank.Bank' type: array paging: $ref: '#/components/schemas/io.token.proto.common.bank.Paging' io.token.proto.gateway.GetBanksCountriesResponse: type: object properties: countries: items: type: string type: array io.token.proto.common.bank.MandatoryFields: type: object properties: access: $ref: '#/components/schemas/io.token.proto.common.bank.MandatoryFields.Access' standingOrder: $ref: '#/components/schemas/io.token.proto.common.bank.MandatoryFields.StandingOrder' transfer: $ref: '#/components/schemas/io.token.proto.common.bank.MandatoryFields.Transfer' io.token.proto.gateway.InitiateBankAuthorizationRequest.CredentialsEntry: type: object properties: {} additionalProperties: type: string io.token.proto.common.bank.ScaMethod: enum: - INVALID_SCA_METHOD - REDIRECT - DECOUPLED - CONFIRMATION_PAGE - MULTI_REDIRECT - EMBEDDED_SINGLE_STEP - EMBEDDED_MULTI_STEP default: INVALID_SCA_METHOD type: string io.token.proto.gateway.GetBankAuthUrlResponse: type: object properties: url: type: string