Direct Entry (Direct Credit | Direct Debit)

The direct entry (DE) system (also known as the Bulk Electronic Clearing System, or BECS), is an efficient and reliable way of making low-value payments.

Australian businesses and government commonly use the system to make regular, automated payments to and from everyday transaction accounts. These include direct credit payments (for example, salary and welfare payments), direct debit payments (such as utility bills), and consumer ‘pay anyone’ bank transfers.

Participants in the DE system (BECS members), exchange bulk-payment instructions and settle their obligations through RBA Exchange Settlement Accounts (ESAs) six times each business day.

There are two types of direct entry transactions.

  1. Direct Credit: When an amount of money is deposited (added) to a beneficiary account.
  2. Direct Debit: When an amount of money is deducted from a customer’s account by a beneficiary (bank or merchant), with the customer’s authorisation.

Direct Credit

  • Direct Credit is a type of regular payment where amount of money credited to customer account.

Generate Direct Credit Transaction

  • You can initiate the DE payment transfer through the Initiate Cash Transfer.
  • Please use transferType ACCOUNT for the DE transfer, the platform first checks if the recipient account is associated with a Shaype BSB. If it is, the transaction will be automatically converted to an INTERNAL (ShaypePay) transaction. If it is not, the platform verifies whether the recipient account is enabled for NPP. If it is, the payment will be executed via NPP; otherwise, it will be executed via DE.
  • Please refer NPP Payment | Initiate Cash Transfer for more details.

Direct Credit Webhook Notification

  • After the transfer execution, both the sender and receiver will receive a webhook notification. Please see below for details of the webhook notification along with a sample payload.

INTERBANK_TRANSFER_IN

  • You will receive this event when customer account receives funds from an external bank.
  • The notification transactionType: INTERBANK_TRANSFER_IN is a part of type: TRANSACTION event.
{
  "customerHayId": "61f3d1d3-78e1-4da4-ab8f-faa13546ab8f",
  "idempotencyKey": "b98b9584-a296-40db-8a52-faa13546ab8f",
  "type": "TRANSACTION",
  "productId": "8aa686b7-7c36-e802-017c-faa13546ab8f",
  "transactionEvent": {
    "transactionHayId": "f416825e-17d0-4366-acba-faa13546ab8f",
    "accountHayId": "0285c377-bdf8-461e-a885-faa13546ab8f",
    "currencyAmount": {
      "currency": "AUD",
      "amount": 200.00
    },
    "updatedBalance": {
      "currency": "AUD",
      "amount": 62925.58
    },
    "isPending": false,
    "counterpartName": "Andy",
    "outcome": "ACCEPTED",
    "transactionTimeUtc": "2024-06-12T07:21:54.220527Z",
    "isAtmTransaction": false,
    "transactionType": "INTERBANK_TRANSFER_IN",
    "accountBalances": {
      "totalBalance": {
        "currency": "AUD",
        "amount": 66049.69
      },
      "heldBalance": {
        "currency": "AUD",
        "amount": 3124.11
      },
      "lockedBalance": {
        "currency": "AUD",
        "amount": 0
      },
      "stacksBalance": {
        "currency": "AUD",
        "amount": 0
      },
      "availableBalance": {
        "currency": "AUD",
        "amount": 62925.58
      }
    },
    "counterpartDetails": {
      "name": "Andy"
    },
    "category": "BANK_TRANSFER",
    "description": "withdrawal"
  }
}

INTERBANK_TRANSFER_OUT

  • You will receive this event when customer account sends fund to external bank.
  • The notification transactionType: INTERBANK_TRANSFER_OUT is a part of type: TRANSACTION event.
{
  "customerHayId": "58b86c08-d2b4-4f1d-a7fc-fcd1aeb6a7fc",
  "idempotencyKey": "54b7383a-0b68-4757-9e96-fcd1aeb6a7fc",
  "type": "TRANSACTION",
  "firebaseDeviceToken": "eQwhRSuQkWk:APA91bE4E2fcd2mpB_CkHNukNSESigu3fK_vDaVqvzXu0K_1z_aHZPfGyD5IouQFhArUe_S0BIb5QYwnilRnTubAfO1Q_fcd1aeb6a7fc",
  "productId": "8aa686b7-7c36-e802-017c-fcd1aeb6a7fc",
  "transactionEvent": {
    "transactionHayId": "90f90c57-a85e-4a2f-b444-fcd1aeb6a7fc",
    "accountHayId": "9ea48b15-474c-4276-bf90-fcd1aeb6a7fc",
    "currencyAmount": {
      "currency": "AUD",
      "amount": -0.01
    },
    "updatedBalance": {
      "currency": "AUD",
      "amount": 9568.52
    },
    "isPending": false,
    "counterpartName": "Andy",
    "outcome": "ACCEPTED",
    "transactionTimeUtc": "2024-06-12T07:31:58.77028Z",
    "isAtmTransaction": false,
    "transactionType": "INTERBANK_TRANSFER_OUT",
    "accountBalances": {
      "totalBalance": {
        "currency": "AUD",
        "amount": 9568.52
      },
      "heldBalance": {
        "currency": "AUD",
        "amount": 0
      },
      "lockedBalance": {
        "currency": "AUD",
        "amount": 0
      },
      "stacksBalance": {
        "currency": "AUD",
        "amount": 0
      },
      "availableBalance": {
        "currency": "AUD",
        "amount": 9568.52
      }
    },
    "customerHayId": "58b86c08-d2b4-4f1d-a7fc-fcd1aeb6a7fc",
    "counterpartDetails": {
      "name": "Andy",
      "basicAccountNumber": {
        "accountNumber": "12345000",
        "branchNumber": "518900"
      }
    },
    "category": "BANK_TRANSFER",
    "description": "Trip expenses"
  }
}

