From 7de4ef0c9b3336c23f7e765e4b0abc00c8d5a0b5 Mon Sep 17 00:00:00 2001 From: tkz37 Date: Mon, 6 Jan 2025 15:25:47 +0100 Subject: [PATCH 1/4] SFRP-21837 add new documentation for json api --- texts/ChapterAliasStore.md | 42 +++++++ texts/ChapterManagementApi.md | 72 +++++++++++ texts/ChapterTransaction.md | 15 --- texts/ContainerDictionary.md | 230 ++++++++++++++++++++++++++++++---- 4 files changed, 318 insertions(+), 41 deletions(-) diff --git a/texts/ChapterAliasStore.md b/texts/ChapterAliasStore.md index 781301f..58ffaf3 100644 --- a/texts/ChapterAliasStore.md +++ b/texts/ChapterAliasStore.md @@ -505,6 +505,20 @@ Id[1..50]
Contains general information about the response.
+ + + + + Tokenization
+ + + object + + + +
result of external tokenization
+ + @@ -762,6 +776,20 @@ This method may be used to insert an alias directly with card-data collected by
Contains general information about the response.
+ + + + + Tokenization
+ + + object + + + +
result of external tokenization
+ + @@ -971,6 +999,20 @@ This method may be used to update an alias' lifetime and / or its credit card ex
Contains general information about the response.
+ + + + + Tokenization
+ + + object + + + +
result of external tokenization
+ + diff --git a/texts/ChapterManagementApi.md b/texts/ChapterManagementApi.md index ef0d5c7..db94355 100644 --- a/texts/ChapterManagementApi.md +++ b/texts/ChapterManagementApi.md @@ -403,6 +403,78 @@ Utf8[1..128]
+ + +DELETE
+This method may be used to delete a previously created Saferpay Fields Access Token. + +--->>> + +

Request URL:

DELETE: /rest/customers/[customerId]/terminals/[terminalId]/fields-access-tokens

+ +<<<--- + +#### Request + + +No body needed + + + + +
+ + +--->>> + +

Example:

+
+No example available
+
+ +<<<--- + + +#### Response + + + +## SaferpayFieldsAccessToken DeleteAccessToken + +DELETE
+This method may be used to delete a previously created Saferpay Fields Access Token. + +--->>> + +

Request URL:

DELETE: /rest/customers/[customerId]/terminals/[terminalId]/fields-access-tokens/[accessToken]

+ +<<<--- + +#### Request + + +No body needed + + + + +
+ + +--->>> + +

Example:

