Money is integer paise — ₹15,000 = 1500000. Follow GET /application/journey. Skipping a step returns 409 step_not_ready.
otp_not_requested.{ phone, product_id }. Response is only { ok: true } — the code is never in JSON. Mock: use collection otpCode (server MOCK_OTP_CODE, default 123456). Too many requests → 429 rate_limited.POST /auth/otp/verify with the same phone, the same product_id, and the code.422 phone_required | product_id_required | invalid_phone | invalid_product · 429 rate_limitedcurl --location 'https://api-dev.myemipay.com/auth/otp/request' \
--header 'Content-Type: application/json' \
--data '{
"phone": "{{phone}}",
"product_id": ""
}'{
"ok": true
}