Direct Debit

  • Direct Debit is a type of regular payment where money deducted from a customer’s account.

Generate Outbound Direct Debit Transaction

  • Leverage Create outbound Direct Debit API to initiate the Direct Debit with the sender and recipient account details.
  • Shaype will monitor over 2 working days to catch if a Direct Debit is returned. A notification to the client will be sent making the transaction failure visible. Returns can be due to the external account being blocked or rejecting the request
  • After two working days the requested customer account is credited and a notification of the successful transaction is sent
  • If DD is returned after crediting the account, then a case will be raised to investigate why this occurred and next steps communicated to the client.
  • Below is the sate diagram of transaction outcomes.

Direct Debit Webhooks Notification

  • For outbound direct debits, there is a two-day period between the request and the transaction being credited to the customer's account.
  • The platform will send DIRECT_ENTRY webhook notification for each of the statuses in the diagram above. A RECEIVED and ACCEPTED webhook will be sent synchronously and SUBMITTED and COMPLETE status notification will arrive later.
  • The DIRECT_ENTRY notification is about the request, and the DIRECT_DEBIT_TRANSFER is for the actual transaction with the transaction details

DIRECT_DEBIT_TRANSFER

  • You will receive the this event when external bank account pull funds from customer account using Direct Debit.
  • The notification transactionType: DIRECT_DEBIT_TRANSFER is a part of type: TRANSACTION even
{
  "customerHayId": "46db5ab0-8ee2-4cb9-b059-68a75b23b059",
  "idempotencyKey": "8183131d-021b-49ae-a032-68a75b23b059",
  "type": "TRANSACTION",
  "productId": "8aa6879a-74d5-37a5-0174-68a75b23b059",
  "transactionEvent": {
    "transactionHayId": "fd7a2acb-f906-415d-9378-68a75b23b059",
    "accountHayId": "ac364762-56bd-41a2-a966-68a75b23b059",
    "currencyAmount": {
      "currency": "AUD",
      "amount": -457.12
    },
    "updatedBalance": {
      "currency": "AUD",
      "amount": 3197.26
    },
    "isPending": false,
    "counterpartName": "Andy",
    "outcome": "ACCEPTED",
    "transactionTimeUtc": "2024-06-21T12:21:54.689834Z",
    "isAtmTransaction": false,
    "transactionType": "DIRECT_DEBIT_TRANSFER",
    "accountBalances": {
      "totalBalance": {
        "currency": "AUD",
        "amount": 3197.26
      },
      "heldBalance": {
        "currency": "AUD",
        "amount": 0
      },
      "lockedBalance": {
        "currency": "AUD",
        "amount": 0
      },
      "stacksBalance": {
        "currency": "AUD",
        "amount": 0
      },
      "availableBalance": {
        "currency": "AUD",
        "amount": 3197.26
      }
    },
    "customerHayId": "46db5ab0-8ee2-4cb9-b059-68a75b23b059",
    "counterpartDetails": {
      "name": "Andy"
    },
    "category": "BANK_TRANSFER",
    "description": "Thanks for lunch"
  }
}

DIRECT_ENTRY

{
  "customerHayId": "000d8874-f9c4-455e-b565-6d439fdd55ad",
  "idempotencyKey": "5fcae09b-b2f1-3d6f-a60c-c02b8c842083",
  "type": "DIRECT_ENTRY",
  "directEntryEvent": {
    "transactionId": "7a70baa7-a4d4-4359-8cae-37e7bf971342",
    "type": "DEBIT",
    "direction": "OUTBOUND",
    "status": "COMPLETE"
  }
}

APIs

Get outbound Direct Debit by ID

  • API to retrieve the direct debit transaction details by id.

API Reference: Get outbound Direct Debit by ID


Get outbound Direct Debits by date

  • API to retrieve the direct debit transaction details by date.

API Reference: Get outbound Direct Debits by date