Skip to content

Last updated: 06 November 2025 | Change log

Alipay+

A cross-border payment solution that connects businesses with a vast network of digital wallets across Asia and globally.

Note

Make yourself familiar with our API principles to ensure a resilient integration.

Product overview

Alipay+, also written as Alipay Plus or Alipay Uni, acts as a unified gateway, allowing international buyers to pay with their preferred local e-wallets.

  • For both online and in-store transactions, Alipay+ facilitates real-time deductions from your customer's local e-wallet, automatically converting payments into the merchant's currency and sending the amount directly to their acquirer.

  • Its unified integration significantly simplifies cross-border payment acceptance, reducing the cost associated with managing multiple individual e-wallet integrations.

  • Its streamlined process enables high conversion rates, with low chargeback/dispute rates.

Feature summary

Payment typeRecurringReversalsPartial reversalsAuth and settlement (sale)
Digital wallet
  • Refund - yes
  • Cancel - no
  • Partial refund - yes
  • Partial cancel - no

Maximum payment amount USD 10,000.00. If you require a higher amount please discuss your requirements with your Relationship Manager or Support team.

Supported wallets

WalletMarket
AlipayChinese mainland
AlipayHKHong Kong SAR, China
BillEasePhilippines
BoostMalaysia
BPIPhilippines
DANAIndonesia
GCashPhilippines
HipayMongolia
K PlusThailand
Kakao PaySouth Korea
KredivoIndonesia
NAVER PaySouth Korea
Rabbit LINE PayThailand
TinabaItaly
Touch 'n' Go eWalletMalaysia
Toss PaySouth Korea
TrueMoney WalletThailand
Note

Alipay+ retains discretion regarding wallet onboarding approvals. We cannot guarantee the universal availability of all wallets across all merchants.

Acceptance currencies

MarketCurrency
UKGBP1, CNY2, HKD2, EUR2, KRW2, PHP2, THB2, MNT2, MYR2, IDR2
EuropeEUR1, CNY2, HKD2, KRW2, PHP2, THB2, MNT2, MYR2, IDR2
Hong KongHKD1, CNY2, EUR2, KRW2, PHP2, THB2, MNT2, MYR2, IDR2
SingaporeSGD1, CNY2, HKD2, EUR2, KRW2, PHP2, THB2, MNT2, MYR2, IDR2
JapanJPY1

1Indicates that you can authorize and receive funds in the same currency without any FX consideration for all wallets.
2Indicates that you can authorize in this currency, but you receive funds in a different currency for some wallets.

Customer journey

Desktop with QR code scanned on a mobile device

Desktop QR customer journey

  1. Your customer chooses Alipay+ as their payment method on your desktop site.
  2. They are redirected to the Alipay+ payment page, which displays the Alipay+ QR code.
  3. Your customer scans the QR code using the scan function within their Alipay+ mobile app.
  4. They are presented with the transaction details and funding options. Your customer then confirms payment.
  5. They enter the payment password to authenticate the transaction.
  6. Your customer receives confirmation that the payment is successful.
  7. Back on your customer's desktop browser, Alipay+ confirms that the payment is successful and redirects your customer to your payment success page (defined by the successURL).

Desktop username and password log in

Desktop username and password log in

  1. Your customer chooses Alipay+ as their payment method on your desktop site.
  2. They click on the checkout button and are taken to the Alipay+ checkout page. Alipay+ determines your customer's locally available wallets using their IP address. Locally available wallets are displayed at the top of the page, with other wallets below. Your customer chooses their preferred wallet.
  3. Your customer confirms payment in the wallet application, e.g. Alipay CN - KaKaoPay.
  4. They receive confirmation that the payment is successful.
  5. Your customer is redirected back to your specified successURL.

Mobile device with Alipay+ app

Mobile customer journey

  1. Your customer chooses Alipay+ as their payment method on your mobile browser site/ in-app checkout page.
  2. They click on the checkout button and are taken to the Alipay+ checkout page. Alipay+ determines your customer's locally available wallets using their IP address. Locally available wallets are displayed at the top of the page and other wallets below. Your customer chooses their preferred wallet.
  3. Your customer confirms payment in wallet application e.g. Alipay CN - KaKaoPay.
  4. They receive confirmation that the payment is successful.
  5. Your customer is redirected back to your specified successURL.
Best practice

For an optimized mobile experience, we strongly recommend passing deviceData object in the request. Supplying these fields ensures that customers who do not have the underlying wallet app on their phone do not see errors.

Get started

Get started using our API reference and set your headers.


Request

POST https://try.access.worldpay.com/apmPayments

Example requests

application/json
{ "transactionReference": "Memory265-13/08/1876", "merchant": { "entity": "default" }, "instruction": { "method": "alipay_uni", "value": { "amount": 250, "currency": "HKD" }, "narrative": { "line1": "Joe Plumbing Ltd" }, "paymentInstrument": { "type": "direct", "country": "GB" }, "resultUrls": { "pending": "https://worldpay.com/pending", "failure": "https://worldpay.com/failure", "success": "https://worldpay.com/success", "cancel": "https://worldpay.com/cancel" }, "deviceData": { "device": "mobile", "operatingSystem": "ios" }, "customer": { "firstName": "James", "lastName": "Moriarty", "email": "moriarty@example.com" } } }

Parameters