+
+No example available
+
+ +<<<--- + + +#### Response + + + ## SecurePayGate Create SingleUsePaymentLink POST
diff --git a/texts/ChapterTransaction.md b/texts/ChapterTransaction.md index fe65e66..8d6afe2 100644 --- a/texts/ChapterTransaction.md +++ b/texts/ChapterTransaction.md @@ -535,21 +535,6 @@ Possible values: NONE, THREE_DS_AUTHENTICATION_SUCCESSFUL_OR_ATTEMPTED.
Id[1..50]
Example: 234uhfh78234hlasdfh8234e - - - - - VerificationCode
- - string - - - -
Card verification code if available
- -Numeric[3..4]
- Example: 123 -
diff --git a/texts/ContainerDictionary.md b/texts/ContainerDictionary.md index 1748290..a10ec20 100644 --- a/texts/ContainerDictionary.md +++ b/texts/ContainerDictionary.md @@ -1390,8 +1390,8 @@ Range: inclusive between 0 and 9
Version number of the interface specification. For new implementations, the newest Version should be used.
-Possible values: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.21, 1.22, 1.23, 1.24, 1.25, 1.26, 1.27, 1.28, 1.29, 1.30, 1.31, 1.32, 1.33, 1.34, 1.35, 1.36, 1.37, 1.38, 1.39, 1.40, 1.41, 1.42, 1.43
- Example: 1.43 +Possible values: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.21, 1.22, 1.23, 1.24, 1.25, 1.26, 1.27, 1.28, 1.29, 1.30, 1.31, 1.32, 1.33, 1.34, 1.35, 1.36, 1.37, 1.38, 1.39, 1.40, 1.41, 1.42, 1.43, 1.44
+ Example: 1.44
@@ -1431,8 +1431,8 @@ Id[1..50]
Version number of the interface specification.
-Possible values: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.21, 1.22, 1.23, 1.24, 1.25, 1.26, 1.27, 1.28, 1.29, 1.30, 1.31, 1.32, 1.33, 1.34, 1.35, 1.36, 1.37, 1.38, 1.39, 1.40, 1.41, 1.42, 1.43
- Example: 1.43 +Possible values: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.21, 1.22, 1.23, 1.24, 1.25, 1.26, 1.27, 1.28, 1.29, 1.30, 1.31, 1.32, 1.33, 1.34, 1.35, 1.36, 1.37, 1.38, 1.39, 1.40, 1.41, 1.42, 1.43, 1.44
+ Example: 1.44
@@ -2088,7 +2088,7 @@ Possible values: OK, OK_AUTHENTICATED, NOT_PERFORMED.
-
Name of Wallet, if the transaction was done by a wallet
+
Name of Wallet, if the transaction was done by a wallet. Note that this can change in the future. Please make sure to accept undocumented values as new wallets are introduced.
Example: APPLEPAY @@ -2570,7 +2570,7 @@ Utf8[1..50]
-
Name of the Brand (Visa, Mastercard, an so on – might change over time, only use for display, never for parsing). Only use it for display, never for parsing and/or mapping! Use PaymentMethod instead.
+
Name of the Brand (Visa, Mastercard, an so on – might change over time). Only use it for display, never for parsing and/or mapping! Use PaymentMethod instead.
Example: VISA @@ -2584,7 +2584,7 @@ Utf8[1..50]
-
alphanumeric id of the payment method / brand
+
alphanumeric id of the payment method / brand. Note that this can change in the future. Please make sure to accept undocumented values as new payment methods are introduced.
Possible values: ACCOUNTTOACCOUNT, ALIPAY, AMEX, BANCONTACT, BLIK, BONUS, DINERS, CARD, DIRECTDEBIT, EPRZELEWY, EPS, GIROPAY, IDEAL, INVOICE, JCB, KLARNA, MAESTRO, MASTERCARD, MYONE, PAYCONIQ, PAYDIREKT, PAYPAL, POSTCARD, POSTFINANCE, POSTFINANCEPAY, SOFORT, TWINT, UNIONPAY, VISA, WECHATPAY, WLCRYPTOPAYMENTS.
@@ -2763,7 +2763,7 @@ Possible values: NONE, MANDATORY.
-
Month of expiration (eg 9 for September)
+
Expiration month of the payer's card.
Example: 9 @@ -2780,23 +2780,10 @@ Possible values: NONE, MANDATORY.
-
Year of expiration
+
Expiration year of the payer's card.
- Example: 2015 + Example: 2025 - - - - - HashValue
- - string - - - -
The HashValue, if the hash generation is configured for the customer.
- - @@ -2839,10 +2826,24 @@ Possible values: UNSPECIFIED, CONSUMER, CORPORATE, CORPORATE_AND_CONSUMER.
-
Masked card number
+
The masked version of the full card number that the payer can see on his card.
Example: 912345xxxxxx1234 + + + + + TokenPan
+ + + object + + + +
Contains information about the tokenPAN if the transaction, or the referenced transaction, was conducted with a scheme token PAN.
+ + @@ -4312,7 +4313,7 @@ Utf8[1..50]
-
Name of Wallet, if the transaction was done by a wallet
+
Name of Wallet, if the transaction was done by a wallet. Note that this can change in the future. Please make sure to accept undocumented values as new wallets are introduced.
Example: APPLEPAY @@ -4915,7 +4916,7 @@ Utf8[1..50]
-
Name of Wallet, if the transaction was done by a wallet
+
Name of Wallet, if the transaction was done by a wallet. Note that this can change in the future. Please make sure to accept undocumented values as new wallets are introduced.
Example: APPLEPAY @@ -6072,6 +6073,20 @@ Range: inclusive between 1 and 1600
Result of registration
+ + + + + Tokenization
+ + + object + + + +
result of external tokenization
+ + @@ -6708,6 +6723,62 @@ Id[1..80]
AlphaNumeric[1..64]
Example: 723n4MAjMdhjSAhAKEUdA8jtl9jb + + + + +

