Below content is applicable for both Atomic as well as AX2
PURPOSE
This article explains how to resolve an APC_040 error response you may encounter when processing payment requests through Ingenico.
"reason_code": "APC_040", "reason_message": "Merchant data invalid or missing",
This response may be returned if
1. The payment request uses a token, and
2. The recurring_type flag is set to "mit"
CAUSE
Ingenico expects a value for "customer ID" in card-on-file payment requests flagged as merchant-initiated.
SOLUTION
You will need to include a value for customer_id in the customer block of the payment request:
"customer" : { "customer_id" : "Customer123" }
RELATED ARTICLES
APEXX API Documentation: CreateCardTransaction