Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Available for integration with Braintree Payments and Eway. For more information on this integration, go to the Accertify website.Image Removed


Accertify API Integration Basics

  • Data Transport Method: HTTPS POST
  • Data: JSON
  • Authentication: Basic Authentication sent in base64-encoded and include as part of HTTPS header message
  • Actions: Post-authorisation - transactions that have already been authorised by the payment provider, e.g., Braintree. 
  • Fraud API Version: 1.0

Fraud Check Request Data


Expand
titleView an example of the API action ...


Code Block
collapsetrue
{
  "transaction": {
    "transactionId": "1a31d278-b8e3-4375-bd5a-531215f8ca3e",
    "transactionType": "Post-Authorization",
    "transactionDateTime": "2022-07-04T14:47:15+10:00",
    "cartId": "100104012",
    "transactionTotalAmount": 660.08,
    "taxAmount": 60.01,
    "salesChannel": "Web",
    "websiteUrl": "https://www.commercevision.business",
    "ipAddress": "139.216.143.154",
    "currencyCode": "AUD",
    "isGift": "False",
    "billing": {
      "billingFirstName": "Jane",
      "billingLastName": "Smith",
      "billingCompanyName": "CV Customer Ltd",
      "billingEmailAddress": "jane.smth.cv@gmail.com",
      "billingAddress": "Factory 1 6000 Kevlar St",
      "billingCity": "Melbourne",
      "billingStateCode": "VIC",
      "billingPostalCode": "3195",
      "billingCountryCode": "AU",
      "billingPhoneNumber": "0401341205",
      "billingPhoneNumberCountryCode": "0061",
      "primaryPaymentType": "Credit Card",
      "purchaseType": "Physical Items",
      "cards": {
        "card": [
          {
            "cardholderName-D": "Jane Smith",
            "cardNumber-D": "433687******3000",
            "binIin-D": "433687",
            "cardAuthorizedAmount-D": 660.08,
            "cardExpireDate-D": "08-24",
            "cardAuthorizationDate-D": "2022-07-04T04:47:14Z",
            "isPre-AuthorizationReject-D": "False",
            "cardAvsResponse-D": "Matched",
            "cardCvvResponse-D": "Matched"
          }
        ]
      }
    },
    "items": {
      "item": [
        {
          "itemNumber-D": "CV103",
          "itemDescription-D": "Weights Machine",
          "itemAmount-D": 660.08,
          "itemQuantity-D": 2,
          "itemBrandName-D": "",
          "itemCategory-D": "Fitness",
          "productCondition-D": "New",
          "isGiftCardPurchased-D": "False"
        }
      ]
    },
    "shippings": {
      "shipping": [
        {
          "shippingFirstName-D": "Jane",
          "shippingLastName-D": "Smith",
          "shippingBusinessName-D": "CV Customer Pty Ltd",
          "shippingLocationType-D": "Business",
          "shippingAddress-D": "Factory 1 6000 Kevlar St",
          "shippingCity-D": "Melbourne",
          "shippingStateCode-D": "VIC",
          "shippingPostalCode-D": "3195",
          "shippingCountryCode-D": "AU",
          "shippingPhoneNumber-D": "0433341240",
          "shippingPhoneNumberCountryCode-D": "0061",
          "shippingEmailAddress-D": "jane.smth.cv@gmail.com",
          "shippingCompany-D": "CNC_1",
          "shippingMethod-D": "Other",
          "deliveryFeeType-D": "Other",
          "pickupVerificationMethod-D": "ID Card"
        }
      ]
    },
    "deviceInfo": {
      "deviceTransactionId": "DID-b49aa724-bba4-4e48-bea5-8359ce8203d3"
    },
    "actionCode": "Review"
  }
}





Panel

On this page:

Table of Contents

Recommendation result of the Fraud Screening from Accertify is:

  • Accept – Transaction is considered non-fradulent
  • Reject – Transaction considered fradulent
  • Review – Manual review is required on Accertify´s backend by either Accertify or the merchant, purpose is an extra manual check and taking a final decision