Container "Payment_Models_Data_TransactionTokenPan"

+ + + + + + + + + + + + + @@ -6974,6 +7045,113 @@ Possible values: BLACKLIST_IP, BLACKLIST_IP_ORIGIN, BLACKLIST_PAYMENT_MEANS, BLA Example: CH + + + +
+ ExpMonth
+ + + mandatory, + + integer + +
+
Expiration month (eg 9 for September) of tokenPan
+ + Example: 9 + +
+ ExpYear
+ + + mandatory, + + integer + +
+
Expiration year of tokenPAN
+ + Example: 2045 + +
+ MaskedNumber
+ + + mandatory, + + string + +
+
Masked number of tokenPAN
+ + Example: 912345xxxxxx1234 +
+

Container "Payment_Models_SecureCardData_Tokenization_TokenizationInfo"

+ + + + + + + + + + + + + + + +
+ Program
+ + string + +
+
The system used to tokenize the payment means.
+ + +
+ Status
+ + string + +
+
The current state of the tokenization of payment means.
+ +Possible values: SUCCESSFUL, FAILED, SCHEME_NOT_SUPPORTED, ACQUIRER_NOT_SUPPORTED, NOT_PERFORMED, DENIED_BY_SCHEME.
+
+
+ TokenPan
+ + + object + +
+
Contains information about the returned token PAN from the scheme for card payment means. It will only be returned when the tokenization is SUCCESSFUL.
+ + +
+

Container "Payment_Models_SecureCardData_Tokenization_TokenPanInfo"

