Click to Pay API
This request is used by the issuer's backend to enrol the card to Click to Pay.
Note: It cannot be used to update Click to Pay information. For that, please refer to: - Click to Pay update card - Click to Pay update consumer
Note: If the card enrolment is not successful, D1 will end-up with a FAILED operation. But if the consumer was successfully enrolled, the get Click to Pay profile API will return a profile with the enrolled consumer and no card associated to it depending on the scheme's internal behavior.
Warning: This API does not support bulk enrolments. If you need to perform mass enrolments of cards to the Click to Pay service, it is recommended to use the batch file registration with Click to Pay auto-enrolment. Contact your Thales representative to configure the auto-enrolment feature.
A JWT generated by the Get Authorization Token API.
The server checks the validity of the provided token to control access to this protected resource. Please refer to Get OAuth 2.0 access token for more details on the flow and on how to get this JWT.
The id of the issuer
Unique identifier of the card.
^[A-Za-z0-9_-]{1,48}$Random identifier which can be used to correlate the different API calls done as part of a single use-case. This identifier will be the one primarily used for troubleshooting.
Warning: This identifier should not be derived from sensitive personal data, as its value will be logged in clear.
There is no strong guarantee of the uniqueness of this identifier, so please refrain from using it for other purpose than logging and troubleshooting.
^[A-Za-z0-9_-]{1,64}$The card holder name as present on the card. It is applicable only to Visa.
John SmithPattern: ^[\p{L}\p{N}\u0600-\u06FF ,.'_#;:\/-]{1,26}$The reason why the action is performed.
This a free text field in case the bank wants to send details, that will be returned in the operations list.
customer was contacted on June 28Pattern: ^[a-zA-Z0-9 ]{1,64}$The reason why the action has been performed. If not provided, default reason code is ISSUER_DECISION.
Card enrolment to Click to Pay has been taken into account.
Operation result information.
Unique identifier of the operation
^[A-Za-z0-9_-]{1,64}$Status of the operation
Bad Request, Invalid request URI, header, paramters. The below table defines the possible 'Bad request' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| FIELD_INVALID_FORMAT | no | At least one field is not in expected format as defined in this documentation |
Unauthorized request, the provided Authorization header is missing or invalid. In the table below only the field "error" is provided.
| errorCode | error | Retryable | Comments |
|---|---|---|---|
| AUTHORIZER_UNAUTHORIZED | Unauthorized message | no | Access token not valid |
Forbidden. The below table defines the possible 'Forbidden' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| CARD_INVALID_STATE | no | We cannot enrol an inactive card |
| OPERATION_NOT_ALLOWED | no | Only Visa and Mastercard cards are supported |
Not Found. The below table defines the possible 'Not Found' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| UNKNOWN_CARD | no | Unknown card |
Internal Server Error. The below table defines the possible 'Internal Server Error' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | yes | No error details available |
| WRONG_CONFIGURATION | no | At least one configuration is missing |
| INTERNAL_ERROR | no | - |
| SCHEME_ERROR | no | An error occured while trying to contact the scheme |
| SCHEME_CARD_INELIGIBLE | no | Reason could be that the card is not eligible to tokenization, not configured on scheme side, or that it is expired, or inactive or... |
| SCHEME_AMBIGUOUS_PROFILE | no | A profile already exist but email or phonenumber does not match with already existing record |
POST /banking/v1/issuers/{issuerId}/cards/{cardId}/operations:clickToPayEnrolment HTTP/1.1
Host: api.d1.thalescloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 444
{
"name": "John Smith",
"billingAddress": {
"line1": "1230 Rue de Rivoli",
"line2": "text",
"line3": "text",
"city": "Paris",
"state": "75",
"zipCode": "75000",
"countryCode": "FR"
},
"consumerInfo": {
"firstName": "Alexandre",
"middleName": "Andrew",
"lastName": "Doe",
"language": "en-US",
"mobilePhoneNumber": {
"countryCode": "+33",
"phoneNumber": "624302941"
},
"email": "john.smith@myhostmaill.com"
},
"reason": "customer was contacted on June 28",
"reasonCode": "ISSUER_DECISION"
}{
"operationId": "text",
"status": "PENDING"
}Retrieve the Click to Pay profiles for the given consumerId.
There can be one profile per scheme, at maximum.
If the end-user (consumer) exists in D1 solution but was never enrolled to Click to Pay then an empty list will be returned by the API.
A JWT generated by the Get Authorization Token API.
The server checks the validity of the provided token to control access to this protected resource. Please refer to Get OAuth 2.0 access token for more details on the flow and on how to get this JWT.
The id of the issuer
Unique identifier of the consumer.
^[A-Za-z0-9_-]{1,64}$Random identifier which can be used to correlate the different API calls done as part of a single use-case. This identifier will be the one primarily used for troubleshooting.
Warning: This identifier should not be derived from sensitive personal data, as its value will be logged in clear.
There is no strong guarantee of the uniqueness of this identifier, so please refrain from using it for other purpose than logging and troubleshooting.
^[A-Za-z0-9_-]{1,64}$Profile retrieved.
Optional string message. In case issuer is using both schemes and one of the two is returning an error, we will send back partial answer in the clickToPayProfiles array, and in this message we will giving more details on the received error. This field is for troubleshooting purposes only, it can change at any time so MUST NOT be parsed, and is not supposed to be human readable so CANNOT be displayed to end users.
Bad Request, Invalid request URI, header, paramters. The below table defines the possible 'Bad request' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| FIELD_INVALID_FORMAT | no | At least one field is not in expected format as defined in this documentation |
Unauthorized request, the provided Authorization header is missing or invalid. In the table below only the field "error" is provided.
| errorCode | error | Retryable | Comments |
|---|---|---|---|
| AUTHORIZER_UNAUTHORIZED | Unauthorized message | no | Access token not valid |
Not Found. The below table defines the possible 'Not Found' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| UNKNOWN_CONSUMER | no | Unknown end user (consumer) |
Internal Server Error. The below table defines the possible 'Internal Server Error' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | yes | No error details available |
| WRONG_CONFIGURATION | no | At least one configuration is missing |
| INTERNAL_ERROR | no | - |
| SCHEME_ERROR | no | An error occured while trying to contact the scheme |
GET /banking/v1/issuers/{issuerId}/consumers/{consumerId}/clickToPayProfiles HTTP/1.1
Host: api.d1.thalescloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"clickToPayProfiles": [
{
"scheme": "MASTERCARD",
"consumerId": "text",
"consumerInfo": {
"firstName": "Alexandre",
"middleName": "Andrew",
"lastName": "Doe",
"language": "en-US",
"mobilePhoneNumber": {
"countryCode": "+33",
"phoneNumber": "624302941"
},
"email": "john.smith@myhostmaill.com"
},
"cards": [
{
"cardId": "1111-2222-3333",
"panSuffix": "1254",
"exp": "1240",
"digitalCardId": "FWSPMC000000000159f71f703d2141efaf04dd26803f922b",
"name": "John Smith",
"billingAddress": {
"line1": "1230 Rue de Rivoli",
"line2": "text",
"line3": "text",
"city": "Paris",
"state": "75",
"zipCode": "75000",
"countryCode": "FR"
}
}
]
}
],
"message": "text"
}This request is used by the issuer's backend to update the card information that was pushed to Click to Pay.
A JWT generated by the Get Authorization Token API.
The server checks the validity of the provided token to control access to this protected resource. Please refer to Get OAuth 2.0 access token for more details on the flow and on how to get this JWT.
The id of the issuer
Unique identifier of the card.
^[A-Za-z0-9_-]{1,48}$Random identifier which can be used to correlate the different API calls done as part of a single use-case. This identifier will be the one primarily used for troubleshooting.
Warning: This identifier should not be derived from sensitive personal data, as its value will be logged in clear.
There is no strong guarantee of the uniqueness of this identifier, so please refrain from using it for other purpose than logging and troubleshooting.
^[A-Za-z0-9_-]{1,64}$The card holder name as present on the card. It is applicable only to Visa.
John SmithPattern: ^[\p{L}\p{N}\u0600-\u06FF ,.'_#;:\/-]{1,26}$The reason why the action is performed.
This a free text field in case the bank wants to send details, that will be returned in the operations list.
customer was contacted on June 28Pattern: ^[a-zA-Z0-9 ]{1,64}$The reason why the action has been performed. If not provided, default reason code is ISSUER_DECISION.
Card information update has been taken into account.
Operation result information.
Unique identifier of the operation
^[A-Za-z0-9_-]{1,64}$Status of the operation
Bad Request, Invalid request URI, header, paramters. The below table defines the possible 'Bad request' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| FIELD_INVALID_FORMAT | no | At least one field is not in expected format as defined in this documentation |
Unauthorized request, the provided Authorization header is missing or invalid. In the table below only the field "error" is provided.
| errorCode | error | Retryable | Comments |
|---|---|---|---|
| AUTHORIZER_UNAUTHORIZED | Unauthorized message | no | Access token not valid |
Forbidden. The below table defines the possible 'Forbidden' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| OPERATION_NOT_ALLOWED | no | Only Visa and Mastercard cards are supported |
Not found. The below table defines the possible 'Not found' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| UNKNOWN_CARD | no | The card does not exist in D1 |
| SCHEME_ERROR | no | The card does not exist in Click to Pay |
Internal Server Error. The below table defines the possible 'Internal Server Error' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | yes | No error details available |
| WRONG_CONFIGURATION | no | At least one configuration is missing |
| INTERNAL_ERROR | no | - |
| SCHEME_ERROR | no | An error occured while trying to contact the scheme |
POST /banking/v1/issuers/{issuerId}/cards/{cardId}/operations:clickToPayUpdate HTTP/1.1
Host: api.d1.thalescloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 240
{
"name": "John Smith",
"billingAddress": {
"line1": "1230 Rue de Rivoli",
"line2": "text",
"line3": "text",
"city": "Paris",
"state": "75",
"zipCode": "75000",
"countryCode": "FR"
},
"reason": "customer was contacted on June 28",
"reasonCode": "ISSUER_DECISION"
}{
"operationId": "text",
"status": "PENDING"
}Click to Pay update consumer
This request is used by the issuer's backend to update the end user (consumer) information that was pushed to Click to Pay.
A JWT generated by the Get Authorization Token API.
The server checks the validity of the provided token to control access to this protected resource. Please refer to Get OAuth 2.0 access token for more details on the flow and on how to get this JWT.
The id of the issuer
Unique identifier of the consumer.
^[A-Za-z0-9_-]{1,64}$Random identifier which can be used to correlate the different API calls done as part of a single use-case. This identifier will be the one primarily used for troubleshooting.
Warning: This identifier should not be derived from sensitive personal data, as its value will be logged in clear.
There is no strong guarantee of the uniqueness of this identifier, so please refrain from using it for other purpose than logging and troubleshooting.
^[A-Za-z0-9_-]{1,64}$The reason why the action is performed.
This a free text field in case the bank wants to send details, that will be returned in the operations list.
customer was contacted on June 28Pattern: ^[a-zA-Z0-9 ]{1,64}$The reason why the action has been performed. If not provided, default reason code is ISSUER_DECISION.
End user (consumer) information update has been taken into account.
Operation result information.
Unique identifier of the operation
^[A-Za-z0-9_-]{1,64}$Status of the operation
Bad Request, Invalid request URI, header, paramters. The below table defines the possible 'Bad request' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| FIELD_INVALID_FORMAT | no | At least one field is not in expected format as defined in this documentation |
Unauthorized request, the provided Authorization header is missing or invalid. In the table below only the field "error" is provided.
| errorCode | error | Retryable | Comments |
|---|---|---|---|
| AUTHORIZER_UNAUTHORIZED | Unauthorized message | no | Access token not valid |
Forbidden. The below table defines the possible 'Forbidden' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| OPERATION_NOT_ALLOWED | no | Only Visa and Mastercard cards are supported |
Not Found. The below table defines the possible 'Not Found' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| UNKNOWN_CONSUMER | no | The end user (consumer) does not exist in D1 |
| SCHEME_ERROR | no | The end user (consumer) does not exist in Click to Pay |
Internal Server Error. The below table defines the possible 'Internal Server Error' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | yes | No error details available |
| WRONG_CONFIGURATION | no | At least one configuration is missing |
| INTERNAL_ERROR | no | - |
| SCHEME_ERROR | no | An error occured while trying to contact the scheme |
POST /banking/v1/issuers/{issuerId}/consumers/{consumerId}/operations:clickToPayUpdate HTTP/1.1
Host: api.d1.thalescloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 424
{
"consumerInfo": {
"firstName": "Alexandre",
"middleName": "Andrew",
"lastName": "Doe",
"language": "en-US",
"mobilePhoneNumber": {
"countryCode": "+33",
"phoneNumber": "624302941"
},
"email": "john.smith@myhostmaill.com"
},
"billingAddress": {
"line1": "1230 Rue de Rivoli",
"line2": "text",
"line3": "text",
"city": "Paris",
"state": "75",
"zipCode": "75000",
"countryCode": "FR"
},
"reason": "customer was contacted on June 28",
"reasonCode": "ISSUER_DECISION"
}{
"operationId": "text",
"status": "PENDING"
}This request is used by the issuer's backend to opt-out a card that was enrolled to Click to Pay.
A JWT generated by the Get Authorization Token API.
The server checks the validity of the provided token to control access to this protected resource. Please refer to Get OAuth 2.0 access token for more details on the flow and on how to get this JWT.
The id of the issuer
Unique identifier of the card.
^[A-Za-z0-9_-]{1,48}$Random identifier which can be used to correlate the different API calls done as part of a single use-case. This identifier will be the one primarily used for troubleshooting.
Warning: This identifier should not be derived from sensitive personal data, as its value will be logged in clear.
There is no strong guarantee of the uniqueness of this identifier, so please refrain from using it for other purpose than logging and troubleshooting.
^[A-Za-z0-9_-]{1,64}$The reason why the action is performed.
This a free text field in case the bank wants to send details, that will be returned in the operations list.
customer was contacted on June 28Pattern: ^[a-zA-Z0-9 ]{1,64}$The reason why the action has been performed. If not provided, default reason code is ISSUER_DECISION.
Card opt-out from Click to Pay has been taken into account.
Operation result information.
Unique identifier of the operation
^[A-Za-z0-9_-]{1,64}$Status of the operation
Bad Request, Invalid request URI, header, paramters. The below table defines the possible 'Bad request' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| FIELD_INVALID_FORMAT | no | At least one field is not in expected format as defined in this documentation |
Unauthorized request, the provided Authorization header is missing or invalid. In the table below only the field "error" is provided.
| errorCode | error | Retryable | Comments |
|---|---|---|---|
| AUTHORIZER_UNAUTHORIZED | Unauthorized message | no | Access token not valid |
Forbidden. The below table defines the possible 'Forbidden' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| OPERATION_NOT_ALLOWED | no | Only Visa and Mastercard cards are supported |
Not Found. The below table defines the possible 'Not Found' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| UNKNOWN_CARD | no | Unknown card |
Internal Server Error. The below table defines the possible 'Internal Server Error' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | yes | No error details available |
| WRONG_CONFIGURATION | no | At least one configuration is missing |
| INTERNAL_ERROR | no | - |
| SCHEME_ERROR | no | An error occured while trying to contact the scheme |
POST /banking/v1/issuers/{issuerId}/cards/{cardId}/operations:clickToPayOptout HTTP/1.1
Host: api.d1.thalescloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 77
{
"reason": "customer was contacted on June 28",
"reasonCode": "ISSUER_DECISION"
}{
"operationId": "text",
"status": "PENDING"
}Click to Pay opt-out consumer
This request is used by the issuer's backend to opt-out a consumer that was enrolled to Click to Pay.
The consumer opt-out will opt-out the consumer and all its associated cards from Click to Pay in one single operation.
A JWT generated by the Get Authorization Token API.
The server checks the validity of the provided token to control access to this protected resource. Please refer to Get OAuth 2.0 access token for more details on the flow and on how to get this JWT.
The id of the issuer
Unique identifier of the consumer.
^[A-Za-z0-9_-]{1,64}$Random identifier which can be used to correlate the different API calls done as part of a single use-case. This identifier will be the one primarily used for troubleshooting.
Warning: This identifier should not be derived from sensitive personal data, as its value will be logged in clear.
There is no strong guarantee of the uniqueness of this identifier, so please refrain from using it for other purpose than logging and troubleshooting.
^[A-Za-z0-9_-]{1,64}$The reason why the action is performed.
This a free text field in case the bank wants to send details, that will be returned in the operations list.
customer was contacted on June 28Pattern: ^[a-zA-Z0-9 ]{1,64}$The reason why the action has been performed. If not provided, default reason code is ISSUER_DECISION.
Consumer opt-out from Click to Pay has been taken into account. The opt-out can be PENDING or SUCCESSFUL.
In Case of SUCCESSFUL it can mean that:
- the operation is already finished and success,
- the operation was already done, the consumer was already opted-out,
- the operation was not needed as the consumer was never enrolled to Click to Pay.
Operation result information.
Unique identifier of the operation
^[A-Za-z0-9_-]{1,64}$Status of the operation
Bad Request, Invalid request URI, header, paramters. The below table defines the possible 'Bad request' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| FIELD_INVALID_FORMAT | no | At least one field is not in expected format as defined in this documentation |
Unauthorized request, the provided Authorization header is missing or invalid. In the table below only the field "error" is provided.
| errorCode | error | Retryable | Comments |
|---|---|---|---|
| AUTHORIZER_UNAUTHORIZED | Unauthorized message | no | Access token not valid |
Not Found. The below table defines the possible 'Not Found' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | no | No error details available |
| UNKNOWN_CONSUMER | no | Unknown consumer, when the consumer does not exist in D1 solution |
Internal Server Error. The below table defines the possible 'Internal Server Error' error:
| errorCode | Retryable | Comments |
|---|---|---|
| - | yes | No error details available |
| WRONG_CONFIGURATION | no | At least one configuration is missing |
| INTERNAL_ERROR | no | - |
| SCHEME_ERROR | no | An error occured while trying to contact the scheme |
POST /banking/v1/issuers/{issuerId}/consumers/{consumerId}/operations:clickToPayOptout HTTP/1.1
Host: api.d1.thalescloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 77
{
"reason": "customer was contacted on June 28",
"reasonCode": "ISSUER_DECISION"
}{
"operationId": "text",
"status": "PENDING"
}Last updated
Was this helpful?