transactionReferencestring[ 1 .. 64 ] characters^[a-zA-Z0-9\-_/!@#$%()*=.:;?\[\]{}~+]*$required

For Bizum transaction please follow this extra regex [a-zA-Z0-9]{4,12}

merchantobject(MerchantV2)required
merchant.​entitystring[ 3 .. 32 ] characters^([a-zA-Z0-9\- ]*)$required

Used to route the request in Access Worldpay, created as part of on-boarding.

Example: "default"
instructionobject(InstructionV2)required

Object that contains the payment type and details.

instruction.​methodstringrequired

Type of payment method

Value"ach"
Discriminator
instruction.​valueobject(Value)required

The value of the payment.

instruction.​value.​amountinteger(int64)[ 1 .. 2147483647 ]required

The amount in the lowest denomination of the currency e.g. pennies for GBP, cents for USD.

Example: 12
instruction.​value.​currencystringrequired
Enum"AED""AFN""ANG""AOA""ARS""AUD""AWG""AZN""BAM""BBD"
instruction.​narrativeobject(NarrativeBase)required
instruction.​narrative.​line1string[ 1 .. 24 ] characters^[a-zA-Z0-9-., ]*$required

The description shown on your customer's bank statement for the payment.

Example: "MindPalace"
instruction.​paymentInstrumentobject(AchEftPaymentInstrumentV2)required
instruction.​paymentInstrument.​typestringrequired

The type of instrument.

Value"direct"
instruction.​paymentInstrument.​accountTypestringrequired

Account type.

Enum"checking""savings""corporate""corporateSavings"
Example: "checking"
instruction.​paymentInstrument.​accountNumberstring[ 1 .. 17 ] characters^[0-9]*$required

Account number of direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​routingNumberstring= 9 characters^[0-9]*$required

Routing number of direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​checkNumberstring[ 1 .. 15 ] characters^[0-9]*$

Check number of the direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​companyNamestring[ 1 .. 40 ] characters^[0-9]*$

Company name if a corporate account.

Example: "123456789"
instruction.​paymentInstrument.​billingAddressobject(AchEftBillingAddress)required
instruction.​paymentInstrument.​billingAddress.​address1string[ 1 .. 80 ] characters
instruction.​paymentInstrument.​billingAddress.​address2string[ 1 .. 80 ] characters
instruction.​paymentInstrument.​billingAddress.​address3string[ 1 .. 80 ] characters
instruction.​paymentInstrument.​billingAddress.​citystring[ 1 .. 50 ] characters

City.

instruction.​paymentInstrument.​billingAddress.​countryCodestring
Enum"AD""AE""AF""AG""AI""AL""AM""AN""AO""AQ"
instruction.​paymentInstrument.​billingAddress.​postalCodestring[ 1 .. 15 ] characters

Postal code.

instruction.​paymentInstrument.​billingAddress.​statestring[ 1 .. 30 ] characters

State code of the billing address in ISO 3166-2 format.

Example: "US-OH"
instruction.​customerobject(CustomerDetailsAch)required
instruction.​customer.​firstNamestring[ 1 .. 22 ] charactersrequired

Your customer's first name.

instruction.​customer.​lastNamestring[ 1 .. 22 ] charactersrequired

Your customer's last name.

instruction.​customer.​customerIdstring<= 15 characters^[a-zA-Z0-9]*$

Your unique reference for the customer so that the 'pay faster next time' function can be used during checkout. This allows the shoppers chosen bank to be stored for their next payment.

Example: "44528abcd"
instruction.​customer.​emailstring

The customer's e-mail address.

Example: "customer@worldpay.com"

Response

Successful request response

  • an HTTP code 201
  • a paymentId which is unique to the payment - we recommend storing the "id", as you can use it to manage the payment later
  • a url to redirect your customer to the APM provider to complete the payment
  • a link to query the payment status
  • an object which will give flow information such as method (e.g. alipay_uni) and type (direct)
  • a commandId generated by us identifying a single merchant interaction (e.g. cmdYNdIHBPJwbkjLiykzTx0)

Example response

{
  "paymentId": "HZ75WBkfRwmD9YzLSZFnQ5v2I5ddQFtUqfQjfH6MtZWlDSUrxrcX5x_wn93uYUZBrpxTgfQTxtQsmy9dE_z-m-zZvrP-LeCRz0uWrqdvJK9lFEMgr042IFWuXU4qz5JB5ruD3eXP8P1s6nqEcRq5d-NwnkVtXPzEhC9FQ_77m3c",
  "lastEvent": "pending",
  "_links": {
    "self": {
      "href": "https://try.access.worldpay.com/apmPayments/HZ75WBkfRwmD9YzLSZFnQ5v2I5ddQFtUqfQjfH6MtZWlDSUrxrcX5x_wn93uYUZBrpxTgfQTxtQsmy9dE_z-m-zZvrP-LeCRz0uWrqdvJK9lFEMgr042IFWuXU4qz5JB5ruD3eXP8P1s6nqEcRq5d-NwnkVtXPzEhC9FQ_77m3c"
    }
  },
  "_actions": {},
  "redirect": "https://secure-test.worldpay.com/jsp/test/shopper/APMSTSimulator.jsp?customerRef=3413879489&paymentMethod=ALIPAY_UNI",
  "paymentInstrument": {
    "method": "alipay_uni",
    "type": "direct"
  },
  "commandId": "cmdEy5vwB0krLe9eMwAcE66c0"
}

Errors

Check out our API reference for the full error code schema.

Next steps


Manage your Alipay+ payment