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
| Field | Type | Req | Description |
|---|---|---|---|
Request | string | Yes | Must be createAccount |
CompanyToken | string | Yes | Token provided by DPO to authorize API operations |
CustomerEmail | string | Yes | Customer email address |
CustomerFirstName | string | Yes | Customer first name |
CustomerLastName | string | Yes | Customer last name |
CustomerPhone | string | Yes | Customer phone number |
CustomerDialCode | string | Yes | Customer country ISO-2 code (e.g., ZA, KE, NG) |
CustomerPassword | string | No | Minimum 6 characters; supports !@#$%&()? |
CustomerAddress | string | No | Customer address |
CustomerCity | string | No | Customer city |
CustomerCountry | string | No | Country ISO-2 code (e.g., KE, UG) |
CustomerZip | string | No | Postal/ZIP code |
CustomerNoCard | integer | No | 1 = create account without card; 0 = create with card (default 0) |
CustomerCreditCard | string | Conditionally | Required if CustomerNoCard = 0 |
CustomerExpiry | string | Conditionally | Required if CustomerNoCard = 0 – Format: MMYY |
CustomerCvv | string | Conditionally | Required if CustomerNoCard = 0 |
CustomerHolderName | string | Conditionally | Required if CustomerNoCard = 0 |
CustomerAllowSWrefunds | string | No | Verify card via current company account (default 0) |
CustomerThreeD | object | No | 3-D Secure verification object (optional) |
CustomerThreeD object
CustomerThreeD object| Field | Type | Description |
|---|---|---|
Enrolled | string | Enrollment status |
Paresstatus | string | PARes status (e.g., Y, N) |
Eci | string | Electronic Commerce Indicator (e.g., 05, 06) |
Xid | string | Transaction identifier |
Cavv | string | CAVV/AVV value |
Signature | string | 3DS signature result |
Veres | string | Verification result |
Pares | string | PARes 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
| Field | Type | Description |
|---|---|---|
Result | integer | Response code |
ResultExplanation | string | Human-readable explanation |
customerToken | string | Unique customer token (used for Super Wallet operations) |
subscriptionToken | string | Tokenized card reference for future payments/subscriptions |
cardType | string | Credit card brand |
cardLast4 | string | Last 4 digits of card number |
Result Codes
| Code | ResultExplanation | Meaning / Action |
|---|---|---|
000 | Card verified | Success – account and card created |
999 | Account created, card not verified | Retry or add card later |
803 | No or invalid request name | Ensure Request=createAccount |
888 | System error | Retry or contact support |
902 | Data mismatch | Verify request fields |
950 | Missing mandatory fields | Add missing tag(s) |
991 | Encrypted string empty | Encryption 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=1to 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
CustomerThreeDobject helps pre-verify cards during account creation. - Error handling: Always check both
ResultandResultExplanationbefore assuming success. - Token usage: The returned
customerTokenandsubscriptionTokenare required for all subsequent Super Wallet operations (e.g.,addCard,SuperWalletPay,SuperWalletGetTransactions).

