INTEGRATION

Getting Started

CHARGES

Authorization

INTEGRATION

Authorization

When submitting a charge, it is essential to send in the correct intent and to take into account the differences in authorizations:

  • Final authorization

  • Pre-authorization

  • Incremental authorization

Next to these authorization types, the following two subjects are also essential to take into account when submitting authorizations:

  • Address Verification Service (AVS)

  • Cardholder name restrictions

Final Authorization

A final authorization is sent by setting purchase as intent in the charge type. This is used when the amount is known and fixed before sending in the charge request for authorization. This means the amount can no longer be adjusted after authorization, and the charge is expected to be cleared according to the Card Network rules (Mastercard: 3 days, Visa: 7 days).

Pre-Authorization

Pre-authorization is selected by using reservation as intent when creating a charge. This is used when authorization is requested for an estimated amount, the authorization is expected to be adjusted, or the transaction will not likely be cleared within a prescribed number of calendar days. The clearing window for pre-authorization is often much longer. Example scenarios are:

  • An e-commerce merchant would like to obtain authorization for an item that might take more than 7 calendar days to become available in stock.

  • A travel or hotel merchant would like to obtain authorization for a charge, the final amount of which will likely still be adjusted before the charge is submitted for clearing.

Incremental Authorization

Incremental authorization does not replace the original pre-authorization; it is added to the previously authorized amount. An incremental authorization is sent by referencing the charge key from the original pre-authorization, which is only possible if the reference charge has not been cleared. Multiple incremental authorizations can be performed. For that, you use the Increment endpoint and only send in the replacement amount, which should become the new authorization amount. If the final amount is lower than estimated in the Pre-Authorization charge, a reversal must be sent with the difference, and the final amount must be cleared. The validity of an incremental authorization is similar to that of a Pre-Authorization; please see the table for more information.

Authorization Validity

Type

Mastercard

Visa

Final authorization

7 days

7 Days - CNP
1 day - CP

Pre-authorization

30 days

31 days - Lodging, Vehicle Rental, Cruise Lines
7 days - CNP, Transportation & Rental merchants (in the U.S. 3 days)
1 day - CP

For example, A hotel merchant would like to send an incremental authorization after the initial Pre-Authorization when a client has used additional paid services.

Address Verification Service

The Address Verification Service (AVS) is a functionality provided by card networks and issuers to merchants to detect suspicious credit card transactions and prevent credit card fraud.

Silverflow offers Address Verification Services (AVS) functionality on the platform. AVS is a tool that allows merchants and acquirers, especially those operating in an e-commerce environment, to compare various subfields such as postal code, name, address, email, and phone number provided by the customer at the point of sale with cardholder information on file with the issuer. When used correctly, AVS can significantly improve authorization rate and is commonly used in the US, the UK, and Canada.

AVS with Silverflow is supported for Visa and Mastercard transactions. Card issuers in the United States, Canada, and the United Kingdom must support AVS verification requests when submitted; however, using AVS is not mandatory for acquirers.

How to Use AVS with Silverflow

  1. Ensure you collect the cardholder's billing address as part of the checkout process.

  2. When calling the POST/charges endpoint as part of the authorization flow, ensure that optional field avs:true

  3. When avs:true, billingAddress is required

  4. Silverflow will include this information in the authorization request passed to the issuer, which then compares these details to the address they have on record for the cardholder.

AVS Example Request

AVS Response
Silverflow will provide the direct card network AVS result code back to the agent in the charge response under authorizationIsoFields in the avsResponse field for Mastercard or the avsResultCode field for Visa transactions.

Visa AVS Response Codes

Y

AVS full match

A

AVS street address only (partial match)

Z

AVS postal/zip code only (partial match)

N

AVS non-match

R

AVS indeterminate outcome (retry)

U

AVS unable to verify

Mastercard AVS Response Codes

A

Address matches, postal code does not

N

Neither address nor postal code matches

M

Street addresses and postal code match

R

Retry, system unable to process

S

AVS currently not supported

U

No data from issuer/Authorization Platform

W

For U.S. addresses, nine-digit postal code matches, address does not; for address outside the U.S., postal code matches, address does not

X

For U.S. addresses, nine-digit postal code and address matches; for addresses outside the U.S., postal code and address match

Y

For U.S. addresses, five-digit postal code and address matches

Z

For U.S. addresses, five-digit postal code matches, address does not

Cardholder name restrictions

Although the Silverflow platform is, in principle, able to handle a wide array of character sets, downstream systems such as card network authentication, authorization, and clearing systems only partially accept ISO/IEC 8859 character encoding.

The allowed characters are displayed in the regex on the card.holderName object on the API documentation. Everything outside of this definition will not pass API input validation. This, for example, does include Latin-1 Supplement characters (from À to Ö, Ø to ö, and ø to ÿ) as allowable characters.

Please note that the exact definition of what is allowed on the downstream card network systems is rather diverse. The Silverflow platform will try to adhere to the input as much as possible, but there could be instances where some characters are not accepted by the card network. In such a case, the platform will continue and will replace this character with the unicode substitution character.