+ + + + + + + + + + + + + + + + + From 08f630dda0e366ac5639f135ea06f603443d1236 Mon Sep 17 00:00:00 2001 From: tkz37 Date: Tue, 7 Jan 2025 08:42:33 +0100 Subject: [PATCH 2/4] SFRP-21837 add 1.44 changes to changelog --- texts/Changelog.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/texts/Changelog.md b/texts/Changelog.md index 4bb265f..3cd81e1 100644 --- a/texts/Changelog.md +++ b/texts/Changelog.md @@ -1,6 +1,7 @@ # Changelog ## Table of Contents +- [Version 1.44](#v1.44.0.0.20250121) - [Version 1.43](#v1.43.0.0.20241112) - [Version 1.42](#v1.42.0.0.20240917) - [Version 1.41](#v1.41.0.0.20240716) @@ -42,6 +43,28 @@ - [Version 1.5](#v1.5.0.20170207) - [Version 1.4](#v1.4.0.20161015) +## Version 1.44 (released 2025-01-21) +- available on Sandbox: 2025-01-07 +- introduced version 1.44 +- added value `1.44` for _SpecVersion_ +- relax definitions to allow new payment methods for old api versions in these requests: + - [PaymentPage/Assert](index.html#Payment_v1_PaymentPage_Assert) + - [Transaction/Inquire](index.html#Payment_v1_Transaction_Inquire) +- added new function to [Saferpay Management API](index.html#ChapterManagementApi) for deleting Fields AccessTokens +- added new `Tokenization` container to the following requests: + - [PaymentPage\Assert](index.html#Payment_v1_PaymentPage_Assert) + - [Transaction\Authorize](index.html#Payment_v1_Transaction_Authorize) + - [Transaction\AuthorizeDirect](index.html#Payment_v1_Transaction_AuthorizeDirect) + - [Alias\AssertInsert](index.html#Payment_v1_Alias_AssertInsert) + - [Alias\InsertDirect](index.html#Payment_v1_Alias_InsertDirect) + - [Alias\Update](index.html#Payment_v1_Alias_Update) +- added masked token PAN and expiry date to `Card` container to the following requests: + - [Transaction\Authorize](index.html#Payment_v1_Transaction_Authorize) + - [Transaction\AuthorizeDirect](index.html#Payment_v1_Transaction_AuthorizeDirect) + - [Transaction\RefundDirect](index.html#Payment_v1_Transaction_RefundDirect) + - [Transaction\Refund](index.html#Payment_v1_Transaction_Refund) + - [Transactzion\Inquire](index.html#Payment_v1_Transaction_Inquire) + ## Version 1.43 (released 2024-11-12) - available on Sandbox: 2024-10-29 - introduced version 1.43 @@ -60,7 +83,7 @@ - introduced version 1.42 - added value `1.42` for _SpecVersion_ - added iDEAL with AccountHolderName to `PaymentMethodsOptions` of [Transaction/Refund](index.html#Payment_v1_Transaction_Refund) - + ## Version 1.41 (released 2024-07-16) - available on Sandbox: 2024-07-02 - introduced version 1.41 From a35d6322c16d73355ad9146f2520c644a33f7477 Mon Sep 17 00:00:00 2001 From: tkz37 Date: Tue, 7 Jan 2025 08:54:11 +0100 Subject: [PATCH 3/4] SFRP-21837 update version number from 1.43 to 1.44 in create-gh-pages.yml --- .github/workflows/create-gh-pages.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create-gh-pages.yml b/.github/workflows/create-gh-pages.yml index 4b2750d..7e7bfb8 100644 --- a/.github/workflows/create-gh-pages.yml +++ b/.github/workflows/create-gh-pages.yml @@ -1,5 +1,5 @@ name: create gh pages -on: +on: push: branches: - master @@ -17,8 +17,8 @@ jobs: path: _gh_pages - name: build new version page - run: libs/GitHubPagesGenerator.exe -i "${{ github.workspace }}" -s "${{ github.workspace }}/Sitemap.json" -c "${{ github.workspace }}" -o _gh_pages -t "JSON API Spec-Version 1.43" - + run: libs/GitHubPagesGenerator.exe -i "${{ github.workspace }}" -s "${{ github.workspace }}/Sitemap.json" -c "${{ github.workspace }}" -o _gh_pages -t "JSON API Spec-Version 1.44" + - name: push updated gh pages uses: s0/git-publish-subdir-action@develop env: From d34a1431ef5842e3a992ac8b157ac1ba23d5907f Mon Sep 17 00:00:00 2001 From: tkz37 Date: Tue, 7 Jan 2025 10:05:40 +0100 Subject: [PATCH 4/4] SFRP-21837 add alias inquire to changelog --- texts/Changelog.md | 5 +- texts/ChapterAliasStore.md | 212 +++++++++++++++++++++++++++++++++++++ 2 files changed, 215 insertions(+), 2 deletions(-) diff --git a/texts/Changelog.md b/texts/Changelog.md index 3cd81e1..0a597d9 100644 --- a/texts/Changelog.md +++ b/texts/Changelog.md @@ -51,14 +51,15 @@ - [PaymentPage/Assert](index.html#Payment_v1_PaymentPage_Assert) - [Transaction/Inquire](index.html#Payment_v1_Transaction_Inquire) - added new function to [Saferpay Management API](index.html#ChapterManagementApi) for deleting Fields AccessTokens -- added new `Tokenization` container to the following requests: +- added new function [Alias\Inquire](index.html#Payment_v1_Alias_Inquire) +- added new `Tokenization` container to the following responses: - [PaymentPage\Assert](index.html#Payment_v1_PaymentPage_Assert) - [Transaction\Authorize](index.html#Payment_v1_Transaction_Authorize) - [Transaction\AuthorizeDirect](index.html#Payment_v1_Transaction_AuthorizeDirect) - [Alias\AssertInsert](index.html#Payment_v1_Alias_AssertInsert) - [Alias\InsertDirect](index.html#Payment_v1_Alias_InsertDirect) - [Alias\Update](index.html#Payment_v1_Alias_Update) -- added masked token PAN and expiry date to `Card` container to the following requests: +- added masked token PAN and expiry date to `Card` container to the following responses: - [Transaction\Authorize](index.html#Payment_v1_Transaction_Authorize) - [Transaction\AuthorizeDirect](index.html#Payment_v1_Transaction_AuthorizeDirect) - [Transaction\RefundDirect](index.html#Payment_v1_Transaction_RefundDirect) diff --git a/texts/ChapterAliasStore.md b/texts/ChapterAliasStore.md index 58ffaf3..4158d3f 100644 --- a/texts/ChapterAliasStore.md +++ b/texts/ChapterAliasStore.md @@ -1188,4 +1188,216 @@ Id[1..40]
+## Alias Inquire + +POST
+This method can be used to get the latest details of an alias + +--->>> + +

