Cards tokenization (1.0)

Download OpenAPI specification:Download

Push provisioning

Fetch wallet payload for Apple Pay in-app provisioning

Returns a wallet payload for adding the customer's card to their Apple Pay wallet via request to the Apple Pay API.
Note: This endpoint will trigger the change request process. The customer will receive a 2FA challenge to confirm the request.

Request
Security:
path Parameters
card_id
required
string

card_id

Request Body schema: application/json
certificates
Array of strings

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.

nonce
string

A single-use nonce provided by Apple. You must hex-encode this value before providing it to the API.

nonce_signature
string

Nonce signature provided by Apple. You must hex-encode this value before providing it to the API.

Responses
200

The request was accepted, and now the customer must confirm the change request.

201

The change request was successfully confirmed, and the card can now be added to the customer's Apple Pay wallet.

400

Validation Error

401

Invalid or missing auth token.

403

Forbidden

404

The card could not be found.

500

Internal server error.

post/v1/cards/{card_id}/sca_push_provision/apple_encrypted
Request samples
application/json
{
  • "certificates": [
    ],
  • "nonce": "c5846fb5",
  • "nonce_signature": "4061d9d63ed34825f285d953274a6c5e06ebe011bf91d79660e1f7c6f6d21427abb3a62e6352e430abff987f6ec37e5dff9f3dbe40275156d03eeb594ab191d2792f37ef13ac528a65f56165c1d753463f"
}
Response samples
application/json
{
  • "id": "d6c778822b2d7bd3b778935bcfd0d1d3csc",
  • "status": "AUTHORIZATION_REQUIRED",
  • "updated_at": "2022-04-21T13:59:52+00:00",
}

Fetch activation payload for Apple Pay in-app verification

Call this endpoint to initiate an in-app verification for activating a token on Apple Pay.
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.
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.

Request
Security:
path Parameters
card_id
required
string

ID of the card for which to fetch the activation payload.

Responses
200

Redirect to Change Request

201

Successful result of the operation.

401

Invalid or missing auth token.

403

Forbidden

404

The card could not be found.

500

Internal server error.

post/v1/cards/{card_id}/tokens/apple/verify
Request samples
curl -i -X POST \
  'https://api.solaris-sandbox.de/v1/cards/{card_id}/tokens/apple/verify'
Response samples
application/json
{
  • "id": "d6c778822b2d7bd3b778935bcfd0d1d3csc",
  • "status": "AUTHORIZATION_REQUIRED",
  • "updated_at": "2022-04-21T13:59:52+00:00",
}

Fetch wallet payload for Google Pay in-app provisioning

Returns a wallet payload for adding the customer's card to their Google Pay wallet via request to the Google Pay API.
Note: This endpoint will trigger the change request process. The customer will receive a 2FA challenge to confirm the request.

Request
Security:
path Parameters
card_id
required
string

card_id

Request Body schema: application/json
client_app_id
string

Unique identifier for the client application. Use the value SolarisPushProvisioning.

Value: "SolarisPushProvisioning"
client_device_id
string

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.

client_wallet_account_id
string

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.

Responses
200

The request was accepted, and now the customer must confirm the change request.

201

The change request was successfully confirmed, and the card has been added to the customer's Google Pay wallet.

400

Validation Error

401

Invalid or missing auth token.

403

Forbidden

404

The card could not be found.

500

Internal server error.

post/v1/cards/{card_id}/sca_push_provision/google
Request samples
application/json
{
  • "client_app_id": "SolarisPushProvisioning",
  • "client_device_id": "DeviceIDZIiG3a0DgF4mQfkC",
  • "client_wallet_account_id": "Rwt3tJek_k1JxivcwbPHjKDk"
}
Response samples
application/json
{
  • "id": "d6c778822b2d7bd3b778935bcfd0d1d3csc",
  • "status": "AUTHORIZATION_REQUIRED",
  • "updated_at": "2022-04-21T13:59:52+00:00",
}

