All pages
Powered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

Deposits

Explains how to accept deposits programmatically

After fully registering with us, you get a BSB and a dedicated Virtual Account Number (VAN).

IMPORTANT: Your Australian VAN will be restricted to local Australian transfers. For international payments (aka FX payments), we offer different solutions.

Every deposit to your VAN would increase your Flash Payments balance.

Every deposit can trigger a Webhooks notification, keeping you informed in real time

The deposit data includes the payment reference (we call it externalReference in this API).

By default, only you are permitted to make deposits. However, we can enable third-party deposits for your account upon request. Once enabled, your account number functions as a local collection account, allowing others to deposit funds on your behalf.

We can also enable the feature. It allows you to programmatically create client accounts with dedicated BSB and account number for transactional purposes. You can give these bank account details to your clients to accept deposits. Once funds arrive, we will increase your account balance, and you will see a deposit with sub-client information linked to it.

To browse your deposits, you can use our interface.

Tip. You can simulate and test a deposit with the FlashConnect tool in the UAT environment. Just go to the Deposits page and click "SEND TEST DEPOSIT". Additionally, you can test a deposit sent by your in the UAT. Just go to the Sub-clients page, find the sub-client, and click "SEND TEST DEPOSIT".

sub-client
FlashConnect
sub-client

Deposit statuses

Deposit processing statuses

Upon detecting a deposit in a Flash Payments Virtual Account Number (VAN), we immediately record it as a deposit in our system.

The status of a successful deposit goes through the following lifecycle

INITIALISED->REVIEWING→CONFIRMED

If you choose to reject a deposit, its status goes through the following lifecycle instead:

INITIALISED->REVIEWING→CONFIRMED→REFUNDING→REFUNDED

If Flash Payments Compliance choose to reject a deposit, its status lifecycle goes through following stages:

INITIALISED→REVIEWING→REFUNDING→REFUNDED

The REVIEWING is an optional action by Flash Payments Compliance team. Occasionally we pick some transactions for extended AML/CT review. Most transactions do not ever get into the REVIEWING status.

Query deposits

Query all deposits

const bodyJSON = {
  variables
query($input: DepositQueryInput!) {
{ 
  "input": {
  }
}
{
  "data": {
    "deposits": [
      {
        "id": "6053d4e0e3bc655e0598a742",
        "amount": 2000,
        "currency": "AUD",
        "status": "CONFIRMED",
        "statusMessage": "Transaction Confirmed",
        "externalId": "PR.1vcl",
        "externalReference": "FX1111",
        "subClient": null,
        "createdAt": "2021-03-18T22:32:01.010Z"
      },
      {
        "id": "6053d3319588389e1443587e",
        "amount": 40,
        "currency": "AUD",
        "status": "CONFIRMED",
        "statusMessage": "Transaction Confirmed",
        "externalId": "PR.1vci",
        "externalReference": "FX2121",
        "subClient": {
          "id": "5fb314cb9224595df522db61",
          "fullName": "John Doe",
          "status": "ACTIVE",
          "clientType": "INDIVIDUAL"
        },
        "createdAt": "2021-03-18T22:24:49.096Z"
      },
    ]
  }
}

Query deposit by ID

const bodyJSON = {
  variables
query($input: ID) {
  
{
  # there are more query parameters available, see the API schema
  "input": "6053d4e0e3bc655e0598a742"
}
{
  "data": {
    "deposit": {
      "id": "6053d4e0e3bc655e0598a742",
      "amount": 2000,
      "currency": "AUD",
      "status": "CONFIRMED",
      "statusMessage": "Transaction Confirmed",
      "externalId": "PR.1vcl",
      "externalReference": "KX23249",
      "createdAt": "2021-03-18T22:32:01.010Z"
    }
  }
}

Refund deposits

Return the funds back to the original sender

:
{
input: {
},
},
query: `
query ($input: DepositQueryInput!) {
deposits(input: $input) {
id amount currency status statusMessage externalId externalReference
subClient {
id fullName status clientType
}
createdAt
}
}`,
};
deposits(input: $input) {
id
amount
currency
status
statusMessage
externalId
externalReference
subClient {
id
fullName
status
clientType
}
createdAt
# more fields available, see API schema
}
}
:
{
input: "6053d4e0e3bc655e0598a742",
},
query: `
query ($input: ID) {
deposit(id: $input) {
id
amount currency status statusMessage externalId externalReference createdAt
}
}`,
};
deposit
(
id
:
$input
)
{
id
amount
currency
status
statusMessage
externalId
externalReference
createdAt
# more fields available, see API schema
}
}

Refund deposit by ID

const bodyJSON = {
  variables: {
    id: "6053d4e0e3bc655e0598a742",
    input: {
      amount: 10,
      reason: "sent by mistake",
    },
  }, 
  query: `
mutation ($id: ID!, $input: RefundDepositInput!) {
  refundDeposit(id: $id, input: $input) {
    success code message
  }
}`,
};
mutation($id: ID!, $input: RefundDepositInput!) {
  refundDeposit(id: $id, input: $input) {
    success
    code
    message
  }
}
{ 
  "id": "6053d4e0e3bc655e0598a742",
  "input": { 
    "amount": 10, 
    "reason": "sent by mistake"
  }
}
{
  "data": {
    "refundDeposit": {
      "success": true,
      "code": "REFUND_SENT",
      "message": "Refund initiated successfully"
    }
  }
}