Transaction tokens: Create

Application token secret is required for this route

Request

POST https://api.univapay.com/tokens

Parameters:

Parameters
payment_typestring [Required]
See payment methods.
typestring
See token types. Certain payment methods may restrict the type. If set to recurring, and your account does not have permission to make an infinitely chargable token, you must supply the usage_limit parameter.
usage_limitstring
How often the token can be used if it is recurring. If you have permission to create infinitely chargable recurring tokens, this can be left blank.
emailstring [Required]
Email address
Optional for online payments
ip_addressstring [Conditional]
The IPv4 address of the customer’s device.

The following payment providers require this parameter:
we_chat_online (web, http_get)
metadataobject
See metadata.
metadata.univapay-customer-idstring (UUID)
metadata.univapay-customer-id
dataobject [Required]
See card data for card, Apple Pay data for apple_pay, qr scan data for qr_scan and convienence store data for konbini payment type.

Card data

Parameters
data.cardholderstring [Required]
The cardholder’s name.
data.card_numberstring [Required]
The card number.
data.exp_monthstring [Required]
The card’s expiration month.
data.exp_yearstring [Required]
The card’s expiration year.
data.cvvstring [Required]
The card’s CVV value.
data.line1string
The address for the card (line 1).
data.line2string
The address for the card (line 2).
data.statestring
The address for the card (state name).
data.citystring
The address for the card (city name).
data.countrystring
The address for the card (country code, in ISO 3166-1 alpha-2 format).
data.zipstring
The address for the card (zip code).
data.phone_number.country_codestring
The phone number for the card (country code).
data.phone_number.local_numberstring
The phone number for the card.
data.cvv_authorize.enabledboolean
Set to true to enable the feature. Defaults to false.
data.cvv_authorize.currencystring (ISO-4217)
Sets the currency to make the authorization in. Defaults to the merchant base currency.
data.three_ds.enabledboolean
Sets whether 3DS authentication is enabled for this token. Can only be set to true if the token type is recurring. By default, this may be either true or false depending on the existing regulatory requirements. Setting this value to false may trigger 3DS authentication later when creating a charge.
data.three_ds.redirect_endpointstring (URL)
Sets the redirect endpoint when the customer returns from 3DS authentication. If not set, a generic completion page will be displayed and asked to return manually to the originating website.

When set, the customer will be redirected to the specified endpoint with the GET http method. All metadata key value pairs (those specified at the time of charge creation, any additional metadata that was patched after creation will not be included) and univapayTokenId will automatically be sent as part of the query parameters. Additional query parameters may optionally be appended into the endpoint URL.

Apple Pay data

Parameters
data.applepay_tokenstring [Required]
The Apple Pay token.
data.cardholderstring [Required]
The cardholder’s name.
data.line1string
The address for the card (line 1).
data.line2string
The address for the card (line 2).
data.statestring
The address for the card (state name).
data.citystring
The address for the card (city name).
data.countrystring
The address for the card (country code, in ISO 3166-1 alpha-2 format).
data.zipstring
The address for the card (zip code).
data.phone_number.country_codestring
The phone number for the card (country code).
data.phone_number.local_numberstring
The phone number for the card.

QR CPM data

Parameters
data.scanned_qrstring [Required]
The scanned QR code from the user’s wallet app.

QR MPM data

Parameters
data.brandstring [Required]
The payments brand to use. Valid values include:
alipay_merchant_qr Alipay China
pay_pay_merchant Pay Pay
we_chat_mpm WeChat Pay
d_barai_online dBarai

Convenience store data

Parameters
data.customer_namestring [Required]
The customer’s name.
data.phone_number.country_codestring [Required]
The country code of the phone number. Only Japanese numbers are accepted.
data.phone_number.local_numberstring [Required]
The customer’s phone number.
data.convenience_storestring [Required]
The convenience store the customer has selected to make payment at. Only the following are accepted values seven_eleven, family_mart, lawson, mini_stop, seico_mart, pay_easy, circle_k, sunkus, daily_yamazaki, yamazaki_daily_store.
data.expiration_periodstring (ISO-8601 Duration)
The payment expiration date. Minimum 30 minutes and maximum 30 days from the date of creation with 30 days as default if not supplied. Example: P7D
data.expiration_time_shiftstring (ISO-8601 Time with Timezone)
The time to set for the payment after taking into account the expiration_period for this payment. For example, if the expiration after adding expiration_period is 2023-06-01T15:00:00+09:00 and expiration_time_shift is set as 09:00:00+09:00 then the final expiration will be set as 2023-06-01T09:00:00+09:00.

*When this field is set, expiration_period must be at least 1 day.
Available only for convenience store payment.
*This parameter is invalid forFor “7-Eleven” and “Seicomart”/Other Payments (“Circle K”/”Sunkus”/”Pay-easy”) because the time specification is not available.

Online payments data

Parameters
data.brandstring [Required]
The payment brand to use. Valid values include:
alipay_online Alipay China
alipay_plus_online Alipay+
pay_pay_online Pay Pay
we_chat_online WeChat Pay
d_barai_online dBarai
data.call_methodstring [Required]
The execution method requested by the client.

