Deposits
Explains how to accept deposits programmatically
After fully registering with us, you get a BSB and a dedicated bank account number.
Warning: The account number can only process local transfers, no SWIFT/RTGS.
Every deposit to this account would increase your FlashFX balance.
You can receive notifications via Webhooks about every deposit.
The deposit data includes the payment reference (we call it externalReference in this API).
By default, only yourself is allowed to deposit. However, we can enable third party deposits feature for your account. This, effectively, makes your account number a local collection account.
We can also enable the sub-client feature. It allows you to programmatically create client accounts for transaction purposes, with dedicated BSB and account number. 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 FlashConnect tool: https://connect.flash-fx.com/
Tip. You can simulate a deposit using the FlashConnect tool. Just go to the Deposits page and click "SEND TEST DEPOSIT". It's available only in our development environment. Additionally, you can fake a deposit sent by your sub-client. Just go to the Sub-clients page, find the sub-client, and click "SEND TEST DEPOSIT". It's available only in our development environment.

Deposit processing statuses

As soon as we see a deposit in FlashFX controlled bank account(s) we create a deposit.
INITIALISED->REVIEWINGCONFIRMED
If you choose to reject that deposit it goes through refunding statuses:
INITIALISED->REVIEWINGCONFIRMEDREFUNDINGREFUNDED
The REVIEWING is an optional manual action by FlashFX Compliance team. Occasionally we pick some transactions for extended AML/CT review. Most transactions do not ever get into the REVIEWING status.
If FlashFX Compliance choose to reject that deposit it goes through following statuses:
INITIALISEDREVIEWINGREFUNDINGREFUNDED

Querying deposits

Query all deposits

Request
Response
{
deposits {
id
amount
currency
status
statusMessage
externalId
externalReference
subClient {
id
fullName
status
clientType
}
createdAt
# more fields available, see API schema
}
}
{
"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

Query
Response
{
deposit(id: "6053d4e0e3bc655e0598a742") {
id
amount
currency
status
statusMessage
externalId
externalReference
createdAt
# more fields available, see API schema
}
}
{
"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 deposit by ID

Request
Response
mutation {
refundDeposit(
id: "6053d4e0e3bc655e0598a742"
input: { amount: 10, reason: "sent by mistake" }
) {
success
code
message
}
}
{
"data": {
"refundDeposit": {
"success": true,
"code": "REFUND_SENT",
"message": "Refund initiated successfully"
}
}
}
Copy link
Edit on GitHub
Outline
Deposit processing statuses
Querying deposits