Charge a transaction created by createToken using credit card details with chargeTokenCreditCard in DPO Pay API v6.
Charge Token Credit Card (v6)
PCI Note: This operation requires you to collect and transmit PAN/CVV server-side. Do not use from browsers or mobile apps. Prefer the Hosted Checkout flow where possible.
Charge a transaction that was created by createToken using credit card details.
Use chargeTokenCreditCard when your integration is approved to submit card data directly to DPO. The method returns the result of the charge request.
Endpoint
POST https://secure.3gdirectpay.com/API/v6/Headers
Content-Type: application/xml; charset=utf-8
Accept: application/xmlRequest parameters
| Parameter | Data type | Description | Required |
|---|---|---|---|
Request | Text | Must be chargeTokenCreditCard. | Mandatory |
CompanyToken | Token | Token you received from 3G to operate this API. | Mandatory |
TransactionToken | Token | Transaction token received from createToken. | Mandatory |
CreditCardNumber | Number | Credit card number. | Mandatory |
CreditCardExpiry | MMYY | Month and year of the credit card expiry. | Mandatory |
CreditCardCVV | Number | 3–4 digit CVV. | Mandatory |
CardHolderName | Text | Cardholder name. | Mandatory |
ChargeType | Text | Charge type of the card. | Optional |
ThreeD | Data | Data for the 3D process. | Optional |
ThreeD parameters
Send ThreeD data when it is required for the 3D process. Required fields depend on the terminal type, such as MPGS3D2, MPGS3D2Airlines, PG3D2, or NI3D.
| Parameter | Data type | Description |
|---|---|---|
Enrolled | Text | 3D2 parameter. Mandatory for all terminal types. |
Eci | Text | 3D2 parameter. Mandatory for all terminal types. |
Cavv | Text | 3D2 parameter. Mandatory for all terminal types. |
ThreedDSTransId | Text | 3D2 parameter. Mandatory for PG3D. |
ThreedMessageVersion | Text | 3D2 parameter. Mandatory for all terminal types. |
TransactionStatus | Text | 3D2 parameter. Mandatory for all terminal types. |
ThreeDStatus | Number | 3D2 parameter. Mandatory for all terminal types. |
ThreedACSIssuerCode | Number | 3D2 parameter. Mandatory for PG3D only. |
AuthenticationType | Number | 3D2 parameter. Mandatory for NI3D terminal types. |
ThreedServerTransId | Text | 3D2 parameter. Mandatory for NI3D terminal types. |
Request example
<?xml version="1.0" encoding="utf-8"?>
<API3G>
<CompanyToken>57466282-EBD7-4ED5-B699-8659330A6996</CompanyToken>
<Request>chargeTokenCreditCard</Request>
<TransactionToken>72983CAC-5DB1-4C7F-BD88-352066B71592</TransactionToken>
<CreditCardNumber>123412341234</CreditCardNumber>
<CreditCardExpiry>1214</CreditCardExpiry>
<CreditCardCVV>333</CreditCardCVV>
<CardHolderName>John Doe</CardHolderName>
<ChargeType></ChargeType>
<ThreeD>
<Enrolled>Y</Enrolled>
<Eci>05</Eci>
<ThreedDSTransId>41c98d57-8262-438f-b15b-143128440f5d</ThreedDSTransId>
<Cavv>mHyn+7YFi1EUAREAAAAvNUe6Hv8=</Cavv>
<ThreedACSIssuerCode>02</ThreedACSIssuerCode>
<ThreedMessageVersion>2.1.0</ThreedMessageVersion>
<TransactionStatus>Y</TransactionStatus>
</ThreeD>
</API3G>Response fields
The server responds to the chargeTokenCreditCard request with the result of your request.
| Parameter | Data type | Description |
|---|---|---|
Result | 3/4 digit code | Code sent with the result of the request. |
ResultExplanation | Text | Free text result explanation. |
Response codes
| Code | Explanation |
|---|---|
000 | Transaction charged. |
200 | Transaction already paid. |
801 | Request missing company token. |
802 | Wrong CompanyToken. |
803 | No request or error in request type name. |
804 | Error in XML. |
902 | Data mismatch in one of the fields: field name. |
950 | Request missing mandatory fields: field name. |
999 | Transaction declined: explanation. |
Success response example
<?xml version="1.0" encoding="utf-8"?>
<API3G>
<Result>000</Result>
<ResultExplanation>Transaction charged</ResultExplanation>
</API3G>Security and compliance
- Server-side only. Never send PAN/CVV from a browser or mobile app unless you are fully PCI compliant.
- Do not log
CreditCardNumberorCreditCardCVV. Mask where unavoidable, using the last 4 digits only. - Prefer Hosted Checkout or tokenization flows where possible to reduce PCI scope.
- If you send
ThreeDdata, transmit the values exactly as provided by your 3D Secure provider.

