Astra
Introduction
With Unit's partnership with Astra, Unit clients can use card-based payments as a simple and safe way to instantly send or receive funds. You can move funds between two debit cards - a Unit issued debit card, and an external card - or between a Unit deposit account and an external card.
You will contract with Astra directly, and take advantage of special, flat rates for Unit clients. Unit can help connect you with the Astra team. Contact your Customer Success Manager for more information.
Use Cases
Money movement through Astra is always instant, whether for account funding or outbound payments. There are no cut off times and transfers will still be immediate even on weekends and holidays.
Account Funding Using Card
Decrease your customer’s time-to-first-use and increase deposits by immediately funding their Unit account. Account funding using a card is a way to instantly fund the customer account by pulling funds from an external debit card they own. Astra considers this a “me to me” transaction, which requires the details of the funding source card to match the account they are attempting to fund. This is a fast alternative to ACH debits or depositing a check, and it carries none of the fraud risk these other methods inherently introduce. Network fees will apply to these transactions, and you can choose to charge your customers a small fee to offset these costs.
Card payments are subject to the Daily Transaction Limit on your end customer's deposit product. With Astra, you can configure per-transaction limits for your program needs.
Coming Soon: Unit is wrapping this capability into a white-label UI component that you can embed into the web or mobile platform of your choice. It includes a front-end SDK that will coordinate the necessary Unit and Astra API calls required to complete a card-based account funding transaction.
If you would prefer to complete the integration yourself, you can follow these steps.
Push To Card
You can also allow your end customers to move funds from their Unit deposit account to an external account, in real-time, by using push-to-card payments. This can unlock “instant payout” use cases.
Follow these steps for implementation.
Optimizations
Unit and Astra have partnered to make the KYC and authentication process easier for our clients and their end customers.
Trusted Authentication
Astra typically requires each participant in a transaction to authenticate using a one-time password. However, in order to reduce friction in the onboarding experience for Unit end customers, Astra will instead “trust” the authentication from Unit for any customers who have recently successfully completed 2-factor authentication with Unit.
In order to confirm authentication status, Astra will call Unit directly using a partner token to validate the end user’s phone number and timestamp of last authentication. Astra will then determine whether they need to (re)authenticate the user with a one-time password during onboarding or can rely on Unit.
KYC Delegation
In certain cases, Astra is required by their bank partner and applicable law to run KYC on end customers. Since Unit and our bank partners run a KYC process when an account is opened, this has historically meant some customers undergo KYC twice.
KYC Delegation now allows Astra to rely on the KYC results of a certified partner, including Unit, for meeting these bank/regulatory obligations.
In practice, for example, the Account Funding Using Card flow can be updated to remove step two for mutual clients who are approved for KYC delegation:
- End customer agrees to Astra T&Cs
- Astra runs KYC on end customer
- User enters card details
- Funds moved
Removing this step further streamlines the customer experience, and limits the potential for differing KYC outcomes between Astra and Unit.
You should reach out to Astra to confirm eligibility for this feature.
Implementation
General Prerequisites
- Read Astra’s Guide to Cards API to get started.
- Ensure your end customer has an active Deposit Account.
- For Account Funding: Ensure your end customer has been issued and activated a Unit debit card.
- Provide authorization for Astra to use a partner token on your behalf
- Provide Astra with a logo and a “From Name” and “From Email Address” to white label transactional emails sent by Astra to the end customer for limited error scenarios.
Communication Details:
- Add Customer support URL (used in emails – please add via the developer dashboard)
- Confirm From Email Address and Name (used for email communications to end-users).
- Astra will configure this for you and then prompt you to add a specific URL to your DNS records.
Example:
Astra (From Name)
no-reply@astra.finance (From Email)
Design Logos:
Company logo in the following formats:
Email (150x65px and 300x130px)
Icon (150x150px - must have same width/height)
Primary brand color in hex
Account Funding: Typical Implementation Steps
The following implementation steps assume the owner of both the Unit debit card and the external debit card are the same person. If that is not the case, the implementation steps may differ - please contact Unit for assistance.
Create a UserIntent on Astra's API. You will receive a user intent id back from Astra.
Authenticate the user using Astra's SDK. You should use the user intent id you received in #1 to initialize the SDK, to save the customer from needing to provide their personal information. You will receive back an Astra authorization code. If you have been enabled for Trusted Authentication, you should include a Partner Identity Verification Token in your request, and the customer may be able to bypass the Astra 2FA authentication step.
Use the authentication code returned by Astra to generate an access token.
Collect the external card details using Astra's SDK. Astra will register the card and create a dedicated card id for it.
Get the dedicated card id Astra generated for the external card in step #4, by calling Astra's List Cards endpoint. You will have to provide the access token generated in #3.
Use Unit's dedicated endpoint to enable card-to-card payments. You will pass the Unit card id in the URL, and the access token received in #3 in the body. In the response, you will receive an Astra card ID for that card.
Once both cards are registered, you’ll create a Routine to move funds between the cards.
- The card ID of the card you want to send the funds from should be set as the
source_id
(for account funding, use the external debit card ID as thesource_id
) - The card ID of the card you want to send the funds to should be set as the
destination_id
(for account funding, use the Unit debit card ID as thedestination_id
) payment_type
should bedebit
type
should beone-time
- The card ID of the card you want to send the funds from should be set as the
Push To Card: Typical Implementation
Prerequisites
Contact Unit to ensure that all the push to card configurations on Unit's side are completed.
Ensure all the required configurations on Astra's side completed and ready to use when creating a push to card payment:
- Get a unique
institutionId
from Astra to represent your organization.institutionId
is required when calling the create a push to card payment endpoint. - Get
routingNumber
andaccountNumber
from Astra.routingNumber
andaccountNumber
are required when calling the create a push to card payment endpoint. - Ensure your Astra's account is set to non-additive mode so if a debit fee is applied the fee is deducted from the sent amount (and not added as an addition to the sent amount). In a non-additive mode, the external card will receive the sent amount minus the debit fee and you'll be able to collect the fee from Astra.
- Get a unique
If any fees will be charged to the end customer, be sure to include the appropriate fee disclosures in the customer experience.
Typical Implementation Steps
- Create a UserIntent on Astra's API. You will receive a user intent id back from Astra.
- Authenticate the user using Astra's SDK. You should use the user intent id you received in #1 to initialize the SDK, to save the customer from needing to provide their personal information. You will receive back an Astra authorization code.
- Use the authentication code returned by Astra to generate an access token.
- Collect the external card details using Astra's SDK. Astra will register the card and create a dedicated card id for it.
- et the dedicated card id Astra generated for the external card in step #4, by calling Astra's List Cards endpoint. You will have to provide the access token generated in #3.
- Once the external card is captured, you’ll create a push to card payment to move funds between the deposit account and the external card.
Enable Card To Card Payments Using Astra
Verb | PATCH |
Url | https://api.s.api.unit.sh/cards/{id}/enableCardToCardPayment |
Required Scope | cards-write |
Timeout (Seconds) | 5 |
Attributes
Name | Type | Description |
---|---|---|
token | string | User access token provided by Astra. |
idempotencyKey | string | Optional. See Idempotency. |
curl --request PATCH 'https://api.s.unit.sh/cards/298242/enableCardToCardPayment' --header 'Content-Type: application/vnd.api+json' --header 'Authorization: Bearer $UnitToken' --data-raw '{
"data": {
"type": "astra",
"attributes": {
"token": "$AstraToken"
}
}
}'
Response
Response is a JSON:API document.
200 OK
{
"data": {
"type": "astra",
"id": "298242",
"attributes": {
"astraCardId": "8ab2571a-bc35-4e1c-abfb-3fd01317a986"
}
}
}
Dashboard
- A Card Transaction will be created for your end customer and appear on your Unit Dashboard.
- The Merchant will read as
ASTRA*Your_Product's_Name.