Client-side JavaScript widget collects card details - Card details sent directly to payment processor - Token returned to client, then sent to your server - Server creates payment using token