Standalone 3D Secure service

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.

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. 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.
  3. Call Start 3D Secure authentication (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 (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