Merchants can utilise PayU fraud services by providing additional data and agreeing commercials with PayU. PayU’s fraud system returns 3 possible outcomes for each transaction: APPROVE, DENY, CHALLENGE. For CHALLENGE, PayU’s fraud team can manually review the transaction and approve or reject the transaction. During onboarding, the merchant is able to configure whether to attempt payment in the following scenarios:
CHALLENGE response from Fraud system (ProcessFraudChallenge) | E-commerce merchants may wish to still take payment and put the order on hold (pending case manager review) before shipping. |
Validation failure on fraud data (ProcessFraudValidationFailure) | When validation fails, a fraud check is not completed. This should usually just be related to a specific user. As a result, taking payment automatically should only expose the merchant to risk on this transaction |
Fraud system is down (ProcessFraudDown) | If the fraud system was to ever go down, then the merchant may wish to halt transactions. All transactions would then not be going through the fraud system |
All payments with an associated fraud check have 3 possible high level outcomes with multiple fraud results for each outcome.
Payment Successful
| ||||||||||||
Payment Failed
| ||||||||||||
Fraud Failed & Payment Not Attempted
|
PayU will return a ResultCode and a Fraud.ResultCode for each transaction. The ResultCode provides the result of the payment transaction and the Fraud.ResultCode provides the result of the fraud check. When a fraud check returns a CHALLENGE, the result of the case review will update the Fraud.ResultCode. The FraudResultCode therefore holds the fraud state of the transaction
1.1.2 Additional Required Fields for Fraud
PayU can apply a synchronous fraud check when a RESERVE or PAYMENT transaction type are completed. If a fraud check is to be completed, additional customer and basket information is required to calculate a fraud score.
AN = Alphanumeric, N = numeric, A = Alpha. Numbers represent min and max lengths
Parameter Name | Description | Data type | Mandatory | |||||||||||||||||||||
Customer |
| |||||||||||||||||||||||
Address1 | Customer address line 1 | AN : 1 – 30 | N | |||||||||||||||||||||
Address2 | Customer address line 2 | AN : 1 – 30 | N | |||||||||||||||||||||
AddressCity | Customer address city | A : 1 – 20 | N | |||||||||||||||||||||
StateCode | Customer address state code | A : 2 – 2 | N | |||||||||||||||||||||
CountryOfResidence | Customer Country Code - ISO-Alpha 3 | A : 3 – 3 | N | |||||||||||||||||||||
PostCode | Customer Post/Zip Code (remove '-' from field) | AN : 1 -9 | N | |||||||||||||||||||||
IP | Source IP of customer - Format: nnn.nnn.nnn.nnn | A : 7 – 45 | Y | |||||||||||||||||||||
Known | Previous Customer Flag - format Y or N | A : 1 – 1 | N | |||||||||||||||||||||
Fraud |
| |||||||||||||||||||||||
CheckFraudOverride | Used to override the default merchant fraud setting. If set to true, no fraud check will be completed | A : 4 – 4 | N | |||||||||||||||||||||
PcFingerPrint | See separate guide for full integration details | AN : 1 - 4000 | N | |||||||||||||||||||||
MerchantWebSite | Merchant source website domain | AN : 1 – 60 | Y | |||||||||||||||||||||
Basket |
| |||||||||||||||||||||||
ShippingId | Shipping ID | AN: 1 - 16 | N | |||||||||||||||||||||
ShppingFirstName | Shipping First Name | AN: 1 – 30 | N | |||||||||||||||||||||
ShippingLastName | Shipping Last Name | AN: 1 – 30 | N | |||||||||||||||||||||
ShippingEmail | Shipping Email Address - value must contain @ | AN: 1 – 45 | N | |||||||||||||||||||||
ShippingAddress1 | Shipping address line 1 | AN: 1 – 30 | N | |||||||||||||||||||||
ShippingAddress2 | Shipping address line 2 | AN: 1 – 30 | N | |||||||||||||||||||||
ShippingAddressCity | Shipping address city | A: 1 - 20 | N | |||||||||||||||||||||
ShippingStateCode | Shipping address state code | A : 2 – 2 | N | |||||||||||||||||||||
ShippingCountryCode | Shipping Country Code - ISO-Alpha 3 | A: 3 – 3 | N | |||||||||||||||||||||
ShippingPostCode | Shipping Post/Zip Code (remove '-' from field) | AN : 1 - 9 | N | |||||||||||||||||||||
ShippingPhone | Shipping Phone | N : 11 – 19 | N | |||||||||||||||||||||
ShippingFax | Shipping Fax | N : 11 – 19 | N | |||||||||||||||||||||
ShippingMethod |
| A : 1 - 1 | N | |||||||||||||||||||||
Basket – Item Array | |||
RecipientFirstName | Recipient First Name | AN : 1 - 30 | N |
RecipientLastName | Recipient Last Name | AN : 1 – 30 | N |
RecipientEmail | Recipient email address | AN : 1 – 45 | N |
RecipientAddress1 | Recipient Address Line 1 | AN : 1 – 30 | N |
RecipientAddress2 | Recipient Address Line 2 | AN : 1 – 30 | N |
RecipientCity | Recipient City | A : 1 – 20 | N |
RecipientStateCode | Recipient State/Province Code | A : 2 - 2 | N |
RecipientCountryCode | Recipient Country Code - ISO 3 Digit Alpha | A : 3 – 3 | N |
RecipientPostalCode | Recipient Post/Zip code (remove '-' from field) | AN : 1 – 9 | N |
RecipientPhone | Recipient Phone Number | N : 9 – 19 | N |
ProductCode | Item Product Code | AN : 1 – 12 | N |
Sku | Item SKU | AN : 1 – 12 | N |
Description | Item description | AN : 1 – 26 | N |
Quantity | Item quantity | N : 1 – 8 | N |
CostAmount | Item cost amount - R5.00 should be sent as 500 | N : 2 – 8 | N |
Amount | Total Item Amount (item qty x item cost amt), no decimal | N : 2 – 12 | N |
ShippingNumber | Item shiping/tracking number | AN : 1 – 19 | N |
GiftMessage | Item gift message | AN : 1 - 160 | N |
1.1.3 Response Parameters
Parameter Name | Mandatory | Description | Values |
GetTransactionResponse | |||
Stage | Y | Allows the merchant to stage a transaction. Values: True / False | Boolean |
MerchantReference | Y | Merchant identifier for transaction. | VarChar (64) |
Successful | Y | Boolean value to determine if the transaction was successful or not. | Boolean |
PointOfFailure | N | Indicated on failed transactions where the point of failure was | VarChar (64) |
ResultCode | Y | Result code returned by PayU for transaction | Integer |
ResultMessage | Y | Result message relating to result code for transaction | String |
DisplayMessage | N | Customer friendly message to display in a browser to the customer | String |
PayUReference | Y | PayU unique reference number for transaction | VarChar (64) |
Basket | |||
Description | Y | Basket description that will show on PayU | VarChar (64) |
AmountInCents | Y | Total amount of the basket in cents. Format as 1000 for R10.00 | Integer |
CurrencyCode | Y | Currency code defined by PayU. Example: ZAR | String |
PaymentMethodsUsed | |||
Information | Y | Payment method information (example: Loyalty program name) | VarChar (64) |
NameOnCard | N | Card holder name for a credit card | String |
CardNumber | N | Masked Credit Card number | VarChar (64) |
AmountInCents | Y | Amount in cents for payment method. Format as 1000 for R10.00 | Integer |
FraudIndex | N | If credit card is the payment method, this will be the fraud index returned from SafeShop. | Integer |
Reference | N | Will be returned upon an EFT transaction request | VarChar (64) |
Payu offers an optional online fraud prevention service to its merchant and takes advantage of the ReD Shield® online fraud prevention service from ReD, a leading global provider of fraud prevention and payment services.
The online guide, available here, aims to provide the neccesary technical information as to how the Fraud process works and the extra fields required to make use of this service. For more information to implement the guidelines on the Enterprise APi integration method please refer here.