Customer Charge Token

Use customerChargeToken to charge a customer’s stored card using their existing Super Wallet tokens.

This request completes a payment by referencing both the customerToken and subscriptionToken (paymentToken).

Common use: perform payments for returning customers without collecting card details again.


Endpoint

POST https://secure.3gdirectpay.com/API/v6/

Headers

Content-Type: application/xml; charset=utf-8
Accept: application/xml

Request

Required Fields

FieldTypeReqDescription
RequeststringYesMust be customerChargeToken
CompanyTokenstringYesToken provided by DPO to authorize API operations
TransactionTokenstringYesToken of the transaction to be charged
customerTokenstringYesCustomer’s Super Wallet token
paymentTokenstringYesTokenized card reference (subscriptionToken)
paymentTokenCVVintegerNoCard CVV — if mandatory, the API will respond instructing to resend with CVV

Example Request (XML)

<?xml version="1.0" encoding="utf-8"?>
<API3G>
  <CompanyToken>68B90B5E-25F6-4146-8AB1-C7A3A0C41A7F</CompanyToken>
  <Request>customerChargeToken</Request>
  <TransactionToken>3AB58C3C-796F-4FA9-A333-72E75250778E</TransactionToken>
  <customerToken>9C6BB1D2-B2DE-46B3-8AD7-409168936DDA</customerToken>
  <paymentToken>977E056D-3AD2-4DC5-AE8A-3B8CFF00741A</paymentToken>
  <paymentTokenCVV>111</paymentTokenCVV>
</API3G>

Note:
If the response indicates that CVV is required, re-submit the same request including paymentTokenCVV.


Response

Example Success Response (XML)

<?xml version="1.0" encoding="utf-8"?>
<API3G>
  <Result>000</Result>
  <ResultExplanation>Transaction successful</ResultExplanation>
</API3G>

Field Reference

FieldTypeDescription
ResultintegerResponse code returned by the API
ResultExplanationstringFree-text explanation of the result

Result Codes

CodeResultExplanationMeaning / Action
000Transaction successfulPayment processed successfully
888System errorRetry or contact support
999Customer not found / Account verification requiredEnsure customer account is verified
902Data mismatchVerify transaction and token fields
950Missing mandatory fieldsCheck XML structure and required tags
803No or invalid request nameConfirm Request=customerChargeToken
991Encrypted string is emptyCheck encryption and formatting

Typical Usage Flow

sequenceDiagram
  participant M as Merchant
  participant D as DPO API

  M->>D: customerChargeToken<br/>(customerToken + paymentToken + TransactionToken)
  D-->>M: Result 000 + Transaction successful
  alt CVV required
    D-->>M: Response indicates CVV mandatory
    M->>D: Resubmit request with paymentTokenCVV
    D-->>M: Result 000 + Transaction successful
  end
   Note over M->>M: Mark transaction as paid in system

Notes & Best Practices

  • Tokenized payments: Use this endpoint for returning customers; no card data should ever be re-entered.
  • CVV handling: Some issuers require CVV for stored card transactions — always respect the API’s response and re-submit only if prompted.
  • Security: Never store or log the CVV. Only keep customerToken and subscriptionToken for future use.
  • Idempotency: Avoid duplicate charges by tracking TransactionToken at your application level.
  • Response validation: Always verify both Result and ResultExplanation before updating payment status.
  • Error recovery: Retry only when safe (e.g., for transient 888 errors). Avoid retrying on verification or data mismatch errors.