Fetch wallet payload for Samsung Pay in-app provisioning

Returns a wallet payload for adding the customer's card to their Samsung Pay wallet via request to the Samsung Pay API.
Note: This endpoint will trigger the change request process. The customer will receive a 2FA challenge to confirm the request.

Request
Security:
path Parameters
card_id
required
string

card_id

Request Body schema: application/json
client_app_id
string

Unique identifier for the client application. Use the value SolarisPushProvisioning.

Value: "SolarisPushProvisioning"
client_device_id
string

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.

client_wallet_account_id
string

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.

Responses
200

The request was accepted, and now the customer must confirm the change request.

201

The change request was successfully confirmed, and the card has been added to the customer's Samsung Pay wallet.

202

The request was accepted, and now the customer must confirm the change request.

400

Validation Error

401

Invalid or missing auth token.

403

Forbidden

404

The card could not be found.

500

Internal server error.

post/v1/cards/{card_id}/sca_push_provision/samsung
Request samples
application/json
{
  • "client_app_id": "SolarisPushProvisioning",
  • "client_device_id": "DeviceIDZIiG3a0DgF4mQfkC",
  • "client_wallet_account_id": "Rwt3tJek_k1JxivcwbPHjKDk"
}
Response samples
application/json
{
  • "id": "d6c778822b2d7bd3b778935bcfd0d1d3csc",
  • "status": "AUTHORIZATION_REQUIRED",
  • "updated_at": "2022-04-21T13:59:52+00:00",
}

(Deprecated) Add a card to an Apple Pay walletDeprecated

This endpoint is deprecated; please use POST /v1/cards/{card_id}/sca_push_provision/apple_encrypted instead.

Request
Security:
path Parameters
card_id
required
string

card_id

Request Body schema: application/json
certificates
Array of strings

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.

nonce
string

A single-use nonce provided by Apple. You must hex-encode this value before providing it to the API.

nonce_signature
string

Nonce signature provided by Apple. You must hex-encode this value before providing it to the API.

Responses
201

Successful result of the operation.

401

Invalid or missing auth token.

403

Forbidden

404

The card could not be found.

500

Internal server error.

post/v1/cards/{card_id}/push_provision/apple_encrypted
Request samples
application/json
{
  • "certificates": [
    ],
  • "nonce": "c5846fb5",
  • "nonce_signature": "4061d9d63ed34825f285d953274a6c5e06ebe011bf91d79660e1f7c6f6d21427abb3a62e6352e430abff987f6ec37e5dff9f3dbe40275156d03eeb594ab191d2792f37ef13ac528a65f56165c1d753463f"
}
Response samples
application/json
{
  • "wallet_payload": {
    }
}

(Deprecated) Add a card to a Google Pay walletDeprecated

This endpoint is deprecated; please use POST /v1/cards/{card_id}/sca_push_provision/google instead.

Request
Security:
path Parameters
card_id
required
string

card_id

Request Body schema: application/json
client_app_id
string

Unique identifier for the client application. Use the value SolarisPushProvisioning.

Value: "SolarisPushProvisioning"
client_device_id
string

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.

client_wallet_account_id
string

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.

Responses
201

Successful result of the operation.

401

Invalid or missing auth token.

403

Forbidden

404

The card could not be found.

500

Internal server error.

