openapi: 3.0.1
info:
  title: Cards tokenization
  version: '1.0'
servers:
  - url: https://api.solaris-sandbox.de
    description: Sandbox
  - url: https://api.solarisbank.de
    description: Production
paths:
  /v1/cards/{card_id}/sca_push_provision/apple_encrypted:
    post:
      tags:
        - Push provisioning
      summary: Fetch wallet payload for Apple Pay in-app provisioning
      description: >-
        Returns a wallet payload for adding the customer's card to their Apple
        Pay wallet via request to the Apple Pay API.  <br>**Note:** This
        endpoint will trigger the **change request** process. The customer will
        receive a 2FA challenge to confirm the request.
      operationId: appleSCAPushProvisionUsingPOST
      parameters:
        - name: card_id
          in: path
          description: card_id
          required: true
          style: simple
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayloadApiRequest'
      responses:
        '200':
          description: >-
            The request was accepted, and now the customer must confirm the
            change request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushProvisionChangeRequestResponse'
        '201':
          description: >-
            The change request was successfully confirmed, and the card can now
            be added to the customer's Apple Pay wallet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EncryptionResponse'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          description: Invalid or missing auth token.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The card could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_vts_apple_pay_pp#sca_push_provision_apple
  /v1/cards/{card_id}/tokens/apple/verify:
    post:
      tags:
        - Push provisioning
      summary: Fetch activation payload for Apple Pay in-app verification
      description: >-
        Call this endpoint to initiate an in-app verification for activating a
        token on Apple Pay.<br> **Note:** This endpoint follows the **Method A:
        Cryptographic OTP** process according to the Apple Pay developer
        documentation.  It will also trigger the change request process. The
        customer will receive a 2FA challenge to confirm the request.<br> The
        successfully completed Change Request will return an `activation_data`
        payload in the API response. You must then submit this payload in a
        separate request to the Apple Wallet. Please check the Apple Pay
        developer documentation for more details.
      parameters:
        - name: card_id
          in: path
          description: ID of the card for which to fetch the activation payload.
          required: true
          style: simple
          schema:
            type: string
      responses:
        '200':
          description: Redirect to Change Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushProvisionChangeRequestResponse'
        '201':
          description: Successful result of the operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InAppVerificationResponse'
        '401':
          description: Invalid or missing auth token.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The card could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_cards_service_public_card#in_app_verification
  /v1/cards/{card_id}/sca_push_provision/google:
    post:
      tags:
        - Push provisioning
      summary: Fetch wallet payload for Google Pay in-app provisioning
      description: >-
        Returns a wallet payload for adding the customer's card to their Google
        Pay wallet via request to the Google Pay API.   <br>**Note:** This
        endpoint will trigger the **change request** process. The customer will
        receive a 2FA challenge to confirm the request.
      operationId: googleSCAPushProvisionUsingPOST
      parameters:
        - name: card_id
          in: path
          description: card_id
          required: true
          style: simple
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PushProvisionGoogleRequest'
      responses:
        '200':
          description: >-
            The request was accepted, and now the customer must confirm the
            change request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushProvisionChangeRequestResponse'
        '201':
          description: >-
            The change request was successfully confirmed, and the card has been
            added to the customer's Google Pay wallet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleEncryptionResponse'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          description: Invalid or missing auth token.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The card could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_cards_service_public_card#sca_push_provision_google
  /v1/cards/{card_id}/sca_push_provision/samsung:
    post:
      tags:
        - Push provisioning
      summary: Fetch wallet payload for Samsung Pay in-app provisioning
      description: >-
        Returns a wallet payload for adding the customer's card to their Samsung
        Pay wallet via request to the Samsung Pay API.    <br>**Note:** This
        endpoint will trigger the **change request** process. The customer will
        receive a 2FA challenge to confirm the request.
      operationId: samsungSCAPushProvisionUsingPOST
      parameters:
        - name: card_id
          in: path
          description: card_id
          required: true
          style: simple
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PushProvisionSamsungRequest'
      responses:
        '200':
          description: >-
            The request was accepted, and now the customer must confirm the
            change request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushProvisionChangeRequestResponse'
        '201':
          description: >-
            The change request was successfully confirmed, and the card has been
            added to the customer's Samsung Pay wallet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleEncryptionResponse'
        '202':
          description: >-
            The request was accepted, and now the customer must confirm the
            change request.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PushProvisionChangeRequestResponse'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          description: Invalid or missing auth token.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The card could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_cards_service_public_card#sca_push_provision_samsung
  /v1/cards/{card_id}/push_provision/apple_encrypted:
    post:
      tags:
        - Push provisioning
      summary: (Deprecated) Add a card to an Apple Pay wallet
      deprecated: true
      description: >-
        This endpoint is deprecated; please use `POST
        /v1/cards/{card_id}/sca_push_provision/apple_encrypted` instead.
      operationId: appleUsingPOST
      parameters:
        - name: card_id
          in: path
          description: card_id
          required: true
          style: simple
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayloadApiRequest'
      responses:
        '201':
          description: Successful result of the operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EncryptionResponse'
        '401':
          description: Invalid or missing auth token.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The card could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_vts_apple_pay_pp#encrypted
  /v1/cards/{card_id}/push_provision/google:
    post:
      tags:
        - Push provisioning
      summary: (Deprecated) Add a card to a Google Pay wallet
      deprecated: true
      description: >-
        This endpoint is deprecated; please use `POST
        /v1/cards/{card_id}/sca_push_provision/google` instead.
      operationId: googleUsingPOST
      parameters:
        - name: card_id
          in: path
          description: card_id
          required: true
          style: simple
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PushProvisionGoogleRequest'
      responses:
        '201':
          description: Successful result of the operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleEncryptionResponse'
        '401':
          description: Invalid or missing auth token.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The card could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_cards_service_public_card#push_provision_google
  /v1/cards/{card_id}/visa_tokens:
    get:
      tags:
        - Card token servicing
      summary: Retrieve a card's assigned tokens
      description: >-
        Returns an array of all Visa tokens assigned to the card specified in
        the request URL.
      parameters:
        - name: card_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the card to which the token is assigned.
        - name: filter[visa_token_number]
          in: query
          required: false
          schema:
            type: string
            description: Filters by visa_token_number
        - name: page[number]
          in: query
          required: false
          schema:
            type: integer
            description: Page number
        - name: page[size]
          in: query
          required: false
          schema:
            type: integer
            description: Page size
      responses:
        '200':
          description: Successful result of the operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Solaris_Decorators_Token_Details'
                example:
                  - token_reference_id: DNITHE382228352676336613
                    visa_token_number: '4111112380202020'
                    pan_reference: V-3010101010363935797827
                    wallet_type: APPLE
                    status: ACTIVE
                    device_id: dfg5748s-b26b-2020-9ee0-94f0001189830
                    pan_source: MOBILE_BANKING_APP
                    created_at: '2022-09-19T01:31:26.695Z'
                  - token_reference_id: DNITHE382201010676336612
                    visa_token_number: '4636632389470002'
                    pan_reference: V-3019278256560935797827
                    wallet_type: GOOGLE
                    status: INACTIVE
                    device_id: d3768ef3-b166-2299-9ee0-994949184830
                    pan_source: MOBILE_BANKING_APP
                    created_at: '2022-09-19T07:31:26.695Z'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404-2'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_cards_service_visa_token_references#index
  /v1/cards/{card_id}/visa_tokens/{token_reference_id}:
    get:
      tags:
        - Card token servicing
      summary: Retrieve the details of a Visa token
      description: >-
        Returns the details of a card's token. You must add the token's
        associated card ID and the token's reference ID in the request URL.
      parameters:
        - name: card_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the card to which the token is assigned.
        - name: token_reference_id
          in: path
          required: true
          schema:
            type: string
            description: The unique reference ID of the token to be retrieved.
      responses:
        '200':
          description: Successful result of the operation
          content:
            application/json:
              schema:
                example:
                  token_reference_id: DNITHE382228352676355555
                  visa_token_number: '4636632380632323'
                  pan_reference: V-004448252363935719191
                  wallet_type: APPLE
                  status: ACTIVE
                  device_id: d3768ef3-b26b-0000-9ee0-94f527184830
                  pan_source: MOBILE_BANKING_APP
                  created_at: '2022-09-19T01:31:26.695Z'
                items:
                  $ref: '#/components/schemas/Solaris_Decorators_Token_Details'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404-2'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_cards_service_visa_token_references#show
  /v1/tokenization_risk_controls/partner_tokenization_configurations:
    post:
      tags:
        - Testing allowlists
      summary: Create a card allowlist
      description: >-
        Creates an allowlist of cards for production testing on Apple or Google
        Pay before market launch with the payment service. You can include up to
        100 cards in a single list using this endpoint.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWhiteListingRulesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseDto'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400-2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403-2'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404-3'
      security:
        - oauth2:
            - >-
              solaris_global_card_token_risk_controls_service#update_white_list_rules
    get:
      tags:
        - Testing allowlists
      summary: Retrieve a card allowlist
      description: >-
        Returns an allowlist of cards created for production testing on Apple or
        Google Pay.
      parameters:
        - name: token_requestor
          in: query
          description: The token requester.
          required: true
          style: form
          schema:
            type: string
            enum:
              - APPLE
              - GOOGLE
              - SAMSUNG
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PartnerTokenizationConfigsResponse'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400-2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403-2'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404-3'
      security:
        - oauth2:
            - >-
              solaris_global_card_token_risk_controls_service#show_white_list_rules
  /v1/tokenization_risk_controls/partner_tokenization_configurations/{token_risk_control_id}:
    delete:
      tags:
        - Testing allowlists
      summary: Delete a card allowlist
      description: Deletes an allowlist of cards production testing on Apple or Google Pay.
      parameters:
        - $ref: '#/components/parameters/TokenRiskControlId'
      responses:
        '204':
          description: Successful deletion
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400-2'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404-3'
        default:
          description: Unexpected error
      security:
        - oauth2:
            - >-
              solaris_global_card_token_risk_controls_service#delete_white_list_rule
