Create Account

Use createAccount to create a new Super Wallet account for a customer.

If card details are provided, the API attempts to verify the card by charging 0.15 USD (a temporary authorization).

Common use: onboard a customer into Super Wallet and tokenize their first payment card in one call.


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 createAccount
CompanyTokenstringYesToken provided by DPO to authorize API operations
CustomerEmailstringYesCustomer email address
CustomerFirstNamestringYesCustomer first name
CustomerLastNamestringYesCustomer last name
CustomerPhonestringYesCustomer phone number
CustomerDialCodestringYesCustomer country ISO-2 code (e.g., ZA, KE, NG)
CustomerPasswordstringNoMinimum 6 characters; supports !@#$%&()?
CustomerAddressstringNoCustomer address
CustomerCitystringNoCustomer city
CustomerCountrystringNoCountry ISO-2 code (e.g., KE, UG)
CustomerZipstringNoPostal/ZIP code
CustomerNoCardintegerNo1 = create account without card; 0 = create with card (default 0)
CustomerCreditCardstringConditionallyRequired if CustomerNoCard = 0
CustomerExpirystringConditionallyRequired if CustomerNoCard = 0Format: MMYY
CustomerCvvstringConditionallyRequired if CustomerNoCard = 0
CustomerHolderNamestringConditionallyRequired if CustomerNoCard = 0
CustomerAllowSWrefundsstringNoVerify card via current company account (default 0)
CustomerThreeDobjectNo3-D Secure verification object (optional)

CustomerThreeD object

FieldTypeDescription
EnrolledstringEnrollment status
ParesstatusstringPARes status (e.g., Y, N)
EcistringElectronic Commerce Indicator (e.g., 05, 06)
XidstringTransaction identifier
CavvstringCAVV/AVV value
Signaturestring3DS signature result
VeresstringVerification result
ParesstringPARes content (base64/encoded)

Example Request (XML)

<?xml version="1.0" encoding="utf-8"?>
<API3G>
  <CompanyToken>8D3DA73D-9D7F-4E09-96D4-3D44E7A83EA3</CompanyToken>
  <Request>createAccount</Request>
  <CustomerEmail>[email protected]</CustomerEmail>
  <CustomerFirstName>Josh</CustomerFirstName>
  <CustomerLastName>Grinberg</CustomerLastName>
  <CustomerAddress>Rose Avenue 14</CustomerAddress>
  <CustomerCity>Nairobi</CustomerCity>
  <CustomerCountry>KE</CustomerCountry>
  <CustomerDialCode>KE</CustomerDialCode>
  <CustomerPhone>0553231231</CustomerPhone>
  <CustomerZip>762132</CustomerZip>
  <CustomerCreditCard>4111111111111111</CustomerCreditCard>
  <CustomerExpiry>1225</CustomerExpiry>
  <CustomerCvv>123</CustomerCvv>
  <CustomerHolderName>Josh Grinberg</CustomerHolderName>
  <CustomerAllowSWrefunds>1</CustomerAllowSWrefunds>
  <CustomerThreeD>
    <Enrolled>fkf></Enrolled>
    <Paresstatus>Y</Paresstatus>
    <Eci>05</Eci>
    <Xid>DYYVcrwnujRMnHDy1wlP1Ggz8w0=</Xid>
    <Cavv>mHyn+7YFi1EUAREAAAAvNUe6Hv8=</Cavv>
    <Signature>_</Signature>
    <Veres>AUTHENTICATION_SUCCESSFUL</Veres>
    <Pares>eAHNV1mzokgW\/is</Pares>
  </CustomerThreeD>
</API3G>

Note: If CustomerNoCard=1, omit card-related fields.


Response

Example Success Response (XML)

<?xml version="1.0" encoding="utf-8"?>
<API3G>
  <Result>000</Result>
  <ResultExplanation>Card verified</ResultExplanation>
  <customerToken>9C6BB1D2-B2DE-46B3-8AD7-409168936DDA</customerToken>
  <subscriptionToken>977E056D-3AD2-4DC5-AE8A-3B8CFF00741A</subscriptionToken>
  <cardType>Visa</cardType>
  <cardLast4>2222</cardLast4>
</API3G>

Field Reference

FieldTypeDescription
ResultintegerResponse code
ResultExplanationstringHuman-readable explanation
customerTokenstringUnique customer token (used for Super Wallet operations)
subscriptionTokenstringTokenized card reference for future payments/subscriptions
cardTypestringCredit card brand
cardLast4stringLast 4 digits of card number

Result Codes

CodeResultExplanationMeaning / Action
000Card verifiedSuccess – account and card created
999Account created, card not verifiedRetry or add card later
803No or invalid request nameEnsure Request=createAccount
888System errorRetry or contact support
902Data mismatchVerify request fields
950Missing mandatory fieldsAdd missing tag(s)
991Encrypted string emptyEncryption or formatting error

Typical Usage Flow

sequenceDiagram
  participant M as Merchant
  participant D as DPO API

  M->>D: createAccount (customer + card details)
  D-->>M: Result 000 + customerToken + subscriptionToken
  alt Card verified
    M->>M: Store customerToken & subscriptionToken securely
  else Card not verified
    D-->>M: Result 999 (retry or verify via addCard)
  end
  Note over M,D: 0.15 USD authorization may be charged for verification

Notes & Best Practices

  • Verification charge: The API attempts to verify cards by charging 0.15 USD — this is an authorization check only.
  • Without card: Set CustomerNoCard=1 to create an account without linking a card immediately.
  • PCI compliance: Never log or store full PAN or CVV. Keep only tokens.
  • 3-D Secure: When provided, the CustomerThreeD object helps pre-verify cards during account creation.
  • Error handling: Always check both Result and ResultExplanation before assuming success.
  • Token usage: The returned customerToken and subscriptionToken are required for all subsequent Super Wallet operations (e.g., addCard, SuperWalletPay, SuperWalletGetTransactions).