Querying Payment Status

This interface /PaymentStatusQuery.pmt enables webstore to query the status of the orders or payment transactions in Svea Payments.

Payment Status Query is recommended to be used even for orders that have been cancelled before paying or seem cancelled. That is, status should be queried even if the buyer has returned to the webstore using cancel or error return URL. Check out Common Pitfalls for more information why you should implement payment status query.

The first status query could be done for example one (1) or two (2) hours after the order was placed. This should tackle most situations. If Svea Payments does not know the status of the payment at that point, a call to corresponding bank’s status query interface is triggered.

In some rare cases, which we have seen happening, the status query to the bank never succeeds, but then one or two banking days later, Svea Payments receives the buyer’s money to the customer assets bank account. When that happens, Svea Payments marks the transaction as paid and from that point on the Payment Status Query API will report the order as paid. Therefore, f
or orders that stay in an unknown payment state, it could be a good solution to poll Svea Payments Payment Status Query for example once a day, for a period of a few banking days after the order was placed.

Request example (HTTP POST)

<form method="post" action="https://test1.maksuturva.fi/PaymentStatusQuery.pmt">
    <input type="text" name="pmtq_action"        value="PAYMENT_STATUS_QUERY" />       
    <input type="text" name="pmtq_version"       value="0005" />
    <input type="text" name="pmtq_sellerid"      value="ABC123DE" />
    <input type="text" name="pmtq_id"            value="1998524_1" />
    <input type="text" name="pmtq_resptype"      value="XML" />
    <input type="text" name="pmtq_hashversion"   value="SHA-256" />
    <input type="text" name="pmtq_hash"          value="6E496757BEA05DACEEEC625E9FCD12802AF67D189F311DAF372BB618A17341A3" />
    <input type="text" name="pmtq_keygeneration" value="1" />
</form>

Response examples (HTTP RESPONSE)

Payment was not found or the payment has not been confirmed:

<pmtq>
    <pmtq_returncode>00</pmtq_returncode>
    <pmtq_returntext>No payment found with specified data</pmtq_returntext>
    <pmtq_action>PAYMENT_STATUS_QUERY</pmtq_action>
    <pmtq_id>1998524_1</pmtq_id>
    <pmtq_amount>0,00</pmtq_amount>
    <pmtq_hash>7FC9C32FC4FCD351AC0C10CFA1A69C7D4D6BB17EAC972B44F084E8E0DE452DAE</pmtq_hash>
    <pmtq_sellerid>ABC123DE</pmtq_sellerid>
    <pmtq_version>0005</pmtq_version>
</pmtq>

Payment has not been confirmed:

The buyer may still be in the Internet bank and about to confirm the payment.

<pmtq>
    <pmtq_returntext>No payment found with specified data</pmtq_returntext>
    <pmtq_paymentmethod>FI01</pmtq_paymentmethod>
    <pmtq_amount>568,10</pmtq_amount>
    <pmtq_paymentstarttimestamp>15.10.2014 14:16:48</pmtq_paymentstarttimestamp>
    <pmtq_returncode>00</pmtq_returncode>
    <pmtq_certification>N</pmtq_certification>
    <pmtq_action>PAYMENT_STATUS_QUERY</pmtq_action>
    <pmtq_id>1998524_1</pmtq_id>
    <pmtq_escrow>Y</pmtq_escrow>
    <pmtq_hash>A217E028A693141DB445ED7A6A70646116F28E973B822254CAAFB18EA89EF912</pmtq_hash>
    <pmtq_sellerid>ABC123DE</pmtq_sellerid>
    <pmtq_sellercosts>5,00</pmtq_sellercosts>
    <pmtq_version>0005</pmtq_version>
</pmtq>

Payment has been confirmed and delivery info has been added:

(Satisfaction Guarantee payment service)

<pmtq>
    <pmtq_paymentdate>15.10.2014</pmtq_paymentdate>
    <pmtq_returntext>Paid, being delivered and uncompensated</pmtq_returntext>
    <pmtq_paymentmethod>FI01</pmtq_paymentmethod>
    <pmtq_amount>568,10</pmtq_amount>
    <pmtq_paymentstarttimestamp>15.10.2014 14:16:48</pmtq_paymentstarttimestamp>
    <pmtq_returncode>30</pmtq_returncode>
    <pmtq_trackingcodes>[ITELL|JJFI12345678901234567|00]</pmtq_trackingcodes>
    <pmtq_certification>Y</pmtq_certification>
    <pmtq_action>PAYMENT_STATUS_QUERY</pmtq_action>
    <pmtq_id>1998524_1</pmtq_id>
    <pmtq_escrow>Y</pmtq_escrow>
    <pmtq_hash>4BC6BFA68A44CB0A432340FEE90B90C9844C466288FD9FFC260CEAFB4DAD3320</pmtq_hash>
    <pmtq_sellerid>ABC123DE</pmtq_sellerid>
    <pmtq_sellercosts>5,00</pmtq_sellercosts>
    <pmtq_version>0005</pmtq_version>
</pmtq>

Payment has been settled to webstore:

<pmtq>
    <pmtq_paymentdate>15.10.2014</pmtq_paymentdate>
    <pmtq_returntext>Compensated to the seller</pmtq_returntext>
    <pmtq_paymentmethod>FI01</pmtq_paymentmethod>
    <pmtq_amount>568,10</pmtq_amount>
    <pmtq_paymentstarttimestamp>15.10.2014 14:16:48</pmtq_paymentstarttimestamp>
    <pmtq_returncode>40</pmtq_returncode>
    <pmtq_trackingcodes>[ITELL|JJFI12345678901234567|80]</pmtq_trackingcodes>
    <pmtq_certification>Y</pmtq_certification>
    <pmtq_action>PAYMENT_STATUS_QUERY</pmtq_action>
    <pmtq_id>1998524_1</pmtq_id>
    <pmtq_escrow>Y</pmtq_escrow>
    <pmtq_hash>1A26625AB05E7CBCFB148894BE77AC498ED852D4526005F03B3E76791F4D3ACC</pmtq_hash>
    <pmtq_sellerid>ABC123DE</pmtq_sellerid>
    <pmtq_sellercosts>5,00</pmtq_sellercosts>
    <pmtq_version>0005</pmtq_version>
</pmtq>