Is one of http_get, http_get_mobile, http_post, sdk, web, app.
sdk refers to usage directly in a SDK provided by the payment provider.
web refers to usage directly in a special browser environment with specific API extensions.
app refers to usage in a native app environment in a SDK provided by the payment provider.
http_get or http_post, the issuer_token can be directly executed in a new browser window or in an iframe with the correct corresponding HTTP method.
http_get_mobile is the same as http_get but will return a page specific for mobile browsers

The following brands support the following call methods:
alipay_online: http_get, sdk (miniapp), app
alipay_plus_online: http_get, http_get_mobile, sdk (miniapp), app
pay_pay_online: http_post
we_chat_online: http_get (H5), sdk (miniapp), app (in-app), web (official account)
d_barai_online: http_post
data.user_identifierstring [Conditional]
A unique user identifier, usually provided by the payments gateway application that can uniquely identify a user device. This is a requirement by certain payment providers to prevent fraud.

The following brands for these call methods require the user identifier to be provided:
we_chat_online: sdk (miniapp), web (official account)
data.os_typestring [Conditional]
The OS of the underlying mobile device. Valid values include:
android
ios

The following brands require the os type to be provided:
alipay_plus_online: http_get_mobile, app

Bank transfer payment data

Parameters
data.brandstring [Required]
The payment brand to use. Valid values include:
aozora_bank GMO Aozora Net Bank
data.match_amountstring [Optional]
The algorithm for matching on the transferred amount. This has precedence over your store/merchant setting.

One of the following values:
disabled: The transferred amount matching is disabled.
exact: The transferred amount must match.
exact: The transferred amount must match otherwise the transfer is rejected by the bank.
minimum: The transferred amount must be at least the requested amount otherwise the transfer is rejected by the bank.
maximum: The transferred amount must be less than or equals to the requested amount otherwise the transfer is rejected by the bank.
data.expiration_periodISO8601 Duration [Optional]
The period of time before the charge request expires.
E.g. Expire after 7 days: P7D
data.expiration_time_shiftISO8601 Time with time zone [Optional]
Shifts the expiration to a specific time after data.expiration_period is applied.
This field is only valid if data.expiration_period is populated.
E.g. If a charge was created at 2022-07-01T15:00:00Z and the expiration period was P7D, the following time shifts will produce the following expirations:
09:15:00+09:00 ⇒ 2022-07-08T09:15:00+09:00
09:15:00Z ⇒ 2022-07-07T09:15:00Z

Headers:

Authorization: Bearer {jwt}
Content-Type: application/json

Body:

curl --request POST \
--url https://api.univapay.com/tokens \
--header 'Authorization: Bearer {secret}.{jwt}' \
--header 'Content-type: application/json' \
--data "{
\"payment_type\": \"card\",
\"subscription\": false,
\"email\": \"taro.momo@univapay.com\",
\"data\": {
    \"cardholder\": \"TARO MOMO\",
    \"card_number\": \"4916741415383284\",
    \"exp_month\": \"12\",
    \"exp_year\": \"2018\",
    \"cvv\": \"999\",
    \"line1\": \"123 abc st\",
    \"line2\": \"apt 123\",
    \"state\": \"OR\",
    \"city\": \"Portland\",
    \"country\": \"US\",
    \"zip\": \"12345\",
    \"phone_number\": {
        \"country_code\": \"1\",
        \"local_number\": \"8029854583\"
    },
    \"cvv_authorize\": {
        \"enabled\": true,
        \"currency\": \"JPY\"
    }
}
}"

Response

Code: 201

Headers:

Content-Type: application/json

Body:

{
  "id": "1c94ed2e-1841-11e7-a481-a393b47973f4",
  "store_id": "af857264-180c-11e7-9be2-276aea4fed28",
  "email": "taro.momo@univapay.com",
  "payment_type": "card",
  "mode": "test",
  "type": "one_time",
  "metadata": {},
  "created_on": 1491205358955,
  "last_used_on": null,
  "data": {
    "card": {
      "cardholder": "TARO MOMO",
      "exp_month": 12,
      "exp_year": 2018,
      "last_four": "3284",
      "brand": "visa",
      "country": "BR",
      "category": "classic",
      "issuer": "BANCO SANTANDER BRASIL, S.A.",
      "sub_brand": "none"
    },
    "billing": {
      "line1": "123 abc st",
      "line2": "apt 123",
      "state": "OR",
      "city": "Portland",
      "country": "US",
      "zip": "12345",
      "phone_number": {
        "country_code": 1,
        "local_number": "8029854583"
      }
    },
    "cvv_authorize": {
      "enabled": true,
      "status": "current",
      "currency": "JPY",
      "charge_id": "8fb15bae-119b-4e57-8504-ae7230c68139",
      "credentials_id": "e093d719-0c07-4597-b14b-c4a504832aca"
    }
  }
}