Bank Transfer Status

Overview

The order management system should submit a BankTransferStatusCheckoutRequest message to determine when to ship goods. The asynchronous version of this operation returns a BankTransferStatusCheckoutReply message only when the bank transfer transaction reaches an actionable state (for example, PAID or REJECTED).

For some bank transfer tenders, the CONFIRMED_WITH_SECURITY_IND status might be returned before the PAID status. It is safe to ship once the transaction reaches CONFIRMED_WITH_SECURITY_IND, if there is a desire to ship as soon as possible.

An alternate response format, BankTransferStatusCheckoutReplyList, groups several events together in a single message, and is intended for clients using the Webhooks Implementation for Asynchronous Messages. If you are using the Webhooks implemention, see Bank Transfer Status List Event, below.

URI Summary

Action URI Template URI Example Non-URI Request Response
POST /v[M.m]/stores/[StoreID]/
payments/banktransfer/
status/async/[TenderType].[format]
/v1.0/stores/ABCXYZ/
payments/banktransfer/
status/async/SF.xml
XML 200 + XML response

Request Example

The request is a BankTransferStatusCheckoutRequest message.

<?xml version="1.0" encoding="UTF-8"?>
<BankTransferStatusCheckoutRequest xmlns="http://api.gsicommerce.com/schema/checkout/1.0">
   <PaymentContext>
      <OrderId>12345</OrderId>
   </PaymentContext>
   <CurrencyCode>EUR</CurrencyCode>
</BankTransferStatusCheckoutRequest>

Request Elements

Element Required Description Type Restriction
PaymentContext Yes Sequence of OrderId ComplexType  
PaymentContext/
OrderId
Yes Order ID String Max 20 characters
CurrencyCode Yes Type of currency used for the order String 3-character ISO 4217 code (for example, USD, CAD, EUR). See http://en.wikipedia.org/wiki/ISO_4217.

HTTP Response

<?xml version="1.0" encoding="UTF-8"?>
<AckReply xmlns="http://api.gsicommerce.com/schema/checkout/1.0">
   <Received/>
</AckReply>

Queue Format

q.Payments.BankTransfer.Status.<RABBIT_MQ_USERNAME>

Response Example

The response is a BankTransferStatusCheckoutReply message.

<?xml version="1.0" encoding="UTF-8"?>
<BankTransferStatusCheckoutReply xmlns="http://api.gsicommerce.com/schema/checkout/1.0">
   <PaymentContext>
      <OrderId>12345</OrderId>
   </PaymentContext>
   <StoreId>ABCXYZ</StoreId>
   <Status>PAID</Status>
</BankTransferStatusCheckoutReply>

Response Elements

Element Required Description Type Restriction
PaymentContext Yes Sequence of OrderId ComplexType  
PaymentContext/
OrderId
Yes Order ID String Max 20 characters
StoreId Yes Store identifier String Max 100 characters
Status Yes Status of the bank transfer transaction:

PAID - Transaction was paid. It is safe to ship goods.

PENDING - Transaction is pending. It is not safe to ship goods. (This status is not returned for asynchronous calls.)

REJECTED - Transaction was rejected. Order should be canceled.

CONFIRMED_WITH_SECURITY_IND - Transaction passed risk assessment but has not been paid. It is safe to ship goods.

TIMEOUT - Status call timed out. (This status is not returned for asynchronous calls.)

ERROR - An unrecoverable error occurred (for example, invalid order ID).

String

PAID

PENDING

REJECTED

CONFIRMED_ WITH_SECURITY_IND

TIMEOUT

ERROR

Bank Transfer Status List Event

The xml response (mentioned below) contains a list of BankTransferStatusCheckoutReply messages all clubbed under one parent element and is available only for clients using webhook. This message cannot be obtained from a queue in RabbitMQ and hence the queue format is not applicable for this message. If you want to sign up for these events please contact customer service.

However, individual BankTransferStatusCheckoutReply message continues to live on RabbitMQ server and can be accessed using the information provided above.

Response Example

The response is a list of BankTransferStatusCheckoutReply messages. Instead of returning single BankTransferStatusCheckoutReply message, a list/batch of messsages are getting returned

<?xml version="1.0" encoding="UTF-8"?>
<BankTransferStatusCheckoutReplyList xmlns="http://api.gsicommerce.com/schema/checkout/1.0">
    <BankTransferStatusCheckoutReply>
       <PaymentContext>
          <OrderId>12345</OrderId>
       </PaymentContext>
       <StoreId>ABCXYZ</StoreId>
       <Status>PAID</Status>
    </BankTransferStatusCheckoutReply>
    <BankTransferStatusCheckoutReply>
       <PaymentContext>
          <OrderId>100023</OrderId>
       </PaymentContext>
       <StoreId>ABC</StoreId>
       <Status>PAID</Status>
    </BankTransferStatusCheckoutReply>
</BankTransferStatusCheckoutReplyList>

Response Elements

Element Required Description Type Restriction
BankTransferStatusCheckoutReplyList A wrapper/parent object for all the BankTransferStatusCheckoutReply elements Sequence of BankTransferStatusCheckoutReply elements ComplexType  
BankTransferStatusCheckoutReply A wrapper/parent object for all the sub-elements such as PaymentContext, StoreId, Status etc. Sequence of PaymentContext, StoreId, Status ComplexType  
PaymentContext Yes Sequence of OrderId ComplexType  
PaymentContext/
OrderId
Yes Order ID String Max 20 characters
StoreId Yes Store identifier String Max 100 characters
Status Yes Status of the bank transfer transaction:

PAID - Transaction was paid. It is safe to ship goods.

PENDING - Transaction is pending. It is not safe to ship goods. (This status is not returned for asynchronous calls.)

REJECTED - Transaction was rejected. Order should be canceled.

CONFIRMED_WITH_SECURITY_IND - Transaction passed risk assessment but has not been paid. It is safe to ship goods.

TIMEOUT - Status call timed out. (This status is not returned for asynchronous calls.)

ERROR - An unrecoverable error occurred (for example, invalid order ID).

String

PAID

PENDING

REJECTED

CONFIRMED_ WITH_SECURITY_IND

TIMEOUT

ERROR