ACME Fraud Shield is your key defense against bad actors when it comes to protecting your ticketing and events-based business from fraud. ACME Payments utilizes best-in-class technology and decisions on over 150 data signals in real-time to ensure that your customers have a safe and easy checkout experience. Shift your transactional risk liability and protect your online transactions today.
ACME Seller account required for API key access — get started today at sales@acmepayments.com.
Installation
NOTE: If you're migrating some of your merchants over from our previous library
@acmeticketing/payment-sdkyou should review our migration steps.
We've included a test page HTML template to get you started.
ES Module
- Intended for use with modern bundlers like webpack.
- This is the recommended approach and will provide the best developer experience.
npm install @acmepayments/fraud-shield
UMD
UMD builds can be used directly in the browser via a <script> tag. Manually add the index.umd.js script tag to the <head> of your site.
<!-- Somewhere in your site's <head> -->
<script src="https://unpkg.com/@acmepayments/fraud-shield@1.0.0/index.umd.js" async></script>
Usage (ES Module)
All of the examples also apply to the UMD version but instead of importing our library as an ES Module it will be available under the global
ACMEobject.
const acmeFraudShield = window.ACME.ACMEFraudShield.create({
mid: 'your_mid', // Use your provided merchant identification number (ACME Payments MID)
publishableKey: 'your_publishable_key', // Use your provided publishable or xyz in sandbox
});Handle Decisioning Data Session
Required data fields to properly decision. Insufficient data may cause improper consumer identification or cause unnecessary friction in the transaction, forcing the user to return and retry.
In release 11.35.1 the requirements as we understand some venues have optimized less data as part of checkout flows. However, this may cause additional friction when it comes to identifying card owners to the card issuers. It is recommended to provide as much data as possible to ensure the least friction.
import { ACMEFraudShield } from '@acmepayments/fraud-shield';
const acmeFraudShield = ACMEFraudShield.create({
mid: 'your_mid',
publishableKey: 'your_publishable_key',
});
try {
const result = await acmeFraudShield.handle3DSSession({
amount: '', //string, required
currencyCode: '840', // ISO 4217 numeric
externalId: '', //string, optional
billingAddress1: '', //string, optional
billingAddress2: '', //string, optional
billingCity: '', //string, optional
billingState: '', //string, optional
billingCountryCode: '', // ISO 3166-1 numeric, optional
billingFirstName: '', //string, required
billingLastName: '', //string, required
billingPostalCode: '', //string, required
billingPhone: '', //string, optional
cardExpMonth: '', //string, required
cardExpYear: '', //string, required
cardNumber: '', //string, required
email: '', //string, required
// This allows you to pass a custom container for the stepup iframe, it will default to `document.body`
// container: {
// selector: () => document.querySelector('...')
// }
});
} catch (error) {
// handle error
}Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article