Onbe Prepaid Disbursement & Payroll
Onbe Prepaid allows partners to manage their payroll program in real-time. Including employee enrollment, real-time identity verification, linking physical cards to accounts, account status checks, and real-time funding/withdrawals.
API Authentication
All API end-points require an authentication header to included with the request. See API Authentication
Echo
This command is used to verify connectivity and proper operation of the web server. You can also use this command to measure networking performance by creating an embedded timestamp.
Note: Unlike other commands, the echo command does not have nested parameters. Instead, it just contains a body of text.
-
End-Point | Method | Content-Type |
---|---|---|
/api/v1/netspend/echo | POST | application/json |
Request
Field | Type | Required | Description |
---|---|---|---|
text | String(100) | Y | Text to echo back. |
-
{ "text": "Hello World!" }
Response
Type | Description |
---|---|
String(100) | Text passed in to service. |
-
{ "Hello World!" }
Account Status Inquiry
This web service method retrieves the current status information of a cardholder’s account based on the cardholder’s account cash number.
-
End-Point | Method | Content-Type |
---|---|---|
/api/v1/netspend/accountStatusInquiry | POST | application/json |
Request
Field | Type | Required | Description |
---|---|---|---|
txRef | String(100) | Y | Globally unique reference number provided by the partner to identify this transaction. It is recommended that the reference number include a timestamp in milliseconds. |
cashNumber | String(10) | Y | A 10-digit customer account number. |
locationId | String(100) | Y | Store location ID to identify the sale location. Tracks POS origination. |
-
{ "txRef": "0123456789-987456521", "cashNumber": "1234567890", "locationId": "0123" }
Response
Field | Type | Description |
---|---|---|
txRef | String(100) | Globally unique reference number provided by the partner to identify this transaction. It is recommended that the reference number include a timestamp in milliseconds. |
cashNumber | String(10) | A 10-digit customer account number. |
bank | String(100) | The bank associated with the account. |
routingNumber | String(9) | Routing Number. |
bankAccountNumber | String(30) | The bank account number. |
accountBrand | String(100) | Brand. (ACE Elite, All-Access, NetSpend, Paypal Prepaid, etc) |
tenure | Int | (i.e. # days since account was activated) |
availableBalance | Int | The account available balance in cents. (Ex: 1356 = $13.56) |
accountType | String(30) | The account types: GPR, PAYCARD, BUSINESS, AWARD, CDDA, |
activated | Boolean(5) | The account activation status. |
blocked | Boolean(5) | The account block status. |
firstName | String(100) | The account’s primary owner’s first name. |
middleInitial | String(1) | The account’s primary owner’s middle initial. |
lastName | String(100) | The account’s primary owner’s last name. |
originator | Boolean(40) | The account originating distributor. |
employee | Boolean(5) | True if the cardholder is an employee of the requesting distributor, False otherwise. |
-
{ "txRef": "0123456789-987456521", "cashNumber": "1234567890", "bank": "META", "routingNumber": "12550", "bankAccountNumber": "1234512345", "accountBrand": "Netspend", "tenure": 123, "availableBalance": 8008, "accountType": "GPR", "activated": false, "blocked": true, "firstName": "Alan", "middleInitial": "M", "lastName": "Turing", "originator": true, "employee": true }
Create Account
This command is to be used to create a new account. Currently it can only be used to create an account for disbursement and paycards.
-
End-Point | Method | Content-Type |
---|---|---|
/api/v1/netspend/createAccount | POST | application/json |
Request
Parameter | Type | Required | Description |
---|---|---|---|
requestInfo | |||
txRef | String(100) | Y | Globally unique reference number provided by the partner to identify this transaction. It is recommended that the reference number include a timestamp in milliseconds. |
locationId | String(100) | Y | Store location ID to identify the sale location. Tracks POS origination. |
stationId | String(100) | N | Station ID to identify the POS terminal origination. Null allowed. |
tellerID | String(50) | N | Teller ID for the particular teller/employee logged on at the partner. |
customerInfo | |||
firstName | String(100) | Y | Cardholder’s first name. |
middleInitial | String(1) | N | Cardholder’s middle initial. |
lastName | String(100) | Y | Cardholder’s last name. |
dateOfBirth | String(10) | Y | Cardholder’s date of birth in. (Format: mm/dd/yyyy) |
govtIdType | Int | N | Type of government ID. (2 = Social Security Number) |
govtIdCountryCode | String(2) | N | String representing country associated with govIdType. |
govtIdValue | String(50) | N | The characters of the actual government ID. |
streetAddress | String(100) | Y | Cardholder’s street address. No P.O. boxes. |
aptSuite | String(100) | N | Cardholder’s apartment number or suite number. |
zipCode | String(5) | Y | The cardholder’s address zip code. Can contain dash followed by last 4. |
phoneNumber | String(100) | N | Cardholders phone number. Recommended format is without any punctuation. 10 digits. |
String(100) | N | Cardholders email address. | |
shippingStreetAddress | String(100) | N | Customer’s shipping street address. When blank, the address above is used for shipping. (Can be P.O. Box) |
shippingAptSuite | String(100) | N | Apt or Ste for customer’s shipping address. When shippingStreetAddress is blank, this must also be blank or an error is returned. |
shippingZipCode | String(5) | N | Customer’s shipping zip code. When shippingStreetAddress is blank, this must also be blank or an error is returned. |
identityContextInfo | |||
identityContextType | String(2) | N | 1 = Defined by Cash Number 2 = Defined by Pan 3 = Defined by Pseudo Pan 4 = Defined by Provided Context |
identityContextValue | String(30) | N | Depends on the identityContextType. Either a key that we provide (Provided Context), the swiped PAN, the printed Pseudo Pan or Cash Number. |
identityCheckToken | String(36) | N | Token from performIdentityCheck (optional if identityContextType and identityContextValue provided). |
initialCardOrderInfo | |||
orderCardBrand | String(50) | N | Field is nullable if initialCardInfo category is used. |
embossingLine2 | String(21) | N | This is used to add additional information to the card being printed. |
initialCardInfo | |||
initialCardType | String(2) | N | 1 = Defined by Pan |
initialCard | String(100) | N | Required if initialCardType provided: ie PAN or Pseudo PAN |
initialCardEncryptionType | String(12) | N | MAGTEK_DUKPT if track 2 is encrypted using Magtek’s DUKPT algorithm. |
initialCardKsn | String(30) | N | Key Serial Number for DUKPT decryption of track2. |
initialLoad | |||
loadAmount | Int | N | Load amount in cents. (Ex: 1356 = $13.56) |
loadType | String(50) | N | Type of load being distributed to card. |
sourceOfFunds | String(50) | N | Identifies the source of funds. Can be one of following: CASH, CHECK, CHECK_BUSINESS, CHECK_GOVBENEFITS, CHECK_INSURANCE, CHECK_IRA, CHECK_MONEYORDER, CHECK_OTHER, CHECK_PAYROLL, CHECK_PERSONAL, CHECK_TAXREFUND, CHECK_TRUST, EFILE, LOAN, LOAN_BANKED, LOAN_INSTALLMENT, LOAN_PAWN, LOAN_PAYDAY, LOAN_TITLE, LOAN_UNBANKED, IRAL, RAL, REFUND_TRANSFER |
-
{ "requestInfo":{ "txRef": "0123456789-987456521", "locationId": "0123", "stationId": "POS01", "tellerID": "Teller003" }, "customerInfo":{ "firstName": "John", "middleInitial": "H", "lastName": "Galt", "dateOfBirth": "03/25/1981", "govtIdType": 2, "govtIdCountryCode": "Us", "govtIdValue": "123221234", "streetAddress": "123 Main Street", "aptSuite": "1300", "zipCode": "78701", "phoneNumber": "555123456", "email": "jgalt@email.com", "shippingStreetAddress": "PO Box 123", "shippingAptSuite": "675", "shippingZipCode": "78701" }, "identityContextInfo":{ "identityContextType": "4", "identityContextValue": "209", "identityCheckToken": "AC15746E9ACDCE120000015A1CB4EE088001" }, "initialCardInfo":{ "initialCardType": "1", "initialCard": "5189190000000000", "initialCardEncryptionType": "", "initialCardKsn": "950003000004E62001AB" }, "initialCardOrderInfo":{ "orderCardBrand": "GOLD", "embossingLine2": "Thank you" }, "initialLoad":{ "loadAmount": 1356, "loadType": "TIPS", "sourceOfFunds": "CASH" } }
Response
Field | Type | Description |
---|---|---|
txRef | String(100) | Globally unique reference number provided by the partner to identify this transaction. It is recommended that the reference number include a timestamp in milliseconds. |
accountBalance | Int | The current account balance in cents. (Ex: 1356 = $13.56) |
accountNumber | String(100) | 10-digit account number (also called cash number) and can also include a bank prefix. |
orderStatus | String(100) | This returns the status of a card order. |
cipResponseCodes | String(100) | A comma-separated string of return codes from the table listed below. Also used to indicate a CIP failure even if real-time CIP is not used to show CIP Failed indicating you can only load only ≤ $1000.00 per FinCen. |
identityCheckToken | String(36) | Opaque token representing the results of this identity check |
Real-Time ID Check Return Codes
Code | Type | Description |
---|---|---|
200 | CIP Verification | CIP Verification Succeeded |
201 | CIP Verification | CIP Verification Failed |
202 | CIP Verification | Missing Information [Conditionally approved] |
203 | CIP Verification | Missing Information [Conditionally approved] – Manual review, pull missing information; submit to 3rd party check |
204 | CIP Verification | Match found in OFAC list |
205 | CIP Verification | Match found in Netspend Blacklist |
206 | CIP Verification | Bad Address |
207 | CIP Verification | Too many cards for same ID |
208 | CIP Verification | Too many secondary card owners on the account |
209 | CIP Verification | Invalid Gov ID value |
210 | CIP Verification | Invalid Gov ID Type |
211 | CIP Verification | Unable to verify CIP |
212-214 | CIP Verification | Bad DOB, Must be over 18 for primary and secondary cards |
-
{ "txRef": "0123456789-987456521", "accountBalance": 1356, "accountNumber": "1234567890", "orderStatus": "COMPLETE", "cipResponseCodes": "200", "identityCheckToken": "" }
Retrieve Direct Deposit Information
This command is used to retrieve the ACH information needed for an account set up with direct deposit.
-
End-Point | Method | Content-Type |
---|---|---|
/api/v1/netspend/getDirectDepositInfo | POST | application/json |
Request
Field | Type | Required | Description |
---|---|---|---|
accountNumber | String(20) | Y | The 16-digit PAN or, for existing accounts, the 10-digit account number/cash number. Field is nullable only when track2data is provided. |
track2Data | String(37) | N | Track I or II data (as proof that the card was swiped). Field is nullable only when accountNumber is provided. |
locationId | String(100) | Y | Store location ID to identify the sale location. Tracks POS origination. |
-
{ "accountNumber": "5189190000000000", "locationId": "0123" }
{ "track2Data": "8D62CE262DCEA90EEA17C585616026D8DF9FAE279F74F61C6E4A22FD036BF36E8E3232E29D5C2D5B", "locationId": "0123" }
Response
Field | Type | Description |
---|---|---|
bankAccountNumber | String(10) | 10-digit account number (also called cash number) and can also include a bank prefix. |
rdfi | String(100) | Routing number. |
-
{ "bankAccountNumber": "12550", "rdfi": "12550" }
Loading Funds
This command is used to load additional funds to eligible card products and existing accounts. To add funds to a cardholder’s savings account, you can now transfer a portion of the load amount from the GPR card to the cardholder’s savings account. The response for loadFunds now also has savingsBalance, which can be printed on the cardholder’s receipt.
-
End-Point | Method | Content-Type |
---|---|---|
/api/v1/netspend/loadFunds | POST | application/json |
Request
Field | Type | Required | Description |
---|---|---|---|
txRef | String(100) | Y | Globally unique reference number provided by the partner to identify this transaction. It is recommended that the reference number include a timestamp in milliseconds. |
accountNumber | String(20) | Y | The 16-digit PAN or, for existing accounts, the 10-digit account number/cash number. Field is nullable only when track2data is provided. |
track2Data | String(37) | N | Track I or II data (as proof that the card was swiped). Field is nullable only when accountNumber is provided. |
amount | Int | Y | Load amount in cents. (Ex: 1356 = $13.56) |
locationId | String(100) | Y | Store location ID to identify the sale location. Tracks POS origination. |
loadType | String | N | Type of load being distributed to card. Can be one of the following: TIPS, REIMBURSEMENT, RELOAD, PAYROLL, PAYROLL ADVANCE (default if request doesn’t contain loadType)
|
-
{ "txRef": "0123456789-987456333", "accountNumber": "5189190000000000", "amount": 1356, "locationId": "0123" }
{ "txRef": "0123456789-987456333", "track2Data": "8D62CE262DCEA90EEA17C585616026D8DF9FAE279F74F61C6E4A22FD036BF36E8E3232E29D5C2D5B ", "amount": 1757, "locationId": "0123" }
Response
Field | Type | Description |
---|---|---|
balance | Int | Card balance in cents. (Ex: 1356 = $13.56) |
cashNumber | String(10) | Customer account number. |
savingsBalance | Int | If a non-zero savings transfer amount was requested, savings account balance in cents. (Ex: 1356 = $13.56) |
-
{ "balance": 1356, "cashNumber": "1076459821", "savingsBalance": 1264 }
Perform Identity Check
This command performs an identity check to fulfill part of Customer Identity Program (CIP) requirements.
-
End-Point | Method | Content-Type |
---|---|---|
/api/v1/netspend/performIdentityCheck | POST | application/json |
Request
Parameter | Type | Required | Description |
---|---|---|---|
requestInfo | |||
txRef | String(100) | Y | Globally unique reference number provided by the partner to identify this transaction. It is recommended that the reference number include a timestamp in milliseconds. |
locationId | String(100) | Y | Store location ID to identify the sale location. Tracks POS origination. |
stationId | String(100) | N | Station ID to identify the POS terminal origination. Null allowed. |
tellerID | String(50) | N | Teller ID for the particular teller/employee logged on at the partner. |
customerInfo | |||
firstName | String(100) | Y | Cardholder’s first name. |
middleInitial | String(1) | N | Cardholder’s middle initial. |
lastName | String(100) | Y | Cardholder’s last name. |
dateOfBirth | String(10) | Y | Cardholder’s date of birth in. (Format: mm/dd/yyyy) |
govtIdType | Int | Y | Type of government ID (2 = Social Security Number) |
govtIdCountryCode | String(2) | Y | String representing country associated with govIdType. |
govtIdValue | String(50) | Y | The characters of the actual government ID. |
streetAddress | String(100) | Y | Cardholder’s street address. No P.O. boxes. |
aptSuite | String(100) | N | Cardholder’s apartment number or suite number. |
zipCode | String(5) | Y | The cardholder’s address zip code. Can contain dash followed by last 4. |
identityContextInfo | |||
identityContextType | String(2) | Y | 1 = Defined by Cash Number 2 = Defined by Pan 3 = Defined by Pseudo Pan 4 = Defined by Provided Context |
identityContextValue | String(30) | Y | Depends on the identityContextType. Either a key that we provide (Provided Context), the swiped PAN, the printed Pseudo Pan or Cash Number. |
-
{ "requestInfo":{ "txRef": "0123456789-987456521", "locationId": "0123", "stationId": "POS01", "tellerID": "Teller003" }, "customerInfo":{ "firstName": "John", "middleInitial": "H", "lastName": "Galt", "dateOfBirth": "03/25/1981", "govtIdType": 2, "govtIdCountryCode": "Us", "govtIdValue": "123221234", "streetAddress": "123 Main Street", "aptSuite": "1300", "zipCode": "78701" }, "identityContextInfo":{ "identityContextType": "4", "identityContextValue": "209" } }
Response
Field | Type | Description |
---|---|---|
txRef | String(100) | Globally unique reference number provided by the partner to identify this transaction. It is recommended that the reference number include a timestamp in milliseconds. |
responseCodes | String(100) | A comma-separated string of return codes from the table listed below. Also used to indicate failed CIP even if Real-Time CIP is not used to show CIP Failed indicating you need to load only ≤ $1000.00 per FinCen. |
identityCheckToken | String(36) | Opaque token representing the results of this identity check |
-
{ "txRef": "0123456789-987456521", "responseCodes": "200", "identityCheckToken": "AC15746E9ACDCE120000015A1CB4EE088001" }
Transaction Void
This command is used to void a previous card sale, load or withdrawal transaction. This command will reverse all financial transactions associated with previous command.
With this command:
- Voiding a card sale makes the card unusable (this is done to prevent fraud).
- Voiding a void is not allowed.
- Voiding a card sale that was followed by another load is not allowed – the load is voided first.
- Voiding a load that was followed by another load IS allowed ONLY if the resulting balance does not become negative.
- Cards sales can be voided within 1 hour of the sale.
- Loads can be voided within 3 hours of the load.
-
End-Point | Method | Content-Type |
---|---|---|
/api/v1/netspend/voidTransaction | POST | application/json |
Request
Field | Type | Required | Description |
---|---|---|---|
txRef | String(100) | Y | Globally unique reference number provided by the partner to identify this transaction. It is recommended that the reference number include a timestamp in milliseconds. |
originalTxRef | String(100) | Y | Original transaction reference identifying the card sale or load transaction to be voided. |
locationId | String(100) | Y | Store location ID to identify the sale location. Tracks POS origination. |
-
{ "txRef": "0123456789-987456521", "originalTxRef": "0123456789-987456321", "locationId": "0123" }
Response
Field | Type | Description |
---|---|---|
balance | Int | Card balance in cents. (Ex: 1356 = $13.56) |
cashNumber | String(10) | Customer account number. |
savingsBalance | Int | If a non-zero savings transfer amount was requested, savings account balance in cents. (Ex: 1356 = $13.56) |
-
{ "balance": 1356, "cashNumber": "1076459821", "savingsBalance": 1264 }