There are two options when creating and funding business cards on the Hydrogen Platform:
- Via the "Card Admin" on your Hydrogen portal: this is best for individual payments and non-technical users
- Via the Hydrogen API: this is best for bulk payments and technical users. This option requires extra permissions for our Electron API, Please contact us with your use case to receive access.
In both circumstances, please make sure you have money cleared in your Reserve Account before creating any cards. In this article, we will examine a step by step guide to execute Option 2:
Step 1
OPTIONAL: Create or choose a Nucleus business
If you wish to assign the card to a supplier that can be used for better organization and future filtering, then optionally create or retrieve a business.
POST /nucleus/v1/business
if creating a new business OR GET /nucleus/v1/business/{id} if choosing existing business
{"legal_name":"name of business"}
Step 2
Create a Nucleus Client
Each card at the bank will be assigned to a client, and the bank has a limitation of one active card per user ($200k maximum per card). To allow a business to have more than one active card at a time, we will assign each card to a client. DO NOT enter a first_name or last_name for the client, as we will not legally be performing any KYC on the client or add their name to the card.
POST /nucleus/v1/client
{ "username": "unique id", "client_type": "individual", "business_id":"response.id from step #1" }
Step 3
Create a Nucleus Account
An account is created under the client so it can be assigned to a card.
POST /nucleus/v1/account
{ "name": "Invoice # or Name Supplier Payment", "account_type_id": "07e762d4-2312-470f-b421-bdd122836403", "clients":[ { "client_id": "response.id from step #2", "client_association_type": "owner" } }
Step 4
Create a Nucleus Portfolio
A “portfolio” is the term we use for the ledger that holds the balance and transactions in the account. We only need one ledger for this card, so we will create one account with a percentage of 100.
POST /nucleus/v1/portfolio
{ "name": "Invoice # or Name + Portfolio", "account_id": "response.id from step #3", "percentage": 100 }
Step 5
Create a Nucleus Card
A card in Nucleus will pre-fill the values needed to send to the bank later in Step 7.
POST /nucleus/v1/card
{ "card_program_id": “61ee1efa-a3b2-40a7-aecf-68976178f603”, "client_id":"response.id from step #2", "business_id":"response.id of supplier chosen in step #1", "portfolio_id": response.id from step #4, "card_name": "Invoice # or Name", "institution_name": "Metabank", "card_holder_name": "Supplier Name", "card_type": "prepaid", "card_issuance": "virtual", "prepaid_amount": amount of payment }
Step 6
Create a Bank Client
Now that we have all of the Nucleus data stored, we need to send it to the back office. The first thing we will do is create the client. No KYC will be performed, and the card will not be attached to any name. After successful creation, you will receive a 200 and the Nucleus record status will update.
POST /electron/v1/card/client
{ "nucleus_client_id": "response.id from step #2 Nucleus Client creation" }
Step 7
Issue Bank Card
Next, we will actually issue the virtual card at the bank, which takes the Nucleus card created above in Step 5. After successful creation, you will receive a 200 and the Nucleus record status will update.
POST /electron/v1/card/issue
{ "nucleus_card_id": "response.id from step #5 Nucleus Card creation" }
Step 8
Create a Nucleus Funding Request
Once the card is created, we will create a request to fund it from the reserve. Make sure the amount is the same as the prepaid_amount in Step 5, so the amount of the initial load that is shown is the same as what you actually load.
POST /nucleus/v1/funding
{ "portfolio_id":"response.id from step #4", "card_id": "response.id from step #5 Nucleus Card creation", "amount": amount matching prepaid_amount in step #5, "is_deposit": true, "start_date":"yyyy-mm-dd today's date", "funding_type":"card_load", "funding_status":"initiated", "frequency_unit":"one_time" }
Step 9
Load the Card at the Bank
The last step will load the card. Make sure you have enough money in your Reserve Account. You can check the latest balance by calling GET /electron/v1/card/reserve
After successful loading of the card, you will receive a 200 and the Nucleus funding request will update. Your card is now fully issued and ready for use!
POST /electron/v1/card/load
{ "nucleus_funding_id": "response.id from step #7" }