Request URL:

POST: /Payment/v1/Alias/Inquire

+ +<<<--- + +#### Request + + + + + +
+ CardImageUrl
+ + string + +
+
The URL to the image of the payer's physical card.
+ + +
+ ExpMonth
+ + integer + +
+
Month of expiration (eg 4 for April) of the token PAN.
+ + Example: 9 + +
+ ExpYear
+ + integer + +
+
Year of expiration of the token PAN.
+ + Example: 2027 + +
+ Status
+ + string + +
+
The current status of the token PAN by the scheme. If the payer or the issuer terminates the card, the token PAN will be given the status 'DELETED,' and the alias cannot be used for new authorization.
+ +Possible values: ACTIVE, SUSPENDED, DELETED.
+ Example: DELETED +
+ + + + + + + + + + + + + + +
Arguments
+ AliasId
+ + + mandatory, + + string + +
+
The alias for which you want to receive details.
+ +Id[1..40]
+ Example: alias35nfd9mkzfw0x57iwx +
+
+ RequestHeader
+ + + mandatory, + + + object + +
+
General information about the request.
+ + +
+ + +--->>> + +

Example:

+
+{
+  "RequestHeader": {
+    "SpecVersion": "[current Spec-Version]",
+    "CustomerId": "[your customer id]",
+    "RequestId": "[unique request identifier]",
+    "RetryIndicator": 0
+  },
+  "AliasId": "alias35nfd9mkzfw0x57iwx"
+}
+
+ +<<<--- + + +#### Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Arguments
+ Alias
+ + + mandatory, + + + object + +
+
Information about the registered alias.
+ + +
+ CheckResult
+ + + object + +
+
Result of the Check
+ + +
+ PaymentMeans
+ + + mandatory, + + + object + +
+
Information about the registered means of payment
+ + +
+ ResponseHeader
+ + + mandatory, + + + object + +
+
Contains general information about the response.
+ + +
+ Tokenization
+ + + object + +
+
result of external tokenization
+ + +
+ + +--->>> + +

Example:

+
+{
+  "ResponseHeader": {
+    "SpecVersion": "[current Spec-Version]",
+    "RequestId": "[your request id]"
+  },
+  "Alias": {
+    "Id": "alias35nfd9mkzfw0x57iwx",
+    "Lifetime": 1000
+  },
+  "PaymentMeans": {
+    "Brand": {
+      "PaymentMethod": "VISA",
+      "Name": "VISA Saferpay Test"
+    },
+    "DisplayText": "9123 45xx xxxx 1234",
+    "Card": {
+      "MaskedNumber": "912345xxxxxx1234",
+      "ExpYear": 2015,
+      "ExpMonth": 9,
+      "HolderName": "Max Mustermann",
+      "CountryCode": "CH"
+    }
+  }
+}
+
+ +<<<--- + + + + + +