Advantages
- Reduced AML Hits: Up to 90% reduction in flagged transactions with proper implementation.
- Faster Settlements: Minimise manual reviews and accelerate fund availability.
- Improved Conversion: Collect additional details only when necessary, reducing customer friction.
- Regulatory Compliance: Automatically meet RBI requirements for high-value transactions.
Basic AML Integration
Basic AML enables you to proactively provide additional customer information with every order, thereby reducing the likelihood that it will be flagged for AML review. You need to pass a few additional parameters related to AML in the Orders API. There is no other change in the rest of the Standard Checkout integration steps.Sample Code
/ordersRequest
Success Response
amount mandatory
: integer The amount for which the order was created, in currency subunits. For example, for an amount of 295, enter 29500. Payment can only be made for this amount against the Order.
currency mandatory
: string ISO code for the currency in which you want to accept the payment. The default length is 3 characters. For example, INR.
receipt optional
: string Receipt number that corresponds to this order, set for your internal reference. Can have a maximum length of 40 characters and has to be unique.
customer_id mandatory
: string Unique identifier of the customer. For example, cust_1Aa00000000004.
customer_details mandatory
: string This contains details about the customer details of the order.
business_type optional
: string Indicates whether the customer is an individual or business entity. Possible values:
companyindividual
Response Parameters
amount
: integer The amount for which the order was created, in currency subunits. For example, for an amount of 295, enter 29500.
amount_due
: integer The amount pending against the order.
amount_paid
: integer The amount paid against the order.
attempts
: integer The number of payment attempts, successful and failed, that have been made against this order.
created_at
: integer Indicates the Unix timestamp when this order was created.
currency
: string ISO code for the currency in which you want to accept the payment. The default length is 3 characters.
entity
: string Name of the entity. Here, it is order.
id
: string The unique identifier of the order.
notes
: object Key-value pair used to store additional information about the entity. Holds 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”.
offer_id
: string The unique identifier of the offer. For example, offer_JHD834hjbxzhd38d.
receipt
: string Receipt number that corresponds to this order. Can have a maximum length of 40 characters and has to be unique.
status
: string The status of the order. Possible values:
created: When you create an order, it is in thecreatedstate. It stays in this state till a payment is attempted on it.attempted: An order changes to theattemptedstate following the first payment attempt and remains in this state until at least one payment is successfully processed and captured.paid: After the successful capture of the payment, the order moves to thepaidstate. No further payment requests are permitted once the order moves to thepaidstate. The order stays in thepaidstate even if the payment associated with the order is refunded.
Error Response Parameters
Error | Cause | Solution
The API “ provided is invalid. | The API credentials passed in the API call differ from the ones generated on the Dashboard. Possible reasons: - Different keys for test mode and live modes.-
Expired API key. | The API keys must be active and entered correctly with no whitespace before or after the keys.
The amount must be at least INR 1.00. | The amount specified is less than the minimum amount. Currency subunits, such as paise (in the case of INR), should always be greater than 100. | Enter an amount equal to or greater than the minimum amount, that is 100.
The field name is required. | A mandatory field is missing. | Ensure all mandatory fields and values are present.
Only english alphabets are allowed in customer name. | The customer name provided in the request contains characters other than English alphabets, such as numbers, special characters, regional language characters, or emojis. | Ensure that the name field in the request contains only English letters (A-Z, a-z) and meets the validation criteria: - Verify that the name does not include numerical characters, special characters (For example, @, #, $ and so on.), or non-Latin scripts. -
Confirm that there are no extra spaces at the beginning or end of the name.
Customer name should be between 5 and 50 characters. | Thenamefield provided in the request does not meet the required character length. It is either shorter than 5 characters or exceeds 50 characters. | - Ensure that thenamefield in the request is between 5 and 50 characters long. -
Check that no extra spaces are included at the beginning or end of the name, which might affect the character count.
Customer name is invalid. | Thenamefield provided in the request does not meet the validation requirements. This could be due to the presence of disallowed characters, such as special characters, numbers, regional language characters, or the use of non-Latin scripts. | - Ensure that thenamefield only contains English letters (A-Z, a-z) and spaces (not at the beginning). - Verify that the name does not include special characters, numerical digits, emojis, or regional language characters.
-
Check for unintended characters that may have been included by mistake (For example, trailing spaces or special symbols).
Standard Checkout
Here is how AML works:1
Step 1
Razorpay screens each transaction in real-time.
2
Step 2
Additional customer details are requested only for high-risk orders.
3
Step 3
Low-risk orders proceed without extra fields.
import-mission@razorpay.com.
Payment Flow For Customers
When a transaction is flagged as high-risk, customers will see an additional screen on Razorpay Checkout:- Customer proceeds to payment. If flagged, Submit PAN details screen appears.
-
Enter PAN and Date of birth details.
- Mobile
- Web
- Click Continue to proceed with payment.
Support
For further assistance, reach out to our Support team or email us atimport-mission@razorpay.com.