post/v1/cards/{card_id}/push_provision/google
Request samples
application/json
{
  • "client_app_id": "SolarisPushProvisioning",
  • "client_device_id": "DeviceIDZIiG3a0DgF4mQfkC",
  • "client_wallet_account_id": "Rwt3tJek_k1JxivcwbPHjKDk"
}
Response samples
application/json
{
  • "wallet_payload": "eyJhbGciOiJBMjU2R0NNS1ciLCJjaGFubmVsU2VjdXJpdHlDb250ZXh0IjoiU0hBUkVEX1NFQ1JFVCIsImVuYyI6IkEyNTZHQ00iLCJpYXQiOjE1NjYzMDUyNDIsIml2IjoiLVpMMGF4M0J2b1dRQjJhZyIsImtpZCI6IjhTTU5BWkRZTVFIQUFNNFU3S1ZZMTNDN0NlajVqdEVZbFI1MFhGRTdJd0R4RG9idE0iLCJ0YWciOiJDUW1DaWRFRkdFYkFyV3ViOU5IdkdRIiwidHlwIjoiSk9TRSJ9"
}

Card token servicing

Retrieve a card's assigned tokens

Returns an array of all Visa tokens assigned to the card specified in the request URL.

Request
Security:
path Parameters
card_id
required
string

The ID of the card to which the token is assigned.

query Parameters
filter[visa_token_number]
string

Filters by visa_token_number

page[number]
integer

Page number

page[size]
integer

Page size

Responses
200

Successful result of the operation

400

Invalid request

404

The resource could not be found.

500

Internal server error.

get/v1/cards/{card_id}/visa_tokens
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/cards/{card_id}/visa_tokens?filter%5Bvisa_token_number%5D=string&page%5Bnumber%5D=0&page%5Bsize%5D=0'
Response samples
application/json
[
  • {
    },
  • {
    }
]

Retrieve the details of a Visa token

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.

Request
Security:
path Parameters
card_id
required
string

The ID of the card to which the token is assigned.

token_reference_id
required
string

The unique reference ID of the token to be retrieved.

Responses
200

Successful result of the operation

400

Invalid request

404

The resource could not be found.

500

Internal server error.

get/v1/cards/{card_id}/visa_tokens/{token_reference_id}
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/cards/{card_id}/visa_tokens/{token_reference_id}'
Response samples
application/json
{
  • "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"
}

Testing allowlists

Create a card allowlist

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.

Request
Security:
Request Body schema: application/json
card_id
required
Array of strings

An array containing a list of cards to be included in the allowlist.

token_requestor
required
string

The token requester.

Enum: "APPLE" "GOOGLE" "SAMSUNG"
Responses
200

OK

400

Validation error

401

Unauthorized

403

Forbidden

404

Not Found

post/v1/tokenization_risk_controls/partner_tokenization_configurations
Request samples
application/json
{
  • "card_id": [
    ],
  • "token_requestor": "APPLE"
}
Response samples
application/json
{
  • "uuid": "8febdba4912a747808ccc6f95f82bb2b"
}

Retrieve a card allowlist

Returns an allowlist of cards created for production testing on Apple or Google Pay.

Request
Security:
query Parameters
token_requestor
required
string

The token requester.

Enum: "APPLE" "GOOGLE" "SAMSUNG"
Responses
200

OK

400

Validation error

401

Unauthorized

403

Forbidden

404

Not Found

get/v1/tokenization_risk_controls/partner_tokenization_configurations
Request samples
curl -i -X GET \
  'https://api.solaris-sandbox.de/v1/tokenization_risk_controls/partner_tokenization_configurations?token_requestor=APPLE'
Response samples
application/json
[
  • {
    }
]

Delete a card allowlist

Deletes an allowlist of cards production testing on Apple or Google Pay.

Request
Security:
path Parameters
token_risk_control_id
required
string

The ID of the tokenization configuration.

Example: 8febdba4912a747808ccc6f95f82bb2b
Responses
204

Successful deletion

400

Validation error

404

The resource could not be found.

default

Unexpected error

delete/v1/tokenization_risk_controls/partner_tokenization_configurations/{token_risk_control_id}
Request samples
curl -i -X DELETE \
  'https://api.solaris-sandbox.de/v1/tokenization_risk_controls/partner_tokenization_configurations/{token_risk_control_id}'
Response samples
application/json
{
  • "errors": [
    ]
}