Skip to main content
What is it? A reinitiate bank transfer request retries a previous ACH sale that was returned.
When to Use
  • The original bank transfer was returned for insufficient funds (R01) or uncollected funds (R09). Acceptors are limited to two reinitiation attempts.
  • The original bank transfer was returned for stopped payment (R08) and the acceptor has obtained a new “authorization”/permission from their customer to reinitiate.
  • It is submitted within 180 days of the original bank transfer settlement date.
ScenarioBen purchased a mechanical keyboard for $150 using his checking account. CoolTechGear.com submits a request to initiate a bank transfer from Ben’s account ending in 5678. 2 days later, Ben’s bank returns the transaction with an R01 return code. CoolTechGear.com retries the transaction in their next billing cycle.

Steps

  1. Call the reinitiateBankTransfer mutation, passing in the required and optional input fields:
    Required inputDescription
    acceptorIdThe unique, 36 character identifier assigned to the entity providing the goods or services to the customer. Other processors may refer to this as the Merchant ID (MID), Outlet ID, or Customer number.
    paymentIdThe unique ‘paymentId’ of the bank transfer transaction that is to be reinitiated.
    transactionIdThe unique ‘transactionId’ of the specific transaction within the payment that is to be reinitiated.
    transactionReferenceThe unique transaction identifier created by YOU to distinguish this transaction from another.
  2. The response will include a new transactionId and will share the same fields as the initiateBankTransfer. The paymentId will be the same.
mutation ReinitiateBankTransfer($input: ReinitiateBankTransferInput!) {
  reinitiateBankTransfer(initiateBankTransferInput: $input) {
    bankTransferResponse {
      ... on BankTransferApproval {
        transactionId
        paymentId
        processorResponseCode
        timestampUtc
        isDuplicateRequest
      }
      ... on BankTransferDecline {
        message
        processorAdvice
        declineType
        timestampUtc
        transactionId
      }
    }
    errors {
      errorType: __typename
      ... on ValidationFailureError {
        message
        fieldPath
      }
      ... on RouteNotFoundError {
        message
      }
      ... on AcceptorNotFoundError {
        message
      }
    }
  }
}
{
  "data": {
    "reinitiateBankTransfer": {
      "bankTransferResponse": {
        "transactionId": "f14f0a48-35c4-4e68-b2e3-e40f6d6160a8",
        "paymentId": "792282f2-d929-4dad-8c8a-9552c92154f1",
        "processorResponseCode": "A0000",
        "timestampUtc": "2024-02-13T10:30:00Z",
        "isDuplicateRequest": false
      }
    }
  }
}
Run in Playground