The paymentWithState
type represents a payment with its last state.
Example:
<payment xsi:type="paymentWithState">
<merchantID>KalixaAcceptDEMO</merchantID>
<shopID>KalixaAcceptDEMO</shopID>
<paymentMethod>
<key>2</key>
<value>VISA Deposit</value>
</paymentMethod>
<merchantTransactionID>Order99999</merchantTransactionID>
<paymentID>86b10ad3-d7f6-43fe-bccf-cfde79689584</paymentID>
<userID>u12312312</userID>
<paymentProvider>
<key>92</key>
<value>CQRUK</value>
</paymentProvider>
<amount currencyCode="EUR">100.0000</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>b8c96597-97f7-4ed8-ba63-1d512f8eb62a</id>
<definition>
<key>13</key>
<value>AuthorisedByProvider</value>
</definition>
<createdOn>2017-03-29T13:52:03.997</createdOn>
<description>Approved or completed successfully</description>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderResponseCode</key>
<value>0</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ApprovalCode</key>
<value>129560</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>true</isExecuted>
<baseAmount currencyCode="EUR">100.0000</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>471762</value>
</detail>
</paymentDetails>
</payment>
Fields:
<th>
description
</th>
</tr>
<td>
Merchant ID
</td>
</tr>
<tr>
<td>
**shopID**\
([stringID](ref:stringid), <span style="color:red">required</span>)
</td>
<td>
Shop ID
</td>
</tr>
<tr>
<td>
**paymentMethod**\
(*[keyStringValuePair](ref:keyxvaluepair)*, <span style="color:red">required</span>)
</td>
<td>
key = ID of the corresponding payment method\
value = name of the corresponding payment method
See [Payment Methods](doc:payment-methods) for a list including corresponding credit/debit and reversal states.
</td>
</tr>
<tr>
<td>
**merchantTransactionID**\
([stringID](ref:stringid), <span style="color:red">required</span>)
</td>
<td>
Merchant’s transaction ID
</td>
</tr>
<tr>
<td>
**paymentID**\
([guid](ref:guid), <span style="color:red">required</span>)
</td>
<td>
PXP Financial’s Unique ID of the payment
There can be multiple payments with Unique ID related to one merchantTransactionID. This is possible in Refunds, or payment retries from a particular customer
</td>
</tr>
<tr>
<td>
**userID**\
([stringID](ref:stringid), <span style="color:red">required</span>)
</td>
<td>
The customer ID
</td>
</tr>
<tr>
<td>
**paymentProvider**\
(*[keyStringValuePair](ref:keyxvaluepair)*)
</td>
<td>
The provider through which the payment was processed
</td>
</tr>
<tr>
<td>
**amount**\
([money](ref:money), <span style="color:red">required</span>)
</td>
<td>
same as in request
</td>
</tr>
<tr>
<td>
**shopFee**\
([money](ref:money))
</td>
<td>
same as in request
</td>
</tr>
<tr>
<td>
**creationType**\
(*[keyStringValuePair](ref:keyxvaluepair)*, <span style="color:red">required</span>)
</td>
<td>
same as in request
</td>
</tr>
<tr>
<td>
**userIP**\
([IPAddress](ref:ipaddress))
</td>
<td>
same as in request
</td>
</tr>
<tr>
<td>
**payment.state**\
(*paymentState*, <span style="color:red">required</span>)
</td>
<td>
The current (last) state of the payment, containing all state-specific details
</td>
</tr>
<tr>
<td>
**state.id**\
([guid](ref:guid), <span style="color:red">required</span>)
</td>
<td>
The ID of the payment state
</td>
</tr>
<tr>
<td>
**state.definition**\
(*[keyStringValuePair](ref:keyxvaluepair)*, <span style="color:red">required</span>)
</td>
<td>
The ID and Name of the state, e.g. 13 AuthorisedByProvider
</td>
</tr>
<tr>
<td>
**state.createdOn**\
(*dateTime*, <span style="color:red">required</span>)
</td>
<td>
The payment state creation date and time, UTC
</td>
</tr>
<tr>
<td>
**state.description**\
([secureString](ref:securestring))
</td>
<td>
</td>
</tr>
<tr>
<td>
**state.paymentStateDetails**\
(*array of keyValueBasePairs*)
</td>
<td>
Additional state-specific information (e.g. rec*e*ived from the card schemes in relation to the payment result).\
Depending on state definition (`payment.state.definition.key`) and payment method ('payment.paymentMethod.key') specific key-values can be returned in the `payment.state.paymentStateDetails` key-value collection.
</td>
</tr>
<tr>
<td>
**isExecuted**\
(*boolean*)
</td>
<td>
Indicates if the payment has reached a credit/debit state indicating that the money transfer has been authorised
</td>
</tr>
<tr>
<td>
**baseAmount**\
([money](ref:money))
</td>
<td>
</td>
</tr>
<tr>
<td>
**paymentDetails**\
(*array of keyValueBasePairs*)
</td>
<td>
Further information can be delivered depending on the payment method
</td>
</tr>
<tr>
<td>
**paymentAccount**\
(*paymentAccount*)
</td>
<td>
</td>
</tr>
<tr>
<td>
**paymentAccount.paymentAccountID**\
(*paymentAccount*, <span style="color:red">required</span>)
</td>
<td>
The token associated to the card number or any alternative payment method account
</td>
</tr>
<tr>
<td>
**paymentAccount.details**\
(*array of keyValueBasePairs*)
</td>
<td>
Further information can be delivered depending on the payment account type
</td>
</tr>
field (type, required) |
---|
**merchantID** ([stringID](ref:stringid), required) |
XML Schema:
<complexType name="paymentWithState">
<sequence>
<element minOccurs="1" maxOccurs="1" name="merchantID" type="stringID"/>
<element minOccurs="1" maxOccurs="1" name="shopID" type="stringID"/>
<element minOccurs="1" maxOccurs="1" name="paymentMethod" type="keyStringValuePair"/>
<element minOccurs="1" maxOccurs="1" name="merchantTransactionID" type="merchantTransactionID"/>
<element minOccurs="1" maxOccurs="1" name="paymentID" type="guid"/>
<element minOccurs="1" maxOccurs="1" name="userID" type="stringID"/>
<element minOccurs="0" maxOccurs="1" name="paymentProvider" type="keyStringValuePair"/>
<element minOccurs="1" maxOccurs="1" name="amount" type="money"/>
<element minOccurs="0" maxOccurs="1" name="shopFee" type="money"/>
<element minOccurs="1" maxOccurs="1" name="creationType" type="keyStringValuePair"/>
<element minOccurs="0" maxOccurs="1" name="userIP" type="IPAddress"/>
<element minOccurs="1" maxOccurs="1" name="state" type="paymentState"/>
<element minOccurs="0" maxOccurs="1" name="isExecuted" type="s:boolean" nillable="true"/>
<element minOccurs="0" maxOccurs="1" name="baseAmount" type="money"/>
<element minOccurs="0" maxOccurs="1" name="paymentDetails" nillable="true">
<complexType>
<sequence>
<element minOccurs="1" maxOccurs="100" name="detail" type="keyValueBasePair"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>