- Getting Started
- Tutorials
- COPYandPAY
- Server-to-Server
- 3D Secure
- Pay By Link
- Mobile SDK
- Manage Payments
- Plugins
- Fraud Management
- Reporting
- Webhooks
- Smart Engage
- Reference
- API Reference
- Basic Payment
- Forex
- Authentication
- Card Account
- Apple Pay
- Virtual Account
- Bank Account
- Token Account
- Customer
- Billing Address
- Merchant Billing Address
- Shipping Address
- Merchant Shipping Address
- Corporate
- Recipient
- Merchant
- Marketplace & Cart
- Airline
- Lodging
- Passenger
- Tokenization
- Recurring Migration
- 3D Secure
- Custom Parameters
- Async Payments
- Webhook notifications
- Risk
- Response Parameters
- Card On File
- Chargeback
- Result Codes
- Brands Reference
- Regression Testing
- Data Retention Policy
- API Reference
- FAQ

OmniTokens
OmniTokens allows you to store payment data in an external system, for later use. Based on configuration the payment data can be stored in one of these systems.
This guide will describe how you can store account details using COPYandPAY.
- Storing the payment data
Storing the payment data
COPYandPAY provides two options for storing the payment data:
- Store the data during a payment: When a shopper is checking out for the first time, he has to fill in his complete payment- and address data. Use this option to automatically store his data during the payment for reuse in later transactions.
- Store the data as stand-alone: If your site provides shoppers with an administrative area where they can register their payment details independent of a checkout-process, this option is for you.
Store the data during a payment
You have two options for achieving this:
- Merchant-determined tokenization
- Shopper-determined tokenization.
Merchant-determined tokenization
During the checkout process you can store the data by adding an additional parameter to the normal prepare checkout request as described in step 1 of the COPYandPAY checkout:
createOmniToken=true testMode=EXTERNAL
(Please note the testMode=EXTERNAL
should be sent only when testing from this site or using the Open Payment Platform test environment.)
After the account holder has filled in their account information and are redirected back to your shopperResultUrl
, you can retrieve the response information as usual (step 3). This time, however, the response will include an omniToken
(token) and useful card information that you can store for future 'one-click payment' requests.
Shopper-determined tokenization
When the payment form is displayed as described in step 2 of the COPYandPAY checkout, you can extend the form to display an option to your customer that allows him store his account data.
This can be achieved very easily by using the COPYandPAY API. You can see an example implementation of this in the "store payment details" use case that is part of the Advanced Options tutorial. The only difference from that example is that the input name should be called createOmniToken
(instead of createRegistration
)
After the account holder has filled in his account information and was redirected to the shopperResultUrl
, you can retrieve the response information as usual (step 3). This time, however, the response will include an omniToken
(token) and useful card information that you can store for future 'one-click payment' requests.
Store the data as stand-alone
With COPYandPAY it is also possible to create an omnitoken separate from any later payment.
A registration-only transaction with COPYandPAY is basically using the same workflow and parameters as a payment.
You only have to change two parameters in step1:
createOmniToken=true
has to be sent.paymentType
should not be sent.testMode=EXTERNAL
has to be sent when testing from this site or using the Open Payment Platform test environment.
Now COPYandPAY automatically adapts the workflow for handling a registration:
- In step2 COPYandPAY will render the payment form as usual, but send the form to
https://eu-test.oppwa.com/v1/checkouts/{checkoutId}/omnitoken
- In step3 you'll get back a resourcePath pointing to you to query for a registration's result:
resourcePath=/v1/checkouts/{checkoutId}/omnitoken
IMPORTANT: The baseUrl (that is prepended to the resourcePath) must end in a "/", e.g. "https://eu-test.oppwa.com/".