General and special cases

This chapter covers general and special cases, that do not apply to one payment method, but also do not apply in any case, for example special behaviors in case of certain acquirers and special features, accross multiple payment methods, that need a special integration. This chapter covers these cases.

Partial approvals

A partial approval is best explained with an example:

A customer comes to your shop and orders goods worth 100 Euros.

He/she enters the card details, and Saferpay authorizes the card. During authorization, the card holder's bank checks the solvency of the card holder and concludes that only a maximum of 80 Euros can be authorized.

Usually, such a transaction would be declined. However, if the merchant requests a partial approval, the card can be authorized for 80 Euros.

This sort of authorization type is best suited for goods that are sold in bulk, like for example screws, certain food items, or petrol at a gas station.

Not all Issuers may support this feature. If partial approvals are not supported, either the full amount will be authorized, or the transaction will be declined.

Requirements

  • Partial approvals can only be requested with SpecVersion 1.29, or higher.

  • Partial approvals are only available for Visa/VPay, Mastercard and Maestro.

Integration

A partial approval can only be requested when using either the Authorize Direct Request, or the Transaction Interface integration In the request, the parameter Payment.Options.AllowPartialAuthorization must be set to true.

Please make sure that you have read the PSD2 chapter, since an Authorize Direct request is classified as a Merchant Initiated Transaction (MIT), if you intent to use this request!

The merchant must make sure that his inventory is adjusted accordingly, since less will be payed than initially requested.

If a partial approval is executed, DCC will not be performed!

Example of Authorize Direct

{
  "RequestHeader": {
    "SpecVersion": "1.29",
    "CustomerId": "[your customer id]",
    "RequestId": "8cf6d15a041ba515d90ee191257d9f77",
    "RetryIndicator": 0,
    "ClientInfo": {
      "ShopInfo": "My Shop",
      "OsInfo": "Windows Server 2013"
    }
  },
  "TerminalId": "[your Terminal id]",
  "Payment": {
    "Amount": {
      "Value": "10000",
      "CurrencyCode": "EUR"
    },
    "OrderId": "Order_2",
    "Description": "Test Order #2",
    "Options": {
      "AllowPartialAuthorization": true
    }
  },
  "Payer": {
    "IpAddress": "192.168.178.55",
    "LanguageCode": "en"
  },
  "PaymentMeans": {
    "Alias": {
      "Id": "77b828c0975498e986e1663489ceacdc"
    }
  }
}

Example for the Transaction Interface

Since the Transaction Interface consists of more, than just one request, you have to first request a partial approval with Transaction Initialize:

{
  "RequestHeader": {
    "SpecVersion": "1.29",
    "CustomerId": "[your customer id]",
    "RequestId": "ea665434145edac8652a2aa310935f73",
    "RetryIndicator": 0
  },
  "TerminalId": "[your terminal id]",
  "Payment": {
    "Amount": {
      "Value": "10000",
      "CurrencyCode": "CHF"
    },
    "Options": {
      "AllowPartialAuthorization": true
    }
  },
  "Payer": {
    "LanguageCode": "en"
  },
  "ReturnUrls": {
    "Success": "[your shop payment success url]",
    "Fail": "[your shop payment fail url]"
  },
  "Styling": {
    "CssUrl": "[your shop css url]"
  }
}

Transaction Authorize will then return the authorized amount:

{
  "ResponseHeader": {
    "SpecVersion": "1.29",
    "RequestId": "47f456c9d051e58d7c046068cc0537c1"
  },
  "Transaction": {
    "Type": "PAYMENT",
    "Status": "AUTHORIZED",
    "Id": "78TrOlbjbhA2vASMbxUUAliO3gPk",
    "Date": "2022-25-07T11:43:07.646+01:00",
    "Amount": {
      "Value": "5000",
      "CurrencyCode": "EUR"
    },
    "OrderId": "Order_3",
    "AcquirerName": "VISA Saferpay Test",
    "AcquirerReference": "05718468253",
    "SixTransactionReference": "0:0:3:78TrOlbjbhA2vASMbxUUAliO3gPk",
    "ApprovalCode": "715453"
  },
  "PaymentMeans": {
    "Brand": {
      "PaymentMethod": "VISA",
      "Name": "VISA"
    },
    "DisplayText": "xxxx xxxx xxxx 0013",
    "Card": {
      "MaskedNumber": "xxxxxxxxxxxx0013",
      "ExpYear": 2022,
      "ExpMonth": 2,
      "HolderName": "test",
      "CountryCode": "DE",
      "HashValue": "E1DB6CE1CC017DCB651E7256650023698E58E158"
    }
  },
  "Payer": {
    "IpAddress": "192.168.178.55"
  }
}

Scheme tokens

Saferpay also supports the direct insertion of decrypted Scheme-tokens, provided by any external provider (For example Apple Pay). This way, it is possible to provide a more seamless and integrated solution. However in this case, the integration is realized via the Transaction Interface. The overall transaction-flow will stay the same. The only thing you must take care of is, that you provide the necessary data, within the PaymentMeans.SchemeToken container, through the Initialization request.

{
  "RequestHeader": {
    "SpecVersion": "[current Spec-Version]",
    "CustomerId": "[your customer id]",
    "RequestId": "[unique request id]",
    "RetryIndicator": 0
  },
  "TerminalId": "[your terminal id]",
  "Payment": {
    "Amount": {
      "Value": "100",
      "CurrencyCode": "CHF"
    }
  },
  "PaymentMeans": {
    "SchemeToken": {
      "Number": [DECRYPTED TOKEN NUMBER],
      "ExpMonth": "03",
      "ExpYear: "2021",
      "AuthValue": "AAABBIIFmAAAAAAAAAAAAAAAAAA="
    }
  },
  "Payer": {
    "LanguageCode": "en"
  },
  "ReturnUrls": {
    "Success": "[your shop payment success url]",
    "Fail": "[your shop payment fail url]"
  },
  "Styling": {
    "CssUrl": "[your shop css url]"
  }
}

Special Cases

Though we at Worldline do offer the possibility to process credit cards, it sometimes is necessary to involve third parties in order to process credit cards in certain countries and regions. This chapter will cover the special characteristics you need to consider, if you want to use Saferpay with these processors.

Credit Cards

Chase Paymentech

Chase Paymentech is a US credit card processor with office in Dallas, Texas. Worldline offers the possibility to process credit cards over this processor, directly in the US.

Please take note to the following restrictions and characteristics.

  • OrderId: Due to technical restrictions, the OrderId will not be forwarded to Chase to be shown on your reconciliation files from chase. Saferpay will instead fill it with a unique, increasing, numeric value, to meet Chase Paymentechs requirements. Therefore, a later identification through the OrderId will not be possible.

Last updated