Merchant Initiated Transaction

A merchant initiated transaction is a payment that is agreed with payer's consent, and is initiated by the merchant collecting the payment.

In order to apply for a merchant initiated transaction, the merchant needs to specify why this transaction is initiated, as well as the authorization_tracking_id of the original transaction, and stored_credential_indicator to show if it's the first card on file transaction on the subsequent one.

You can see different reasons here.

A Merchant Initiated Transaction Example

In order to apply a merchant initiated transaction, the customer will need to put their card on file first.

This transaction can be a zero dollar authorization just to put card on file, or it could be the initial payment customer is required to pay. We will assume customer is just doing a zero dollar authorization. We can create the transaction via Create a purchase .

Note that since we are putting card on file, we will need to specify card_on_file to true.

/* 
 * Request: POST /v1.0/purchases
 */
{
  "amount": 0,
  "currency": "AUD",
  "card_holder": "John Smith",
  "card_number": "411111xxxxxx1111",
  "card_expiry": "01/2025",
  "cvv": "123",
  "reference": "customer_initiated_transaction",
  "extra": {
    "card_on_file": true,
    "stored_credential_indicator": "I"
  }
}

In the response, we will get the card_token as well as the authorization_tracking_id. These values will need to be stored for the merchant initiated transaction later.

/*
 * Response
 */
{
  "successful": true,
  "response": {
    "authorization": "123456",
    "id": "1-P-VBF4KCE9",
    "card_number": "411111xxxxxx1111",
    "card_holder": "John Smith",
    "card_expiry": "2025-01-31",
    "card_token": "lk78b0xadcdek2hffvkadif",
    "card_type": "VISA",
    "card_category": "Credit",
    "card_subcategory": "Standard",
    "amount": 100,
    "decimal_amount": 1.0,
    "successful": true,
    "message": "approved - balance avail",
    "reference": "first_recurring_transaction",
    "currency": "AUD",
    "transaction_id": "1-P-VBF4KCE9",
    "settlement_date": "2020-04-23",
    "transaction_date": "2020-04-23T10:21:31+10:00",
    "response_code": "00",
    "captured": true,
    "captured_amount": 100,
    "rrn": "042321000062",
    "cvv_match": "M",
    "metadata": {
      "authorization_tracking_id": "HNR0003960518",
      "card_sequence_number": "",
      "sca_exemption": "",
      "original_transaction_reference": ""
    },
    "addendum_data": {}
  },
  "errors": [],
  "test": false
}

To apply for a merchant initiated transaction, you need to apply the card_token, the auth_reason and authorization_tracking_id in the payload.

Note: Not all schemes requires authorization_tracking_id. If this value is not found in the response, then it indicates this scheme does not support it, and this can be ignored for subsequent transactions.

❗️

Failure to present the authorization_tracking_id may result in the recurring or installment transaction being declined, particularly wallet transactions.

{
  "amount": 100,
  "currency": "AUD",
  "card_token": "lk78b0xadcdek2hffvkadif",
  "reference": "merchant_initiated_transaction",
  "extra": {
    "auth_reason": "no_show",
    "authorization_tracking_id": "HNR0003960518",
    "stored_credential_indicator": "S"
  }
}