1. Enable Credit Card Fraud Provider

In the CMS, go to SettingsFeature ManagementPayment & Checkout
Enable Credit Card Fraud Provider, then select Configure.
Image Removed
Toggle ON Credit Card Fraud Enabled.
Select Accertify as the provider. 
Image RemovedClick Save.
In Configuration Settings, enter the credentials.
Toggle ON Send Order Review Email Notifications for emails to be sent when:
  • a payment needs further review
  • a reviewed payment is rejected,
    For one or more internal staff to be cc'ed or bcc'ed when emails are sent, enter one email at a time and press Enter
    (optional) To edit either email template, click either email template button.
    Image Removed
    Tip

    You can always access them later through the menu: ContentEmails

    • Order Review Email template
    • Order Rejected Email template
  • Click Save.

  • 2. Edit Email templates (optional)

    As well as other parts of the email, the Review and Rejected messages can be edited. 

    Image Removed

    See: Order Review Notes widget; Order Review Rejected Notes widget

    indent10px




    JSON Data Fields


    Must a field be sent? R = Required; O = Optional; CR = Conditionally Required

    Transaction details

    FieldCV fieldFormatDescriptionValue

    R, O or CR

    transactionn/aarrayAn array containing the basic payment transaction data
    "transaction": 
    { "transactionId": "1a31d278-b8e3-4375-bd5a-531215f8ca3e",
    "transactionType": "Post-Authorization",
    "transactionDateTime": "2022-07-04T14:47:15+10:00",
    "cartId": "100104012",
    "transactionTotalAmount": 660.08,
    "taxAmount": 60.01,
    "salesChannel": "Web",
    "websiteUrl": "https://www.commercevision.business",
    "ipAddress": "139.216.143.154",
    "currencyCode": "AUD",
    "isGift": "False",
    R
    transactionIdTransactionIDstringGuid generated to uniquely identify Accertify transaction.R
    transactionTypen/astring

    Send transaction to Accertify before or after authorisation with payment provider/bank.

    Note: only post-authorisation available.

    Default: Post-Authorization

    R

    transactionDateTimeDatetime.Nowdatetime

    Generated date and time of transaction. In RFC3339 format: yyyy-MM-dd'T'HH:mm:ssXXX

    Note: no future dates accepted.

    Example: 2022-03-11T17:07:24-07:00R
    cartIdSoOrderNostringOrder number generated on website for the session. 
    O
    transactionTotalAmountorder.OrderTotalAmountdecimalTotal amount of transaction, including shipping and taxes, in local currency.
    R
    taxAmountOrderTotalTaxdecimalTax amount for the transaction, in local currency.  
    O
    salesChannelSalesChannel.WebstringSales channel where transaction took place.

    Options: Call Centre, Kiosk, Web, Mobile App, Other

    Default: Web

    R
    websiteURLSystemControl.Live.WebSiteURL

    string


    URL of website that captured the transaction.

    max. = 2048 char


    O
    ipAddressUtil.RequestIpAddressstring

    User's IP captured in IPv4 or IPv6 formats. 

    Required for channels: Kiosk, Mobile App, Web, Other

    Examples: 
    • IPv4: 10.12.12.123
    • IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 
    CR
    currencyCodeorder.Customer.CurrencyCodeToUsestring

    User's local currency in ISO 4217 format.  

    3 character alpha code.

    Example: AUDR
    isGift
    stringWhether transaction was marked as a gift.

    Default: False

    Options: True, False

    O

    Billing (object)

    Contains billing array and payment type details. 


    DataCV FieldFormatDescriptionValueR, O or  CR
    billing

    n/a

    objectArray introducing the purchaser's name, billing address, order delivery address and some captured payment details
    "Billing": 
    {"billingFirstName":"Andrew",
    "billingLastName":"Chia",
    "billingCompanyName":"CV Customer",
    "billingEmailAddress":"info@cvcustomer.com.au",
    "billingAddress":"6000 Kevlar St",
    "billingCity":"Dandenong North",
    "billingStateCode":"VIC",
    "billingPostalCode":"3175",
    "billingCountryCode":"AU",
    "billingPhoneNumber":"0430924121",
    "billingPhoneNumberCountryCode":"0061",
    "primaryPaymentType":"Credit Card",
    "purchaseType":"Physical Items",
    R
    billingFirstName

    order.SoOrderingUser.FirstName

    Fallback: PSO.GetNamesForOrder()

    stringBilling first name entered for the order.  If Sales Order User First Name unavailable, R
    billingLastName

    order.SoOrderingUser.Surname

    Fallback: order.GetNamesForOrder

    string

    Billing last name entered for the order. If Sales Order User Surname unavailable, name is  


    R

    billingEmailAddressorder.EmailAddressForGuestUser / user.ValidEmailAddressstringIf guest order, use email address entered for guest user; if logged in user, use new or saved email address.
    R
    billingAddressorder.SoBillAddr2 → order.SoDelAddr2 → user.SoBillAddr230 cha stringStreet number and name of billing address entered. If no billing address, falls back to delivery address, then user's saved address.
    R
    billingAddressLine2

    Fall back in ascending order:

    order.SoBillAddr2 → order.SoDelAddr2 → user.SoBillAddr2

    30 cha string

    O
    billingCityorder.SoBillSuburb → order.SoDelSuburb → user.SoBillSuburbstringBilling city, town or suburb entered. If data from this field is unavailable or invalid, falls back to that entered for delivery address, then user's saved suburb/town.
    R
    billingStateCodeorder.SoBillState → order.SoDelState → user.SoBillState string

    State, territory or region code in ISO 3166-2. From 2-5 characters.

    Note: Required if used in the billing CountryCode.

    For Australia: ACT. NSW, NT, QLD, SA, TAS, VIC, WACR
    billingPostalCodeorder.SoBillPostcode → order.SoDelPostcode → user.SoBillPostcodestring

    R
    billingCountryCode

    soBillCountry

    Currently hard-coded.

    stringTwo digit (ISO-3166-1) country code for billing address. Example: AU
    R
    billingPhoneNumber

    Note: Currently hard-coded.

    order.ContactPhoneNumber → order.DelPhone → user.PhoneNumber

    integerBilling phone number entered. Must exclude Phone country code. Numeric only, max. = 25, no spaces or special characters.
    R
    billingPhoneNumberCountryCode

    Currently hard-coded.

    Note: May need 3rd party dll to identify phone country number and code.

    stringCountry code of billing phone number.

    Example: '0061'

    R
    primaryPaymentType
    stringPurchaser's primary method of payment.Credit Card, Debit Card, Virtual Card, Gift Card, eWalletR
    purchaseType
    string

    Type of items purchased. If order contains a mixture, 'Physical Items' will default.

    Note: currently only 'Physical Items' and 'Digital Items' supported.

    Options: Physical Items, Digital Items, Services, OtherR

    If PrimaryPaymentType = Credit Card, Debit Card, Virtual Card

    Relevant fields when these payment types are used.


    FieldCV fieldFormatDescriptionValueR, O or CR
    cardsPaymentTypeCardsobjectArray with one or more card arrays for required fields for this payment type.
    "cards": {"card":
    [{"cardholderName-D":"Andrew Chia",
    "cardNumber-D":"512127******1518",
    "binIin-D":"512127",
    "cardAuthorizedAmount-D":1347.91,
    "cardExpireDate-D":"07-25",
    "cardAuthorizationDate-D":"2022-09-15T11:03:46Z",
    "isPre-AuthorizationReject-D":"False",
    "cardAvsResponse-D":"Matched",
    "cardCvvResponse-D":"Matched"
    CR
    cardPaymentTypeCardarray

    An array introducing card fields. data from an object returned by Braintree/Eway.  

    CR
    cardholderName-D
    stringCardholder's name.
    CR
    cardNumber-D
    integer

    Masked credit card number. Includes tokenised card number.

    Example: 512127******1518

    CR

    binIin-DPaymentTypeCardBinIinbin

    Leading six to eleven digits of the card number.

    Note: For 6 - 11 digit BIN lookups, Accertify will query the full/encrypted Payment Card Number (PAN) 

    Example: 512127CR
    cardAuthorizedAmount-DPaymentAmountDecimalAmount authorised for payment in the currency specified in the transaction's currencyCode field. 
    CR
    cardExpireDate-DExpirationMonth + "-" + ExpirationYearDateTimeCredit card expiry date (MM-YY)Example: 08-22CR
    cardAuthorizationDate-DCreatedAtDateTimeCard authorisation request date and time.Example: 2022-07-04T04:47:14ZO
    isPre-AuthorizationReject-D
    string

    Whether the transaction is sent to Accertify for checking before or after bank/payment provider confirmation.

    Pre-Authorisation is not currently used so the value will always be 'False'.

    Default value: FalseO
    cardAvsResponse-DCardAvsResponseD.MatchedstringWhether card expiry date user entered matches the card.Options: Matched, Not Matched CR
    cardCvvResponse-DCardCvvResponseD.MatchedstringWhether CVV user entered matches the card.  Options: Matched, Not Matched CR

    If PrimaryPaymentType = eWallet

    Relevant fields when eWallet payment types are used.


    FieldCV fieldFormatDescriptionValueR, O or CR
    walletsPaymentTypeEWalletsobject

    Object with one or more ewallet arrays. 

    Image Added

    CR
    walletPaymentTypeEwalletarray

    An array introducing ewallet fields. Data returned from Braintree.  

    CR
    walletType-D n/astring

    Type of wallet used for payment.

    Options: Venmo, Google Pay, ApplePay, PaypalCR
    walletAccountHolderName-D 
    • Paypal: PayerFirstName + PayerLastName 
    • Apple Pay: CardholderName 
    • Google Pay: FirstName + LastName
    string

    Name of the person who owns the wallet account.


    CR

    walletAccountNumber-D
    • Paypal: PayerId 
    • Apple Pay: GlobalId
    • Google Pay: GlobalId
    string

    Account number of the wallet account.


    CR
    walletEmailAddress-D
    • Paypal: PayerEmail
    • Apple Pay: EmailAddress
    • Google Pay: EmailAddress
    stringEmail address associated with the wallet account. 
    CR
    walletAmount-D PaymentAmountdecimalAmount paid using the wallet account in the currency specified by the transaction currencyCode field.
    CR
    walletStatus-DPaymentStatusstring

    Status of the wallet account.  

    Note: required only if eWallet

    Options: Active, Pending, InactiveCR

    If PrimaryPaymentType = Giftcard

    Required fields when giftcards are used.

    FieldCV fieldFormatDescriptionValueR, O or CR
    giftCardsn/aobject

    Array introducing one or more giftCard arrays. 
    Note: required if  primaryPaymentType=Gift Card.
     

    Image Added

    CR
    giftCardn/aarray

    Array introducing giftCard fields. 

    CR
    giftCardNumber-D
    string

    Number associated with the gift card.


    O
    giftCardAmount-Dn/adecimal

    Amount applied against the gift card in the currency specified by the transaction currencyCode field.  


    CR

    Items Purchased


    FieldCV FieldFormatDescriptionValueR, O or CR
    itemsn/aObjectObject containing arrays of products purchased.
    "items":{
    "item": [{"itemNumber-D":"584213",
    "itemDescription-D":"BOSE SOUNDBAR 900",
    "itemAmount-D":1347.91,
    "itemQuantity-D":1.0000,
    "itemBrandName-D":"Bose",
    "itemCategory-D":"Soundbars",
    "productCondition-D":"New",
    "isGiftCardPurchased-D":"False"
    }]
    },
    R
    itemn/aArrayAn array containing details of a product in the order.R
    itemNumber-DorderLine.StockCodestringProduct number.
    R
    itemDescription-DorderLine.Descriptionmax. 127 char  string

    Product description.


    R

    itemAmount-DorderLine.OrderLineAmountdecimalProduct amount.
    O
    itemQuantity-DorderLine.OrderedQtydecimalProduct quantity.
    O
    itemBrandName-DorderLine.Product.BrandTextstringProduct brandname.
    O
    itemCategory-DorderLine.Product.categoryDescriptionstringProduct category.
    O
    productCondition-Dn/astringProduct condition. Options: NewO
    isGiftCardPurchased-Dline.Product.IsGiveXGiftCardstringWhether a gift card was used.Options: True, FalseO

    Shipping


    FieldCV fieldFormatDescriptionValueR, O or CR
    shippingsn/aObjectObject containing an array with shipping data.
    "shippings":{
    "shipping":[{
    "shippingFirstName-D":"Andrew",
    "shippingLastName-D":"Chia",
    "shippingBusinessName-D":"ACE Consulting",
    "shippingLocationType-D":"Business",
    "shippingAddress-D":"2 Oakwood Avenue",
    "shippingCity-D":"Dandenong North",
    "shippingStateCode-D":"VIC",
    "shippingPostalCode-D":"3175",
    "shippingCountryCode-D":"AU",
    "shippingPhoneNumber-D":"0430924122",
    "shippingPhoneNumberCountryCode-D":"0061",
    "shippingEmailAddress-D":"info@acec.com.au",
    "shippingCompany-D":"CNC_5",
    "shippingMethod-D":"Other",
    "deliveryFeeType-D":"Other",
    "pickupVerificationMethod-D":"ID Card"}]},
    R
    shippingn.aArrayArray containing shipping details.R
    shippingFirstName-DFrom PSO.GetNamesForOrder(): order.ContactFirstName → user.FirstName → extracted from order.SoBillAddr1string

    First name of the person entered for receiving the shipment. Data from first name entered for order. Falls back to saved first name of user, then first billing address field.

    Note: Required if purchaseType=Physical Items


    CR
    shippingLastName-DFrom PSO.GetNamesForOrder(): order.ContactLastName → user.Surname → extracted from order.SoBillAddr1string

    Last name of the person entered for receiving the shipment. 

    Note: Required if purchaseType=Physical Items


    CR

    shippingBusinessName-Dorder.SoDelAddr1 → order.SoBillAddr1 → user.DeliveryAddress1stringName of the company receiving the shipment if the recipient is a company and not an individual. Note:  Required if shippingLocationType= Business or Site-to-Store
    CR
    shippingLocationType-DBusinessstring


    shippingAddress-Dorder.SoDelAddr2 → order.SoBillAddr2 → user.DeliveryAddress2

    30 cha

    string

    Address, street name, and building number as applicable to the person receiving the shipment.  

    Note: Required if purchaseType=Physical Items


    CR
    shippingCity-Dorder[AddressRuleSets.AssignmentsSuburbField] → order.SoDelAddr5 → order.SoDelSuburb → user.DeliverySuburbstring

    Customer city, town, or locality as applicable of the person receiving the shipment.  

    Note: Required if shippingAddress-D exists.


    CR
    shippingStateCode-D

    order[AddressRuleSets.AssignmentsStateField] → order.SoDelAddr4 → order.SoDelState → user.DeliveryState


    Note: This value is converted into the state code using a mapping list from SystemControl.Live.StateCodeAndNameMapping (eg. Queensland → QLD)

    string

    State, province, or region code of the receiving address entered in ISO 3166-2.  

    Note: Required if shippingCountry has them and shippingAddress exists.


    CR
    shippingPostalCode-Dorder[AddressRuleSets.AssignmentsPostcodeField] → order.SoDelAddr7 → order.SoDelPostcode → user.DeliveryPostCodestring

    Postal code of receiving address validated against the GeoPostcodes database. 

    Note: Required if the shippingCountry
    has them and shippingAddress exists.


    CR
    shippingCountryCode-DCurrently hard-coded.

    Two-letter ISO 3166-1 code for country of shipment address.

    Note:  Required if shippingAddress exists.


    CR
    shippingPhoneNumber-Dorder.ContactPhoneNumber → order.SoDelPhone → user.PhoneNumberinteger

    Phone number entered for the shipment excluding country prefix. 

    Note: Required if purchaseType = Physical Items. 


    CR
    shippingPhoneNumberCountryCode-DCurrently hard-coded.integer

    Country code for the phone number entered for the shipment.

    Note: Required if shippingPhoneNumber exists.


    CR
    shippingEmailAddress-Dorder.EmailAddressForGuestUser → user.ValidEmailAddressstring

    Email address of the shipment recipient.

    Note: Required if purchaseType = Physical Items. 


    CR
    shippingCompany-Dorder.CarrierCodestring

    Name of shipping company for merchant-to-consumer initial delivery.  

    Note: Required if purchaseType = Physical Items. 


    CR
    shippingMethod-DOrder.FreightLine.SolLineDescriptionstring

    Type of shipping method used as found in SolLineDescription where a value can only be 'Standard' or 'Express'. If neither is found, 'Other' is used.

    Note: Required if shippingCompany-D exists. 

    Options: Standard, Express,  Other CR
    deliveryFeeType-D
    stringDelivery fee typeDefault: OtherCR
    pickupVerificationMethod-DCurrently hard-coded.stringVerification method if pickup selected.

    Default: ID card

    Other: Id Card, Signature

    CR

    Device Info

    FieldCV fieldFormatDescriptionValueR, O or CR
    deviceInfon/ablock

    Array introducing the deviceInfo fields

    "deviceInfo": { 

    "deviceTransactionId": "DID-b49aa724-bba4-4e48-bea5-8359ce8203d3" },
    R
    deviceTransactionIdn/a

    Token Id generated to make a call to Accertify to verify device information. 


    DID_ + new Guid

    Example: DID-b49aa724-bba4-4e48-bea5-8359ce8203d3

    R

    Accertify Results

    FieldCV fieldFormatDescriptionValueR, O or CR
    actionCoden/a
    Decision response returned from Accertify.

    Options: 'Accept', 'Review', 'Reject'

    Example: "actionCode": "Review"
    R



    Additional Information


    Multiexcerpt
    hiddentrue
    MultiExcerptNameAdditional Info

    Integrate Accertify's credit card fraud check solution to the Braintree Payments gateway.


    Multiexcerpt
    hiddentrue
    MultiExcerptNameFeature Title

    Accertify Fraud Check API



    Minimum Version Requirements


    Multiexcerpt
    MultiExcerptNameMinimum Version Requirements

    4.37.00


    Prerequisites


    Multiexcerpt
    MultiExcerptNamePre reqs

    **


    Self Configurable


    Multiexcerpt
    MultiExcerptNameSelf Configurable

    Yes


    Business Function


    Multiexcerpt
    MultiExcerptNameBusiness Function

    Security


    BPD Only?


    Multiexcerpt
    MultiExcerptNameBPD Only

    Yes


    B2B/B2C/Both


    Multiexcerpt
    MultiExcerptNameB2B/B2C/Both

    Both


    Third Party Costs


    Multiexcerpt
    MultiExcerptNameThird Party Costs

    yesYes



    Related help

    Content by Label
    showLabelsfalse
    max5
    spacesKB
    showSpacefalse
    sortmodified
    reversetrue
    typepage
    cqllabel = "paymentfraud-prevention" and type = "page" and space = "KB" and title ~ "'Braintree credit card'"
    labelsuser accounts
    Content by Label
    showLabelsfalse
    max5
    spacesKB
    showSpacefalse
    sortmodified
    reversetrue
    titleRelated widgets
    typepage
    excludeCurrenttrue
    cqllabel = "widget" and type = "page" and space = "KB" and title ~ "'review notes'Accertify"
    labelsuser accounts