Instant Disbursements | Gross Debit Mode

Account-to-Card Payment Solution with built in ACH Debit Origination

Overview

The following guide demonstrates Astra's Instant Disbursements Gross Debit Mode solution in the context of a me-to-me payment, where the source of funds is a User's DDA Account (client-issued) and the destination is the User's Debit Card (non-client-issued).

Instant Disbursements is Astra's Push-to-Card / Account-to-Card solution that enables your Users to create instant “push” payments to an external Debit Card, with real time settlement at a scalable cost structure. Additionally, you can optionally apply programmatic fees to the payment to create a new source of revenue for your business. Instant Disbursements can be me-to-me or peer-to-peer. With just a few clicks, a User can authorize your product for faster payments, link their Debit Card, and initiate an instant disbursement / withdrawal.

The technical implementation involves a simple SDK and or a few API requests to start initiating payments. Behind the scenes, Astra initiates an ACH Debit from the User’s DDA account, while simultaneously processing an Original Credit Transaction (OCT) directly onto the User’s Debit Card with immediate availability of funds.

❗️

Your program is responsible and liable for ensuring that the account which is to be ACH debited has sufficient funds. Several methods are commonly employed, such as placing a hold on the funds, book transferring the funds into a holding account, or pre-funding an FBO Account. However your program chooses to manage this is to your discretion. Negative balances due to ACH Returns will be automatically debited from your Reserve Account.

Step 01: Create Users, Authorize, and Connect External Debit Cards

Before an Instant Disbursement Transfer can be initiated, the User (recipient) will need to be registered, Authorized, and have connected an external Debit Card to send funds to. Register a User on our platform by way of the Create UserIntent endpoint.

Once created, send the User into our SDK (or through API) to Authorize Astra and your application to make money movements on their behalf. Once Authorized, the User will be prompted to connect a Debit Card through our PCI Compliant card form. Your program may be eligible to Authorize User's through our API. You may also prompt the User to connect a Debit Card through your own Debit Card form. At this point, the User is set up and ready to receive funds to their Debit Card.

Step 02: Register User’s DDA

Register each User’s DDA through Astra’s Secure Create Account by Account and Routing Number endpoint. This is the account in which Astra will debit funds from through an ACH Debit.

🚧

Create Account by Account & Routing Number resource requires the use of the secure endpoint (in sandbox that is https://secure.api-sandbox.astra.finance).

Step 03: Implement GET Balance Endpoint

In order for Astra to successfully pull funds from the User’s DDA through an ACH Debit, Astra will first need to verify that there are sufficient funds via the available balance of the DDA. For Astra to obtain this information, please develop and share documentation for a GET Balance endpoint. Once documentation is received, Astra will integrate and test your GET Balance endpoint to ensure that a live reading of the available balance can be obtained.

🚧

Scheduling the work and integrating your GET Balance endpoint in sandbox will typically take up to 2 weeks.

Step 04: Account-to-Card Routine Request

The following is a sample request for the Account-to-Card endpoint for Gross Debit Mode (Option 01). Requests to this endpoint should include an Idempotency-Key header. The header value can be any string the caller wants to use for idempotency, but needs to be less than or equal to 128 characters. Astra suggests UUID4.

📘

For peer-to-peer disbursements, the payload must include the destination_user_id

Example:  
POST /v1/routines/account-to-card
\{
"name": "My Account to Card Routine 12.99", "amount": 12.99,
"source": {
"id": "astra_account_id_1234" (User’s DDA) },
"destination": {
"id": "astra_card_id_4567", (the Recipient’s debit Card) "user_id": astra_user_id (the Recipient)
},
"debit_fee_percent": 5, "settlement_mode": "gross_debit"
}