Sandbox
For all (Web or Mobile) integrations you can use following sandbox features for testing purposes.
Sign in phone numbers
- When prompted for a phone number, enter one that uses this pattern
xxx-555-xxxx. The middle part must be555to be detected as a test number. Any other number will be treated as a real phone number. - When using test phone numbers, the verification code is always
0001.
Test debit card numbers
Whenever prompted to provide a debit card for funding use the following card details:
| Card number | Expiration | CVC |
|---|---|---|
5183683001544411 | Any date in the future | Any 3 digits |
Interacting with Accrue
Once you attach a test debit card or bank account to a test account, you can simulate funding, set up funding rules, and more. Set a wallet goal by clicking “set wallet goal”, set up savings rules, view your transaction history in the “Activity” tab, and more.
Areas to explore:
- Funding options - Set a recurring savings rule
- View Transaction history + Active savings rules
- Set a wallet goal
- Friends and family (crowdfund link)
- View Linked Accounts
Funding
You can fund your wallet using the test debit card number provided above, but keep in mind that before funding your wallet, you need to have KYC completed on sandbox.
Watch the video or follow the guide below:
Adding funds
- Enter https://sandbox.accruesavings.com/sign-in
- If not already filled, enter your merchant id
- Sign up with a test phone number
- Create a Wallet
- Complete KYC (Refer to next section to see how to complete KYC)
- Attach a test debit card to your account
- Fund your wallet
Completing KYC
- Once authenticated, go to https://sandbox.accruesavings.com/kyc
- Fill in fake user information
- Enter an age greater than 18
- Enter random address in US
- Enter 123456789 as SSN
- Agree to the terms and conditions
Clearing funds
If you want to move your funds from pending to available, follow these steps:
- Open wallets page on https://sandbox.accruesavings.com/wallets
- Click on the wallet you want to clear funds
- Open debug modal on the left side panel
- Click on Actions Tab once modal is open
- Click on "Clear Pending Card Transactions"
- Wait for some time and refresh the page
- You will see the funds available in your wallet
Counterparty deposits and payouts
These steps use the Merchant API sandbox (https://merchant-api-sandbox.accruesavings.com) with your client credentials. Amounts are in cents.
Simulating inbound ACH credits and debits
Counterparties with an Accrue deposit account (internalBankAccount on the counterparty resource) can receive simulated inbound payments:
POST /api/v1/simulation/counterparties/{counterpartyId}/deposits
{
"data": {
"type": "SimulateCounterpartyDeposit",
"attributes": { "amount": 10000, "direction": "debit" }
}
}
directioniscredit(the default) ordebit.- A debit larger than the counterparty's balance takes the balance negative.
- The endpoint returns
204right away. The balance updates and aCounterpartyIncomingPaymentwebhook fires with the matchingdirectiononce the payment is processed.
Simulating returned and failed payouts
The outcome of a sandbox payout is driven by the account number on the counterparty's externalBankAccount:
| Account number | Outcome |
|---|---|
100XX, where XX is an ACH return code (for example 10001 for R01, 10029 for R29) | The payout is returned with that return code |
111111110 | The payout fails without a return code |
| Any other number | The payout completes |
To test a returned payout:
- Create a counterparty whose
externalBankAccount.accountNumberis10001, with any valid routing number. - Fund it, either with the deposit simulation above or with a counterparty transfer from another counterparty.
- Create a payout with
POST /api/v1/counterparties/{counterpartyId}/payouts. - You will receive
CounterpartyPayoutCreated,CounterpartyPayoutSentandCounterpartyPayoutCompleted, followed byCounterpartyPayoutReturnedwithstatus: "Returned",returnCode: "R01"andreturnReason: "Insufficient Funds". The payout amount is available on the counterparty balance again.
In sandbox the whole sequence arrives within seconds. A return can follow CounterpartyPayoutCompleted, and webhooks are not guaranteed to arrive in order, so treat CounterpartyPayoutReturned as final for that payoutId and ignore any earlier status that arrives after it.