components:
  schemas:
    PayloadApiRequest:
      title: PayloadApiRequest
      type: object
      properties:
        certificates:
          type: array
          description: >-
            An array of leaf and sub-CA certificates provided by Apple. Each
            object contains a DER-encoded X.509 certificate, starting with the
            leaf and followed by the sub-CA. You must encode this value in
            Base64 format before providing it to the API.
          items:
            type: string
        nonce:
          type: string
          description: >-
            A single-use nonce provided by Apple. You must hex-encode this value
            before providing it to the API.
        nonce_signature:
          type: string
          description: >-
            Nonce signature provided by Apple. You must hex-encode this value
            before providing it to the API.
      example:
        certificates:
          - >-
            MIID/DCCA6OgAwIBAgIIRBkEefDVkQ0wCgYIKoZIzj0EAwIwgYAxNDAyBgNVBAMMK0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENBIC0gRzIxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0yMDA2MDgxNzE3NDJaFw0yMjA3MDgxNzE3NDJaMGwxNTAzBgNVBAMMLGVjYy1jcnlwdG8tc2VydmljZXMtZW5jaXBoZXJtZW50X1VDNi1TQU5EQk9YMREwDwYDVQQLDAhBcHBsZVBheTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATGiJjmEMmvOZBGj+tdj2ED7xnc9y1C0vNVaqZva7lvKkbgrfcWdo0/NdIJZ5wDcZ0eBtPuRJ+q/eSP9FLXQ19wo4ICGDCCAhQwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSEtoTMOoZichZZlOgao71I3zrfCzBHBggrBgEFBQcBAQQ7MDkwNwYIKwYBBQUHMAGGK2h0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDMtYXBwbGV3d2RyY2EyMDUwggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxld3dkcmNhMi5jcmwwHQYDVR0OBBYEFMNruSHk5gH1LauD+wBI/9sgl/VpMA4GA1UdDwEB/wQEAwIDKDASBgkqhkiG92NkBicBAf8EAgUAMAoGCCqGSM49BAMCA0cAMEQCID06q9UcsbqNKkjFq6mZ640b2sGalDxBBT0zd2QwymTvAiAgFoMAozhg3MFjkV4d0LSPvH8QldM+2cdemVT74+1+wA==
          - >-
            MIIC9zCCAnygAwIBAgIIb+/Y9emjp+4wCgYIKoZIzj0EAwIwZzEbMBkGA1UEAwwSQXBwbGUgUm9vdCBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMTQwNTA2MjM0MzI0WhcNMjkwNTA2MjM0MzI0WjCBgDE0MDIGA1UEAwwrQXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ0EgLSBHMjEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3fC3BkvP3XMEE8RDiQOTgPte9nStQmFSWAImUxnIYyIHCVJhysTZV+9tJmiLdJGMxPmAaCj8CWjwENrp0C7JGqOB9zCB9DBGBggrBgEFBQcBAQQ6MDgwNgYIKwYBBQUHMAGGKmh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDQtYXBwbGVyb290Y2FnMzAdBgNVHQ4EFgQUhLaEzDqGYnIWWZToGqO9SN863wswDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS7sN6hWDOImqSKmd6+veuv2sskqzA3BgNVHR8EMDAuMCygKqAohiZodHRwOi8vY3JsLmFwcGxlLmNvbS9hcHBsZXJvb3RjYWczLmNybDAOBgNVHQ8BAf8EBAMCAQYwEAYKKoZIhvdjZAYCDwQCBQAwCgYIKoZIzj0EAwIDaQAwZgIxANmxxzHGI/ZPTdDZR8V9GGkRh3En02it4Jtlmr5s3z9GppAJvm6hOyywUYlBPIfSvwIxAPxkUolLPF2/axzCiZgvcq61m6oaCyNUd1ToFUOixRLal1BzfF7QbrJcYlDXUfE6Wg==
        nonce: c5846fb5
        nonce_signature: >-
          4061d9d63ed34825f285d953274a6c5e06ebe011bf91d79660e1f7c6f6d21427abb3a62e6352e430abff987f6ec37e5dff9f3dbe40275156d03eeb594ab191d2792f37ef13ac528a65f56165c1d753463f
    PushProvisionChangeRequestResponse:
      title: PushProvisionChangeRequestResponse
      type: object
      properties:
        id:
          type: string
          description: ID of the change request.
          example: d6c778822b2d7bd3b778935bcfd0d1d3csc
        status:
          type: string
          description: The current status of the change request.
          example: AUTHORIZATION_REQUIRED
          enum:
            - ACCEPTED
            - AUTHORIZATION_REQUIRED
            - CONFIRMATION_REQUIRED
            - COMPLETED
            - FAILED
        updated_at:
          type: string
          description: UTC timestamp from the last time the change request was updated.
          format: date-time
          example: '2022-04-21T13:59:52+00:00'
        url:
          type: string
          description: URL to use to authorize the change request.
          example: https://example.com/authorize
    WalletPayload:
      title: WalletPayload
      type: object
      properties:
        activation_data:
          type: string
          description: The request's activation data.
          example: >-
            TUJQQUMtMS1GSy0xMjM0NTYuMS0tVERFQS1DQUY2MDEzRTdCM0ExQzRDQ0UyRTI1RTEzMzhCMkFBMjE4REY3ODZERDUyOEQ5MDkxRDQ0NUNFQUU1ODI3QzlCMTY4QzQ5OTYzQUU0MjNDQThBRTI0OEEyNzY4NjlDN0M=
        encrypted_pass_data:
          type: string
          description: >-
            An encrypted JSON file containing the sensitive information needed
            to add the card to the customer's Apple Pay wallet.
          example: >-
            C81C62879B07661A835D53CD39DC67DC1FC011912B4234EF0C9C39638AA0FBD038C2666EBC22C180F1F4E079E8B4EEB40322D2DB2E37B0D410331E07084116F988E501DE10F7201F42B314135DD050F253C8F4C3797BB6A33FBD2DEBC815D7EC827C2BDAF4FE8D8A31778F349F57C0CF672582601F423B9E109B57B819444E6ABE2D860671D8D87F93EF1055E4B97218037ADCD82A51017A375B90AD442F207E36E06F8BDDE500A142BDD54287C9EDA58284C808FEB9782CB54F72DE1F428266DFB6C20BE24B2279E63FF3AF6292DBA50DF61E54730CDB4C925F0853D998156423DD60833A46C05D7BC783C8C0EBDA9E245ABC1CB074D4A769790E9F81405E413D7F0D80CB3561B332B063B0766FBF6191AFC1CA3C49035B3EEEB821CFB4115A92E96933A8D8A65EFACDF80254EE9C8FEA81D10BF2CBC1CFF186DF7A67A046B21E551985ADE724CCAC04AD00813949B40EFCDC75B6EA64D6FA31999C1A4CA10BFD85B9A16B4B7789DA1A50B65C4CB3BF247D7982A6AC209F0744668E1B139E5DD2336D0F31D16DBB700A49D02F8A96A39BB4ED3F585AD9E5392520AE4355087152AE2BE0899FBC56695F1525C24E9B91530651D23BA77852FC934F7AF9F6827D7837C258D7890827F53733992B0309A511514D1ACE055EA4AA2CB5B98BFE4D48FD9F
        ephemeral_public_key:
          type: string
          description: The ephemeral public key used by elliptic curve cryptography (ECC).
          example: >-
            040E245432914D9CBB00DC27BA9E6437F8F5F5140A3C44D10B3F736F49583A9F98023DA94FE008D371163FBA4768E226E4702CB757C1E892A0286143753E291C4E
    EncryptionResponse:
      title: EncryptionResponse
      type: object
      properties:
        wallet_payload:
          $ref: '#/components/schemas/WalletPayload'
    error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Error identifier
              status:
                type: integer
                description: Error status
              code:
                type: string
                description: Error code
              title:
                type: string
                description: Error title
              detail:
                type: string
                description: Error detail
    Error403:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '403'
        code:
          type: string
          example: unauthorized_action
        title:
          type: string
          example: Unauthorized Action
        detail:
          type: string
          example: Unauthorized action is not allowed.
    Error404:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '404'
        code:
          type: string
          example: model_not_found
        title:
          type: string
          example: Model Not Found
        detail:
          type: string
          example: >-
            Couldn't find 'Solaris::Identification' for id
            'bbbcccfff388923eb899a5852df6cidt'.
    Error500:
      type: object
      properties:
        id:
          type: string
          example: e8915041-9d8c-4d96-9dd1-04e8522ecdbf
        status:
          type: string
          example: '500'
        code:
          type: string
          example: generic_error
        title:
          type: string
          example: Generic Error
        detail:
          type: string
          example: There was an error.
    InAppVerificationActivationPayload:
      title: InAppVerificationActivationPayload
      type: object
      description: Object containing the activation data for Apple Pay in-app verification.
      properties:
        activation_data:
          type: string
          description: The request's activation data.
          example: >-
            TUJQQUMtMS1GSy0xMjM0NTYuMS0tVERFQS1DQUY2MDEzRTdCM0ExQzRDQ0UyRTI1RTEzMzhCMkFBMjE4REY3ODZERDUyOEQ5MDkxRDQ0NUNFQUU1ODI3QzlCMTY4QzQ5OTYzQUU0MjNDQThBRTI0OEEyNzY4NjlDN0M
    InAppVerificationResponse:
      title: InAppVerificationResponse
      type: object
      properties:
        activation_payload:
          $ref: '#/components/schemas/InAppVerificationActivationPayload'
    PushProvisionGoogleRequest:
      title: PushProvisionRequest
      type: object
      properties:
        client_app_id:
          type: string
          description: >-
            Unique identifier for the client application. Use the value
            `SolarisPushProvisioning`.
          enum:
            - SolarisPushProvisioning
          example: SolarisPushProvisioning
        client_device_id:
          type: string
          description: >-
            Stable identifier for a physical Android device. Google refers to
            this attribute as a **Stable hardware ID** in their SDK
            documentation. Use the `getStableHardwareId` method to retrieve this
            value.
          example: DeviceIDZIiG3a0DgF4mQfkC
        client_wallet_account_id:
          type: string
          description: >-
            Unique 24-byte identifier for each instance of a `[Android user,
            Google account]` pair. Google computes the ID as a keyed hash of the
            Android user ID and the Google account ID. The key to this hash
            lives on Google's servers; the wallet ID is created during user
            setup as an RPC.
          example: Rwt3tJek_k1JxivcwbPHjKDk
    GoogleEncryptionResponse:
      title: GoogleEncryptionResponse
      type: object
      properties:
        wallet_payload:
          type: string
          description: The Google wallet payload.
          example: >-
            eyJhbGciOiJBMjU2R0NNS1ciLCJjaGFubmVsU2VjdXJpdHlDb250ZXh0IjoiU0hBUkVEX1NFQ1JFVCIsImVuYyI6IkEyNTZHQ00iLCJpYXQiOjE1NjYzMDUyNDIsIml2IjoiLVpMMGF4M0J2b1dRQjJhZyIsImtpZCI6IjhTTU5BWkRZTVFIQUFNNFU3S1ZZMTNDN0NlajVqdEVZbFI1MFhGRTdJd0R4RG9idE0iLCJ0YWciOiJDUW1DaWRFRkdFYkFyV3ViOU5IdkdRIiwidHlwIjoiSk9TRSJ9
    PushProvisionSamsungRequest:
      title: PushProvisionRequest
      type: object
      properties:
        client_app_id:
          type: string
          description: >-
            Unique identifier for the client application. Use the value
            `SolarisPushProvisioning`.
          enum:
            - SolarisPushProvisioning
          example: SolarisPushProvisioning
        client_device_id:
          type: string
          description: >-
            Stable identifier for a physical Android device. Samsung refers to
            this attribute as a **Stable hardware ID** in their SDK
            documentation. Use the `getStableHardwareId` method to retrieve this
            value.
          example: DeviceIDZIiG3a0DgF4mQfkC
        client_wallet_account_id:
          type: string
          description: >-
            Unique 24-byte identifier for each instance of a `[Android user,
            Samsung account]` pair. Samsung computes the ID as a keyed hash of
            the Android user ID and the Samsung account ID. The key to this hash
            lives on Samsung's servers; the wallet ID is created during user
            setup as an RPC.
          example: Rwt3tJek_k1JxivcwbPHjKDk
    Solaris_Decorators_Token_Details:
      type: object
      properties:
        token_reference_id:
          type: string
          description: The unique reference ID of the token to be retrieved.
        visa_token_number:
          type: string
          description: The number of the Visa token.
        pan_reference:
          type: string
          description: Information about the Primary Account Number (PAN) reference.
        wallet_type:
          type: string
          enum:
            - APPLE
            - GOOGLE
            - SAMSUNG
          description: The type of the wallet.
        status:
          type: string
          enum:
            - ACTIVE
            - DEACTIVATED
            - INACTIVE
            - SUSPENDED
          description: The status of the token.
        device_id:
          type: string
          description: The ID of the bound device associated with the token.
        pan_source:
          type: string
          enum:
            - KEY_ENTERED
            - ON_FILE
            - MOBILE_BANKING_APP
            - TOKEN
            - CHIP_DIP
            - CONTACTLESS_TAP
          description: The source of the PAN.
        created_at:
          type: string
          description: The date the token was created. (ISO8601 format)
    Error400:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '400'
        code:
          type: string
          example: build_pagination_headers_failure
        title:
          type: string
          example: Failed to build pagination headers.
        detail:
          type: string
          example: Cannot connect to database.
    Error404-2:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '404'
        code:
          type: string
          example: model_not_found
        title:
          type: string
          example: Model Not Found
        detail:
          type: string
          example: >-
            Couldn't find 'Solaris::Card' for id
            '8febdba4912a747808ccc6f95f82aaa4'.
    PartnerTokenizationConfigsResponse:
      title: PartnerTokenizationConfigsResponse
      type: object
      properties:
        card_id:
          type: array
          description: An array containing a list of cards to be included in the allowlist.
          items:
            type: string
            description: The ID of the card to be included in the allowlist.
            example: 8febdba4912a747808ccc6f95f82bpcrd
        partner_id:
          type: string
          description: Your partner ID.
          example: 8febdba4912a747808ccc6f95f82bpar
        token_requestor:
          type: string
          description: The token requester.
          example: APPLE
          enum:
            - APPLE
            - GOOGLE
            - SAMSUNG
        uuid:
          type: string
          description: The unique ID of the created allowlist.
          example: 8febdba4912a747808ccc6f95f82bb2b
    Error:
      type: object
      properties:
        title:
          type: string
          example: Failed to build pagination headers.
        status:
          type: string
          example: '400'
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        detail:
          type: string
          example: Cannot connect to database.
        code:
          type: string
          example: build_pagination_headers_failure
    Error400-2:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
    Error401:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '401'
        code:
          type: string
          example: unauthorized_action
        title:
          type: string
          example: Unauthorized Action
        details:
          type: string
          example: Unauthorized action is not allowed.
    Error403-2:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '403'
        code:
          type: string
          example: forbidden_action
        title:
          type: string
          example: Forbidden Action
        details:
          type: string
          example: Forbidden to perform this action.
    Error404-3:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '404'
        code:
          type: string
          example: model_not_found
        title:
          type: string
          example: Model Not Found
        details:
          type: string
          example: Partner tokenization configuration for APPLE not found.
    UpdateWhiteListingRulesRequest:
      title: UpdateWhiteListingRulesRequest
      required:
        - card_id
        - token_requestor
      type: object
      properties:
        card_id:
          type: array
          description: An array containing a list of cards to be included in the allowlist.
          items:
            type: string
            description: The ID of the card to be included in the allowlist.
            example: 8febdba4912a747808ccc6f95f82bpcrd
        token_requestor:
          type: string
          description: The token requester.
          example: APPLE
          enum:
            - APPLE
            - GOOGLE
            - SAMSUNG
    ResponseDto:
      title: ResponseDto
      type: object
      properties:
        uuid:
          type: string
          description: The unique ID of the created allowlist.
          example: 8febdba4912a747808ccc6f95f82bb2b
  responses:
    Error400:
      description: Validation Error
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/error'
              - type: object
                example:
                  errors:
                    - id: jhPSfNcJ9rB5F4IppoXoWkSetZGolcrINS
                      status: 400
                      code: validation_error
                      title: Validation Error
                      detail: >-
                        Failed to validate chain of trust for apple certificates
                        with error - Certification path could not be validated.
  parameters:
    TokenRiskControlId:
      in: path
      name: token_risk_control_id
      description: The ID of the tokenization configuration.
      example: 8febdba4912a747808ccc6f95f82bb2b
      required: true
      allowEmptyValue: false
      schema:
        type: string
