API Only (Non-Hosted Mode)
POST
Request Body Parameters
application/jsonCommon Request Parameters
bizContent
threeDSRequestDataStringConditional3DS verification request parameters. See 3DS Integration Guide for detailsexecuteThreeDStringConditional3DS verification execution policy:">- Y - Enforce 3DS verification and use PingPongCheckout's 3DS
- depends - Whether to perform 3DS verification is decided by PingPongCheckout's risk control decision
- external - 3DS verification is required, but 3DS parameters are collected by the merchant and executed by PingPong. Note: This option is not applicable for the checkout
authenticationValueStringConditionalA unique identifier generated by the issuing bank for Visa, American Express, JCB, Diners Club, and Discover transactions after customer identity verification. The raw data is in base64 units. Needs to convert the value into the format.acsTransactionIdStringConditionalA unique transaction identifier assigned by the ACS to identify an individual transaction.veresEnrolledStringConditionalThe result of the enrollment check. This field can contain one of the following values:">- Y - Card is enrolled or can be enrolled; you must authenticate. Liability shift.
- N - Unregistered card; proceed with authorization. No liability shift.
- U - Unable to authenticate for any reason. No liability shift
specificationVersionStringConditionalThis field contains the 3D Secure version used to process the transaction. For example, 1.0.2 or 2.0.0.directoryServerTransactionIdStringConditionalThe Directory Server Transaction ID is generated by the Mastercard Directory Server during the authentication transaction and is passed back to the merchant along with the authentication result.threeDSServerTransactionIdStringConditionalA unique transaction identifier assigned by the 3DS server to identify an individual transaction.paresStatusStringConditionalThe original result of the authentication check. This field can contain one of the following values:">- A - Proof of an authentication attempt has been generated.
- N - Customer authentication failed or was canceled. The transaction was declined.
- U - Authentication did not complete for any reason.
- Y - The customer was successfully authenticated.
eciStringConditionalFor authentication, only for Visa, American Express, JCB, Diners Club, and Discover transactions, the digital e-commerce indicator (ECI) is returned. The field is missing in case of authentication failure. This field contains one of the following values:- 01 - Attempted authentication (Mastercard)
- 02 - Successful authentication (Mastercard)
- 05 - Successful authentication (Visa, American Express, JCB, UNION PAY, Diners Club, and Discover)
- 06 - Attempted authentication (Visa, American Express, JCB, Diners Club, and Discover)
paymentMethodObjectRequiredThe type and required details of the payment method to be used.typeString(32)RequiredPayment methods:- scheme International credit card payment
- Local payment options, optional values: Non-Hosted Supported APMs
- Fixed input: networkToken, mandatory if using a card group's token
scanCodeIdStringConditionalPayment code generated by the customer's mobile wallet client. Usually displayed in the form of a barcode or QR code. The merchant terminal scans the customer's phone screen to obtain the codecardInfoObjectConditionalCardholder information, mandatory for credit card payments that do not use card bindingnumberString(64)RequiredInternational credit card numberpinString(2)OptionalFirst two digits of the local card passwordholderFirstNameStringRequiredCardholder first name, character type, no special symbolsholderLastNameStringRequiredCardholder last name, character type, no special symbolsexpireMonthString(2)RequiredExpiration month, 2 digitsexpireYearString(4)RequiredExpiration year, 4 digitscvvString(4)RequiredCredit card CVV, the CVV length for Visa/MasterCard/JCB/Discover/Diners club is 3 characters, while for American Express it may be 4 charactersschemeTokenValueString(255)ConditionalCard group's token, mandatory if using a card group's tokenpaymentBrandString(24)ConditionalCard brand, mandatory if using a card group's token, selectable values are visa/MasterCardtokenCryptogramString(255)ConditionalAn encrypted numeric string used to verify transaction data between the card and the terminal. Mandatory if using a card group's token
ibanStringOptionalMandatory for specific payment methods, international bank account number for paymentovoIdStringOptionalWallet IDcustomerKanjiFirstNameStringOptionalCustomer's first name, represented in Chinese characterscustomerKanjiLastNameStringOptionalCustomer's last name, represented in Chinese characterscustomerKatakanaFirstNameStringOptionalCustomer's first name, represented in KatakanacustomerKatakanaLastNameStringOptionalCustomer's last name, represented in KatakanacompanyNameStringOptionalCompany nameapplePayObjectConditionalMandatory when the selected payment method type is ApplePayapplePayTokenDataObjectConditionalEncrypted parameters, the paymentToken returned from the applePay transactionversionStringRequiredVersion information, indicating the version of the encryption protocol, e.g., "EC_v1"dataStringRequiredBase64 encoded encrypted data, containing the actual payment informationsignatureStringRequiredBase64 encoded signature, used to verify the integrity and authenticity of the payment data sourceheaderObjectRequiredContains metadata related to encryptionephemeralPublicKeyStringRequiredBase64 encoded temporary public key, used for encrypting transaction informationpublicKeyHashStringRequiredBase64 encoded public key hash, used to verify the merchant's public keytransactionIdStringRequiredA unique transaction identifier, used to identify the payment transaction
applePayTokenDecryptionDataObjectConditionalDecryption parameters, the paymentToken returned from the applePay transactioncardTokenStringRequiredapplepay decrypted virtual card number - applicationPrimaryAccountNumberexpirationDateStringRequiredExpiration date YYMMDD - applicationExpirationDatecardholderNameStringOptionalCardholder name - cardholderNamepaymentDataTypeStringRequiredEnumeration: EMV, 3DSecurepaymentDataObjectRequiredapplePay transaction returned paymentTokenonlinePaymentCryptogramStringOptionalpaymentDataType: 3DSecure - paymentData.onlinePaymentCryptogram (mandatory when paymentDataType is 3DSecure)eciIndicatorStringOptional3ds eci - paymentDataType: 3DSecure paymentData.eciIndicator (mandatory when paymentDataType is 3DSecure)emvDataStringOptionalpaymentDataType: emv - paymentData.emvData (mandatory when paymentDataType is emv)encryptedPINDataStringOptionalpaymentDataType: emv - paymentData.encryptedPINData (mandatory when paymentDataType is emv)
googlePayObjectConditionalMandatory when the selected payment method type is GooglePaygoogleEncryptTokenObjectConditionalGooglePay obtained encrypted card informationgooglePayTokenDecryptionDataObjectConditionalGooglePay decrypted card informationgatewayMerchantIdStringOptionalgatewayMerchantId in the decrypted message body from googlemessageIdStringOptionalmessageId in the decrypted message body from googlepaymentMethodStringOptionalpaymentMethod in the decrypted message body from googlepaymentMethodDetailsObjectRequiredpaymentMethodDetails in the decrypted message body from googleauthMethodStringRequiredauthMethod in the decrypted message body from googleexpirationMonthStringRequiredexpirationMonth in the decrypted message body from googleexpirationYearStringRequiredexpirationYear in the decrypted message body from googlepanStringRequiredpan in the decrypted message body from googleassuranceDetailsObjectOptionalassuranceDetails in the decrypted message body from googleaccountVerifiedStringRequiredaccountVerified in the decrypted message body from googlecardHolderAuthenticatedStringRequiredcardHolderAuthenticated in the decrypted message body from google
wxOpenIdStringConditionalUnique identifier in WeChat Open PlatformwxAppIdStringConditionalWeChat Mini Program ID
customerObjectConditionalCustomer information. Not required for the virtual entertainment industryfirstNameString(24)ConditionalUser's first namelastNameString(24)ConditionalUser's last nameemailString(128)ConditionalUser's emailphoneString(20)ConditionalUser's contact phonebirthDateString(10)ConditionalDate of birth, format YYYY-MM-DDidentificationTypeString(20)ConditionalUser's ID document type (required for specific countries, such as Mexico)identificationIdString(20)ConditionalUser's ID document number (required for specific countries, such as Mexico)phoneCountryCodeString(20)ConditionalCountry code or international area code of the phone number (no special symbols needed)accountNumberStringConditionalBank account numberdomesticCardNumberStringConditionalDomestic card number, example value:9704198526191432198domesticCardIssuingDateStringConditionalDomestic card issuing date, example value:07/15domesticCardExpireMonthStringConditionalDomestic card expiration month, example value:10domesticCardExpireYearStringConditionalDomestic card expiration year, example value:25
goodsArrayRequiredProduct informationnameString(128)RequiredProduct namedescriptionString(255)OptionalProduct descriptionskuString(255)OptionalProduct number, product SKUunitPriceString(12)RequiredUnit price of the productunitTaxAmountStringConditionalTax per item, mandatory when the total order amount includes taxtaxRateStringOptionalTax rate, optionaltotalDiscountAmountStringConditionalTotal discount amount per item, mandatory when the total order amount involves discountsnumberString(12)RequiredQuantity of the product purchasedimgUrlString(255)RequiredMain image link of the productvirtualProductString(1)OptionalWhether it is a virtual product, virtual goods (Y/N)itemTypeString(1)OptionalProduct type, enumerated values: 1/2/3, corresponding meanings as follows:- 1, DIGITAL: Digital products
- 2, PHYSICAL: Physical products
- 3, SERVICE: Services
shippingAddressObjectConditionalShipping address information, can be omitted for virtual productsstreetString(256)RequiredRecipient's street addresspostcodeString(16)RequiredPostal codecityString(50)RequiredRecipient's citystateString(128)RequiredRecipient's province, for US and Canada regions, use two-character codes, some areas without provinces can be left blank, see Country Codes for detailscountryString(64)RequiredRecipient's country, (ISO two-character code) see appendix Country Codes, mandatory for RMB withdrawal merchantsdistrictStringConditionalDistrict/county of the recipientshippingFeeStringConditionalShipping cost
billingAddressObjectConditionalBilling informationstreetString(256)RequiredBiller's street addresspostcodeString(16)RequiredPostal codecityString(50)RequiredBiller's citystateString(128)RequiredBiller's province, for US and Canada regions, use two-character codes, some areas without provinces can be left blankdistrictStringConditionalDistrict/county of the billercountryString(64)RequiredBiller's country, (ISO two-character code) see appendix Country Codes
browserInfoObjectConditionalBrowser informationwindowSizeString(64)ConditionalWindow size:">01-250x400
02-390x400
03-500x600
04-600x400
05 - Full screenacceptHeaderStringConditionalHTTP response header information, example value: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, image/apng, *;q=0.8colorDepthString(16)ConditionalWindow color, get browser screen.colorDepth, example value: 32screenHeightintConditionalWindow heightjetLagStringConditionalTime difference in minutes between UTC and the cardholder's browser local time.userAgentStringConditionalBrowser user agent information, example value: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36screenWidthintConditionalScreen width (unit: pixels)javaEnabledBooleanConditionalWhether the cardholder's device can execute Java.javaScriptEnabledBooleanConditionalIndicates whether the shopper's browser can execute JavaScript. If the field is absent, it is assumed to have the default value of true.
deviceObjectRequiredDevice information, accessModel values, can be omittedorderTerminalString(2)Required- 01 - Mobile browser (app)
- 02 - PC browser (pc)
- 04 - SDK (ios)
- 05 - SDK (Android)
- 06 - WeChat Mini Program
- 09 - QR Code
recurringInfoObjectConditionalSubscription information, currently applicable for Apple Pay subscription paymentsrecurringPaymentStartDateStringRequiredThe date of the first recurring payment, which maps to Apple Pay's first payment daterecurringPaymentIntervalUnitStringRequiredThe billing interval unit that maps to Apple Pay's calendar unit, such as day, month, or yearrecurringPaymentIntervalCountStringRequiredThe number of interval units that make up one full billing cyclerecurringPaymentEndDateStringRequiredThe date of the final recurring payment, which maps to Apple Pay's final payment date
merchantRiskIndicatorObjectOptionalMerchant risk supplemental information object, used to provide pre-order or future-fulfillment transaction detailspreOrderPurchaseBooleanConditionalWhether this is a pre-order or future-fulfillment transaction. Example value:truepreOrderTypeString(64)ConditionalPre-order or future-fulfillment type. Required whenpreOrderPurchase=true. Example value:futureServiceBooking. Supported values:presaleBeforeRelease: Pre-sale before the official releasemadeToOrder: Production or stocking starts after the order is placedbackorderRestock: Orders are accepted while out of stock and fulfilled after restockingcrowdfundingFulfillment: Fulfillment happens after crowdfunding succeedsdigitalDelayedDelivery: Digital goods or digital entitlements delivered in the futurefutureServiceBooking: Service booking to be fulfilled at a future date or time
preOrderEstimatedDeliveryDateString(10)ConditionalMerchant-promised estimated delivery date. Required whenpreOrderPurchase=true. Timestamp format, in seconds. Example value: 1683530496
captureDelayHoursintRequired- 0 indicates immediate capture
- -1 indicates manual capture, after successfully calling the unified order API, you still need to call Pre-Authorization Capture, local payment does not support this
timeExpireString(10)OptionalOrder closure time. 3 minutes to 10 days (if less than 3 minutes, it defaults to 3 minutes; if more than 10 days, it defaults to 10 days). Timestamp format, unit: seconds, example value: 1683530496amountString(12)RequiredTransaction amount, the precision is related to the currency, please refer to the appendix Transaction CurrenciescurrencyString(3)RequiredTransaction currency, ISO 4217 three-letter code, for specific supported currencies see appendix Transaction CurrenciesmerchantTransactionIdString(64)RequiredMerchant website order serial number, a unique identifier for the order, can be used for subsequent order inquiries and reconciliationpayResultUrlString(255)ConditionalCustom redirect URL set by the merchant; for 3DS verification, bank online transfer, or virtual wallet payments, it finally needs to redirect to the specified page address by the merchantmerchantRequestBillDescriptorString(22)OptionalMerchant-defined dynamic billing descriptor, up to 22 characters. Only English letters, digits, whitespace, and these ASCII punctuation marks are allowed:, . ( ) - / :. Chinese characters and other special characters are not allowed. Different channels may apply appropriate truncation.bizTypeString(12)Conditional`CardOnFile` transaction mode identifier. Pass the fixed value `CardOnFile` when the first bind-and-pay transaction needs to be processed as `CardOnFile`; if this value was passed when the token was first created, it must also be passed in subsequent repeat purchases using that token. Do not pass this parameter for regular saved-card transactions or when only verifying card details (please contact technical support to use this value)- CardOnFile: repeat purchase transactions with the bound card
- Recurring: subsequent MIT charges for subscription/recurring billing; must be used together with `primaryMerchantTransactionId`
primaryMerchantTransactionIdString(64)ConditionalThe `merchantTransactionId` of the first successfully authorized transaction. Required for subsequent MIT charges when `bizType=Recurring`, used to link back to the initial authorizationmerchantUserIdString(256)ConditionalRequired for CardOnFile or CodeGrant mode- CardOnFile: Cardholder ID on the merchant's website, globally unique, used to identify the cardholder and associate stored card information
- CodeGrant: Member ID, user's member ID on the merchant's website
createTokenString(1)ConditionalY/N, whether to create a token. This field controls whether a reusable payment credential is generated after the current payment succeeds. In Non-Hosted mode, pass `Y` when the first saved-card payment needs to generate a payment credential. Do not pass this field again when making repeat purchases with an existing tokentokenString(255)ConditionalBusiness credential token. Pass the corresponding token value by type- CardOnFile: The payment credential returned after successfully saving the card; if the first transaction was processed in `CardOnFile` mode, subsequent repeat purchases using this token must also continue to pass `bizType=CardOnFile`
- CodeGrant: The business credential token obtained after signing or authorization is completed
notificationUrlString(255)OptionalA custom address set by the merchant for notifying the transaction result. Once this parameter is filled, PingPongCheckout will asynchronously push the transaction result to this address via POST.
URL recommendation: use a complete URL with a publicly reachable domain name. Standard web ports are recommended (HTTPS defaults to 443 and HTTP defaults to 80). Ensure the URL can reliably receive PingPongCheckout asynchronous notifications.closeNotificationUrlString(255)OptionalA custom address set by the merchant for notifying the order closure result. Once this parameter is filled, PingPongCheckout will asynchronously push the order closure result to this address via POST.
URL recommendation: use a complete URL with a publicly reachable domain name. Standard web ports are recommended (HTTPS defaults to 443 and HTTP defaults to 80). Ensure the URL can reliably receive PingPongCheckout asynchronous notifications.requestIdString(64)RequiredUnique request number, globally uniqueremarkString(255)OptionalMerchant's extended fields, can be used to specify certain parameters, will be returned as is in the response bodytradeCountryString(2)RequiredUsed to specify the country of the PingPong checkout, by default takes the countries supported by PingPongmerchantSourceString(64)ConditionalPlatform identification for site-building platforms, must be passed when integrating a site-building platform. It serves to identify which site-building platform initiated the transaction (Note: Non-site-building platforms do not need to submit this parameter, if you need to pass this parameter, please contact PP technical support for confirmation)shopperIPString(64)RequiredUser's IP address for placing the order, supports IPv4 formatlanguageString(12)OptionalUsed to specify the language of the PingPong checkout, defaults to en if not provided. See the appendix Checkout Supported Language List for detailsjsGeneratedDataString(256)ConditionalCard payments must integrate the risk control component. Card payments need to pass this, if acquisition fails, an empty string can be passed, without blocking the payment process. By embedding the risk control component provided by pingpong, get the browser-related json string and pass it to this parameter. Used by merchants who interface with the risk control plugin, See 3DS Integration Guide for details
Other Parameters
Request Body Example
{
"accId": "2018092714313010016291",
"clientId": "2018092714313010016",
"signType": "SHA256",
"sign": "898A3CBE981B3E2BF4E2B8D1A817D7E23EF93BC4293993EE545E36F4C87F2E79",
"version": "1.0",
"bizContent": {
"timeExpire": "",
"paymentMethod": {
"type": "scheme"
},
"tradeCountry": "",
"threeDSRequestData": {
"executeThreeD": "",
"authenticationValue": "",
"acsTransactionId": "",
"veresEnrolled": "",
"specificationVersion": "",
"directoryServerTransactionId": "",
"threeDSServerTransactionId": "",
"paresStatus": "",
"eci": ""
},
"browserInfo": {
"acceptHeader": "content-type=application/x-www-form-urlencoded;accept=*/*;cache-control=no-cache;postman-token=cf489264-5378-4d5d-a86c-72c86a408c03;accept-encoding=gzip, deflate;content-length=588;connection=keep-alive;",
"colorDepth": "32",
"jetLag": "480",
"screenHeight": "1980",
"screenWidth": "1080",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 Chrome/72.0.3626.121 Safari/537.36",
"windowSize": "05",
"javaEnabled": "true",
"javaScriptEnabled": "true"
},
"device": {
"fingerprintId": "",
"orderTerminal": "01"
},
"jsGeneratedData": {
"fingerprintId": "2018092714313010016549_PP20210608151727OB",
"forterSiteId": "e088dda90c4e",
"forterTokenCookie": "c3402ed6f84d4c50add3458a1ce51d60_1623137756842_87_UDF43_11ck",
"orderTerminal": "03",
"threeDSServerTransID": ""
},
"shopperIP": "222.126.52.24",
"captureDelayHours": 0,
"language": "en",
"airline": {
"adultsNumber": "1",
"aircraftCabinType": "FIRST CLASS",
"airlineCompanyID": "CA006",
"airlinePnr": "{dhsalh}",
"arrivalCity": "Adm",
"arrivalCountry": "DK",
"arrivalTime": "201912012010",
"arrivalTimezone": "UTC+8",
"babyNumber": "0",
"bestFare": "Y",
"bookChannel": "Y",
"changedTakeoffTime": "",
"childrenNumber": "0",
"connectingCity": "",
"connectionTicket": "N",
"contactEmail": "123456@gmail.com",
"contactName": "James LeBron",
"contactPhone": "3055787342",
"flightNumber": "CA006122",
"freeChange": "Y",
"frequentFlyerNumber": "CA00612254651B",
"haveChanged": "N",
"hotel": {
"bookNumber": "1",
"bookRange": "2",
"checkInDate": "201912010020",
"city": "Adm",
"country": "DK",
"customerName": "James LeBron",
"name": "AdmHotel",
"refundPolicy": "FREE CANCELLATION",
"star": "5"
},
"ifConnectingFlight": "N",
"ifRoundtripFlight": "Y",
"insurance": "Y",
"leaveRange": "Y",
"passengers": [
{
"birthday": "1991120",
"firstName": "James",
"identificationId": "331081199112012361",
"identificationType": "ID",
"lastName": "LeBron",
"nationality": "US",
"phone": "3055787342"
}
],
"productType": "TICKET",
"routeType": "SINGLE",
"takeoffCity": "Birmingham",
"takeoffCountry": "US",
"takeoffTime": "201912012010",
"takeoffTimezone": "UTC+8",
"thirdPartyBook": "N",
"tripType": "SINGLE",
"valueAdded": "N"
},
"amount": "100",
"billingAddress": {
"city": "Birmingham",
"country": "US",
"postcode": "35222",
"state": "AL",
"street": "1986 Broad Street"
},
"carRental": {
"childrenNumber": "1",
"discountAmount": "120",
"discountType": "15%",
"email": "t_email",
"firstName": "James",
"identificationId": "331081199112012361",
"identificationType": "ID",
"insuranceLimit": "8000",
"insuranceType": "RS",
"lastName": "Lebron",
"model": "SUV",
"nationality": "US",
"personNumber": "3",
"phone": "3055787342",
"purchasedInsurance": "Y",
"rentCity": "Birmingham",
"rentCountry": "US",
"rentTime": "201912200320",
"rentalCompany": "US",
"returnCity": "Birmingham",
"returnCountry": "US",
"returnTime": "201201200320"
},
"currency": "USD",
"customer": {
"email": "t_email",
"firstName": "James",
"lastName": "LeBron",
"identificationId": "",
"identificationType": "ID",
"phone": "3055787343",
"birthDate": ""
},
"eCommerce": {
"freeShipping": "N",
"shippingMethod": "SEA",
"shippingFee": ""
},
"goods": [
{
"description": "short legs",
"imgUrl": "http://pic.bizhi360.com/bpic/30/5230.jpg",
"name": "corgi",
"number": "1",
"sku": "20230524001",
"unitPrice": "22",
"virtualProduct": "N"
},
{
"description": "stupid nerd",
"imgUrl": "http://d.paper.i4.cn/max/2016/12/08/11/1481166973148_375716.jpg",
"name": "husky",
"number": "1",
"sku": "20230524002",
"unitPrice": "22",
"virtualProduct": "N"
}
],
"merchantTransactionId": "t_merchantno",
"merchantUserId": "12604896051315",
"merchantRiskIndicator": {
"preOrderPurchase": true,
"preOrderType": "futureServiceBooking",
"preOrderEstimatedDeliveryDate": "1683530496"
},
"notificationUrl": "https://test-acquirer-payment.pingpongx.com/qa/notify",
"payCancelUrl": "https://test-acquirerpay.pingpongx.com/qa/cancel.html",
"payResultUrl": "https://test-acquirerpay.pingpongx.com/qa/result.html",
"reCharge": {
"accountId": "775330",
"accountName": "von",
"gameCategory": "OTHERS",
"gameName": "Over Watched",
"gameTerminal": "PC",
"platformCategory": "N",
"serverCountry": "US",
"type": "GAME RECHARGE"
},
"remark": "Remark customer defined txt",
"requestId": "t_merchantno",
"shippingAddress": {
"city": "Miami",
"country": "US",
"postcode": "33131",
"state": "FL",
"street": "701 Brickell Avenue, Suite 2700"
}
}
}Responses Body Parameters
application/jsonCommon Response Parameters
bizContent
issuerInfoObjectOptionalBank return informationissuerResultCodeStringOptionalBank return codeissuerResultMsgStringOptionalBank return message description
paymentMethodObjectRequiredType and required details of the payment method to be used.typeString(32)RequiredPayment method:- scheme International credit card payment
- Local payment options: Non-Hosted supported APMs
actionObjectRequiredType and required details of the payment method to be used.typeString(32)RequiredLocal payment method · Result type:- QR_CODE - QR code string, needs to be manually converted to a QR code
- QR_URL - Image HTTP protocol URL or base64 image
- PAYMENT_REDIRECT_URL - Redirect link
qrCodeString(32)OptionalLocal payment method · QR code string, needs to be manually converted to a QR codeqrUrlStringOptionalLocal payment method · May be an image HTTP protocol URL or a base64 imagepaymentRedirectUrlStringOptionalLocal payment method · Payment transaction redirect link
cardInfoObjectOptionalPayment credit card informationcardLevelString(64)RequiredCard transaction · Card levelcardTypeStringRequiredCard transaction · Card type, enumeration values:- DEBIT
- CREDIT
- CHARGE
- CARD
firstNameStringRequiredCardholder name, character type, no special symbolslastNameStringRequiredCardholder surname, character type, no special symbolsfirstSixDigitsString(12)RequiredFirst 6 digits of the card numberlastFourDigitsString(12)RequiredLast 4 digits of the card numberipCountryString(4)RequiredUser's transaction countryisoCountryStringRequiredIssuing bank countryissuringBankStringRequiredIssuing bankisoCountryA2StringConditionalTwo-letter country code, compliant with ISO 3166 standardpaymentBrandStringRequiredCard transaction - Card brand: VISA / Mastercard / American Express / JCB / Discover
extraParamObjectConditionalExtended parameter object containing payment method specific parameterswxTimeStampStringOptionalTimestamp in seconds since 1970-01-01 00:00:00, representing the current time📱 WeChat Mini Program: Only returned whendevice.orderTerminal=06and WeChat Mini Program payment is usedwxNonceStrString(32)OptionalRandom string, length should be 32 characters or less📱 WeChat Mini Program: Only returned whendevice.orderTerminal=06and WeChat Mini Program payment is usedwxPackageStringOptionalThe prepay_id parameter returned by the unified order interface, format: prepay_id=***📱 WeChat Mini Program: Only returned whendevice.orderTerminal=06and WeChat Mini Program payment is usedwxSignTypeStringOptionalSignature algorithm, default is RSA📱 WeChat Mini Program: Only returned whendevice.orderTerminal=06and WeChat Mini Program payment is usedwxPaySignStringOptionalSignature, refer to WeChat Pay documentation for details📱 WeChat Mini Program: Only returned whendevice.orderTerminal=06and WeChat Mini Program payment is used
transactionIdStringRequiredPingPong transaction IDmerchantTransactionIdString(64)RequiredWebsite transaction IDamountString(12)RequiredTransaction amount, the precision and currency depend on the specific currency. Please refer to the appendix Trading CurrenciestransactionTimeString(64)RequiredTime of transaction initiation, timestamptransactionEndingTimeString(64)RequiredTime when the transaction reaches its final state, timestampcurrencyString(3)RequiredTransaction currency, ISO 4217 three-letter code. For supported currencies, see the attachment Trading CurrenciesstatusString(32)RequiredTransaction status: Idempotent Status- SUCCESS - Success
- FAILED - Failure
- PROCESSING - In progress
remarkString(255)OptionalMerchant extended field, can be used to specify certain parameters, will be returned as is in the response bodyrequestIdString(64)RequiredUnique request number, globally uniqueexchangedAmountStringOptionalCurrency exchange amountexchangedCurrencyStringOptionalCurrency for exchangetokenString(64)ConditionalThe payment credential returned after successfully saving the card, which can be used for subsequent token-based payment scenarios. If the first transaction was processed in `CardOnFile` mode, subsequent payments using this token must also continue to pass `bizType=CardOnFile`. See Saved Cards and CardOnFile OverviewcaptureDelayHoursintConditional- 0 indicates immediate capture
- -1 indicates manual capture. After successfully calling the unified order API, you also need to call Pre-Authorization Capture. Local payments do not support this.
payResultUrlString(255)ConditionalMerchant-defined URL for receiving redirected result; for 3DS verification, bank online transfer, or virtual wallet payment methods, it finally needs to redirect to the merchant-specified page addressthreeDContinueString(32)ConditionalWhether 3DS (verification processing using risk control plugin) is required:- true: Yes
- false: No
threeDUnionParamsObjectConditional3DS verification parameter set, when the transaction requires 3DS verification processing, pass the return value of this parameter into the specified function of the js plugin provided by PingPong (used by merchants connected via a risk control plugin)
Request Body Example
{
"accId": "2023082916070710253541",
"bizContent": {
"issuerInfo": {
"issuerResultMsg": "Approved or completed successfully",
"issuerResultCode": "00"
},
"remark": "Remark customer defined txt",
"transactionTime": "1714978654000",
"requestId": "PMT-LUC4VOQM381714978651450",
"merchantTransactionId": "PMT-LUC4VOQM381714978651450",
"currency": "USD",
"exchangedAmount": "100",
"exchangedCurrency": "USD",
"amount": "100.000000",
"authenticationInfo": {
"avsResult": "Unknown",
"cvvResult": "Y",
"threeDSecure": "N"
},
"cardInfo": {
"firstName": "James",
"isoCountryA2": "BE",
"lastName": "LeBron",
"lastFourDigits": "1002",
"cardLevel": "",
"paymentBrand": "MASTERCARD",
"cardType": "CREDIT",
"issuringBank": "",
"firstSixDigits": "520474",
"isoCountry": "BELGIUM"
},
"transactionEndingTime": "1714978655669",
"threeDUnionParams": {
"threeDContinue": "false"
},
"transactionId": "2024050650046394",
"threeDContinue": "false",
"paymentMethod": {
"type": "scheme"
},
"captureDelayHours": 0,
"status": "SUCCESS",
"extraParam": {
"wxTimeStamp": "1695182276",
"wxNonceStr": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"wxPackage": "prepay_id=wx20230920123456789012345",
"wxSignType": "RSA",
"wxPaySign": "ABC123DEF456GHI789JKL012MNO345PQR"
}
},
"clientId": "2023082916070710253",
"code": "000000",
"description": "Transaction succeeded",
"sign": "EFDF7C80DAD9EBB13C29E38D7A5BD57899E7C0B7C7414A45F718240381299B56",
"signType": "SHA256"
}