Maya API Sandbox Wallet Checkout returns "Invalid Request" upon confirmation (Cross-domain redirect issue)

I am currently integrating the Maya Checkout API (/checkout/v1/checkouts) into my application. Everything works perfectly in the Sandbox environment when using a Card payment, but I am consistently hitting an error when testing the Maya Wallet payment flow.

The Issue:

  1. I generate the checkout session successfully and receive the checkoutId and redirect URL.

  2. I open the checkout link, select “Maya Wallet”, and log in using the official sandbox test credentials( 09900100900 ).

  3. The checkout screen successfully loads the transaction details.

  4. The moment I click “Confirm to Pay”, the page shows “Invalid Request” screen (The link you’re trying to access is invalid or has already expired)

It seems you may be referring to the sandbox Maya Wallet username as ‘09900100900’, but the correct format is ‘+639900100900’. The country code ‘+63’ is required and must be included exactly as specified in the documentation. When testing Maya Wallet payments in Sandbox, use the following credentials:

  • Username: +639900100900
  • Password: Password@1
  • OTP: 123456

Using an incorrectly formatted username (e.g., missing ‘+63’) will cause the authentication session to be invalidated, resulting in the ‘Invalid Request’ error upon confirmation. Ensure you are using the full, correctly formatted phone number including ‘+63’ when logging in. This is the most likely cause of your issue.

For Sandbox concerns and other technical implementation inquiries, please get in touch with us via:

  • Sandbox Health Page: Check real-time service status updates.
  • Maya Developer Hub Service Desk: File
    a ticket in Sandbox.

To Know More:

We value your input and would love to hear your insights. Please submit you feedback here.

I have already tested using the exact +639900100900 format (along with the correct OTP/PIN from the docs) and the exact same error occurs.

To clarify, authentication is not the issue. 1. The login is successful. 2. The OTP verification is successful. 3. The checkout screen successfully loads the transaction details.

The “Invalid Request” only happens at the very end after tapping the final “Confirm to Pay” button.

I have same problem, format and items details is correct, even the redirectUrl is from postman, and it don’t have a reason to be expired or invalid.

Please reply, if you fix it, thank you

Please update me too if you happen to figure it out first. Thanks!

1 Like

Ohh yes! I also encountered it!

Thanks, everyone, for sharing this concern. I’ll also coordinate this with Maya’s engineers to check.

1 Like

Hi @frances.kagahastian, just checking in on this! Are there any updates from the engineering team? The sandbox wallet is still dropping the session with the ‘Invalid Request’ error as of today. Really appreciate your help with this!

1 Like

Hi @pax @Cerie @arandelle, it seems the Pay with Maya is now working as expected. You may now retry your transactions. Thank you :slightly_smiling_face:

3 Likes

Thanks, I was able to perform a successful transaction.

3 Likes

I encountered this issue right now

Hi @isf1jda, is it still recurring on your side?

Hello, I’m also getting this error right now when I click confirm and pay in Maya checkout sandbox.

I experienced a similar cross-domain session drop when working with dynamic redirect URLs in external sandbox environments. In my case, the root cause was related to strict SameSite cookie policies and CORS settings blocking session token propagation across domain boundaries during the checkout confirmation phase.

To fix it, double-check your callback handling:

  1. Cookie Attributes: Ensure your session/auth cookies explicitly specify SameSite=None and Secure so they survive cross-origin redirects from external gateways.

  2. Dynamic Return URLs: Explicitly pass fully qualified return/cancel URLs with necessary session identifiers in the payload rather than relying on browser session persistence across redirects.

  3. CORS Headers: Ensure your server allows cross-domain credentials (Access-Control-Allow-Credentials: true) for the domain making the post-payment callback.

If anyone is looking to Find a sideline project or explore practical solutions for integration issues like this, testing with explicit callback parameters usually resolves the invalid request error during checkout confirmation.

Hi Maya team,

This issue appears to have regressed.

We are seeing the same behavior today in Maya Checkout sandbox:

  1. Create Checkout returns 200.
  2. The hosted checkout page opens successfully.
  3. Sandbox card details can be entered and reCAPTCHA can be completed.
  4. After clicking Confirm, the hosted page immediately shows “Invalid Request / expired.”

We also checked the checkout through the API afterward and it remains:

status: PENDING_TOKEN
isPaid: false

So the checkout itself is not expired, and the failure seems to happen during the hosted payment/tokenization step.

We also tested a payload without the buyer object and got the same result, so this does not appear to be caused by buyer/Kount fields.

Can Maya please confirm if sandbox checkout payment confirmation/tokenization is currently degraded again?