paymentWithState

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>