# Standalone 3D Secure service Building with an AI agent? Start at https://docs.payme.io/agents.md Run 3D Secure 2 authentication as a separate step, without charging the card: the flow from browser data to the resolved 3DS values. Run 3D Secure 2 authentication as a separate step, without charging the card. Use it when another gateway processes the payment but you want PayMe to authenticate the card, or when you authenticate a card now and charge it later. Background: [3D Secure as a service](/accepting-payments/3d-secure/3d-secure-as-a-service). The seller must have the 3D Secure service active; otherwise the call returns error `720`. ## Process flow 1. Add PayMe's JS library to your checkout page and collect the buyer's browser data, as described in [3DS integration using JS API](/accepting-payments/3d-secure/3ds-with-hosted-fields). The library returns `meta_data_jwt`. 2. Create a card sale to get a `payme_sale_id`, for example with [Generate a sale with 3D Secure](/payments/generate-a-sale-with-3d-secure/post-generate-sale-generate-a-sale-with-3d-secure). 3. Call [Start 3D Secure authentication](/payments/standalone-3d-secure-service/post-initialize-3dsecure-request) (`POST /sales/{payme_sale_id}/3ds`) from the browser with the seller's public key, the card (or a `buyer_key`) and `meta_data_jwt`. 4. The issuer either approves without asking the buyer anything (frictionless), or asks for a challenge: - **Frictionless:** the response has `status_code` `0` and `hash_3dsecure`. - **Challenge:** the response has `status_code` `5` and a `redirect_url` to the issuer's challenge page. Send the buyer there. When the challenge ends, PayMe's page passes `hash_3dsecure` back to the page that opened the challenge. 5. From your server, call [Resolve a 3D Secure hash](/payments/standalone-3d-secure-service/get-sales-payme-sale-id-3ds-hash) (`GET /sales/{payme_sale_id}/3ds/{hash_3dsecure}`) with the seller's MPL to get `eci`, `cavv` and `xid` for your gateway. If authentication failed, the result has a non-null `status` and no `cavv`. ## Endpoints - [Start 3D Secure authentication](/payments/standalone-3d-secure-service/post-initialize-3dsecure-request): POST /sales/{payme_sale_id}/3ds - [Resolve a 3D Secure hash](/payments/standalone-3d-secure-service/get-sales-payme-sale-id-3ds-hash): GET /sales/{payme_sale_id}/3ds/{hash_3dsecure}