Transactions
Transactions APIs can be used for all things related to transactions.
Transactions API Endpoints
Obtain Transactions List for an Account
When query parameters are provided, the transactions API lists transactions for a specific account.
Structure of API Call
GET /programs/{programCode}/accounts/{accountIdentifier}/transactions
Transactions History will only show pending and posted (completed or reversed) transactions. Pending will be returned at the top of the result set for current period requests only (i.e., End Date = Today’s Date or End Date not provided).
Visa Mandate
As part of a Visa mandate, merchants must start authorizing merchandise return transactions instead of just force posting them as they have traditionally done. However, they advise that these authorizations should not impact the customer's available balance until the actual posting transaction has come in. Otherwise, there may be a risk of negative balances occuring if the customer uses the funds and the post never comes. Even though this transaction is not impacting the customer's available balance, we still are required to show it in their online history, so that they are aware that the return is in progress.
To indicate which transactions are informational a new optional property, authStatusIndicator, will be included in the authorizedTransactionData object under the Transactions object for both WebHooks and Get Transactions.
If authStatusIndicator is “I” then it is informational only. Other values can be ignored and interpreted to mean that they are reflected in the Available Balance.
Note: Do not rely on the presence of this property for all authorizations. If the property is missing, then it is not Informational only.
Sample Response - Informational Transaction
"authorizedTransactionData":{
"authStatusIndicator":"I",
"holdExpirationDate":"2019-03-25",
"requestAuthorizationAmount":14.45"eci":"eCommerce",
"approvalCode":"12345678"
},
Transactions Initiated via an Adjustment API
An adjustmentIdentifier and an adjustment description will be returned via the GET Transactions API for any transactions that are initiated from the Adjustment API.
Example:
- A transaction is initiated via an Adjustment API call.
- The transaction is processed.
- The transaction webhook will include the adjustmentIdentifier under postedInternalTransactionData.
- A GET Transactions API call covering the period of the Adjustment API request will also include the adjustmentIdentifier under postedInternalTransactionData.
- The description returned will be based on the description provided via the Adjustment API.
Sample Response
"postedInternalTransactionData":{
"adjustmentIdentifier":"20433e90-0935-4ca1-8beb-ae7de12ef759",
"description":"Value passed to adjustmentDescription"
}
For additional information on Transaction Webhooks, click here.
For additional information on the Adjustment API, click here.
Request Parameters
Field | Type | Format | Required | Description |
---|---|---|---|---|
accountIdentifier | String | Path | Required | Unique identifier for the account affected by the transaction. |
startDate | String | Query | Required | Must be: • Central Time (CT) • In the form YYYY-MM-DD • Earlier or equal to the endDate. Note: startDate must be provided along with the endDate. If you enter a future date for the startDate, you will receive the following within the responseDetails: • http status code: 200 • code: 11 Note: These codes indicate an empty list. |
endDate | String | Query | Optional | If provided, it must be: • Central Time (CT) • In the form YYYY-MM-DD • Either today or earlier If provided, but time is given as 0, 1 day will be added to the date element, thus including all of the day given. If endDate is not provided, then the current date plus 2 days is used. Note: startDate & endDate can be up to 92 days apart. Note: Partner API prevents future dates from being passed to internal layer. |
Offset | Integer | Query | Optional | Number of pages offset from the first page. Default: 0 |
Limit | Integer | Query | Optional | Number of rows returned on each page. Limit for subsequent pages should match the limit from the first page. (where offset: 0) Default: 1,000 |
transactionType | String | Query | Optional | Filters results to identify the type of transaction. The available transactionTypes are: • purchase • refund • atmWithdrawal • tellerCashWithdrawal • networkCardLoad • achOut • cashReload • peerTransfer • purseTransfer • achIn • adjustment • partnerTransferIn • disbursement • fee • eCash • other |
transactionStatus | String | Query | Optional | Filters the results to identify the state of the transaction. Example: pending |
Sample Responses
Sample Response - Pending Authorization:-
"transactions":[
{
"transactionIdentifier":" 96827a40-2dc8-4b49-bd56-241674be99b6",
"transactionType":"purchase",
"transactionTypeDescription":"Purchase",
"transactionStatus":"pending",
"accountIdentifier":" 55d416dc-0891-46e8-8a4d-558074c9204f",
"purseIdentifier":" 9b405f96-ae52-4723-baca-26b810386c96",
"bin":"413331 ",
"last4Pan":"4717",
"currency":"USD",
"postedDateTime":"2020-01-16T19:26:03Z",
"transactionAmount":14.45,
"isCredit":false,
"networkTransactionData":{
"authorizationDateTime":"2020-01-16T19:26:03Z",
"cashBackAmount":0.0,
"cardAcceptor":{
"merchantName":"Acme",
"merchantIndustryCode":"6011",
"merchantIndustryCategory":"Service Providers",
"merchantIndustryDescription":"Financial institutions — automated cash disbursements",
"city":"Pasadena",
"stateProvReg":"CA"
},
"authorizedTransactionData":{
"holdExpirationDate":"2020-01-30"
}
}
}
],
"responseDetails":[
{
"code":0,
"subCode":0,
"description":"Success",
"url":"http://tbd"
}
]
}
Sample Response – Purchase Completed:-
"transactions":[
{
"transactionIdentifier":" f9796733-b547-4260-b4c1-30b897e67d24",
"transactionType":"purchase",
"transactionTypeDescription":"Purchase",
"transactionStatus":"completed",
"accountIdentifier":" 53dac044-0f47-4b31-beae-c0875151a8a4",
"purseIdentifier":"f82d6aef-cc5d-4f0b-a18e-921fd8011a32",
"bin":"413331 ",
"last4Pan":"4000",
"currency":"USD",
"postedDateTime":"2020-01-17T15:17:51Z",
"transactionAmount":92.49,
"isCredit":false,
"networkTransactionData":{
"authorizationDateTime":"2020-01-16T15:17:51Z",
"cashBackAmount":0.0,
"cardAcceptor":{
"merchantName":"Acme",
"merchantIndustryCode":"0001",
"city":"E Main Pasadena",
"stateProvReg":"CA"
}
}
}
],
"responseDetails":[
{
"code":0,
"subCode":0,
"description":"Success",
"url":"http://tbd"
}
]
}
Sample Response – achIn Completed:-
{
"transactions":[
{
"transactionIdentifier":" 4a0b198f-ad81-4c07-b8ee-6dea5db2a38d",
"transactionType":"achIn",
"transactionTypeDescription":"Deposit",
"transactionStatus":"completed",
"accountIdentifier":" a6da9d55-5fc5-420b-b4db-0e5fb4610328",
"purseIdentifier":" 89271e6a-eef2-45cf-a49c-40cc15688ae0",
"bin":"111111",
"last4Pan":"1282",
"currency":"USD",
"postedDateTime":"2019-12-05T05:23:23Z",
"transactionAmount":10.0,
"isCredit":true,
"postedInternalTransactionData":{
"achCategoryCode":"uk",
"description":" Acme Payroll",
"transferType":"None"
}
}
],
"responseDetails":[
{
"code":0,
"subCode":0,
"description":"Success",
"url":"http://tbd"
}
]
}
Sample Response - Adjustment Made by the Bank:-
Note: Adjustments made directly to an account by the bank have the transactionType, adjustment.
"transactions":[
{
"transactionIdentifier":"7cff644f-aefc-2e50-4f64-ff7cfcae502e",
"transactionType":"adjustment",
"transactionTypeDescription":"Adjustment",
"transactionStatus":"completed",
"accountIdentifier":"64072e95-7b6a-401f-b5e5-af6378227047",
"purseIdentifier":"8dde1bcf-2175-40e3-a726-4906edbcfd72",
"bin":"400798",
"last4Pan":"8168",
"currency":"USD",
"postedDateTime":"2020-01-27T20:20:43Z",
"transactionAmount":50.0,
"isCredit":true,
"postedInternalTransactionData":{
"transferIdentifier":"064b4d97-b4df-4c1d-8149-e72129c4dfc6",
"adjustmentType":"provisionalDispute",
"description":"Dispute Provisional Credit",
"transferType":"adjustment"
}
}
],
"responseDetails":[
{
"code":0,
"subCode":0,
"description":"Success",
"url":"http://tbd"
}
]
}
Sample Response - Adjustment Made by a Partner:-
Note: The POST /adjustments endpoint requires an adjustmentType to be provided in the request. Therefore, the adjustmentType will be returned for a GET /transactions request as a partnerAdjustmentType under the postedInternalTransactionData node. Adjustments made by a Partner, using the Adjustment API, may have different transactionType values, but will have an adjustmentIdentifier.
{
"transactions":[
{
"transactionIdentifier":" 4b0c978c-8cef-4db2-ae2d-0f8dff996e5d",
"transactionType":"promo",
"transactionTypeDescription":"Promotional Credit Reversal",
"transactionStatus":"reversed",
"accountIdentifier":"3d6f00f4-9731-4493-b34e-9a76d54008b6",
"purseIdentifier":"8a8a4844-49d1-45aa-9829-64bc9d40a1e8",
"bin":"000000",
"last4Pan":"1111",
"currency":"USD",
"postedDateTime":"2020-03-09T01:23:01Z",
"transactionAmount":2.72,
"isCredit":false,
"postedInternalTransactionData":{
"adjustmentIdentifier":"4f465478-8b6b-4d15-bc0c-b42dd66df2f1",
"description":"Promotional Credit Reversal",
"transferType":"None",
"partnerAdjustmentType":"promoReversal"
}
}
}
],
"responseDetails":[
{
"code":0,
"subCode":0,
"description":"Success",
"url":"http://tbd"
}
]
}
Sample Response - Fee for a Network Transaction:-
{
"transactions":[
{
"transactionIdentifier":"e5709fb9-4a72-4067-b1d6-136506efdcfc",
"transactionType":"fee",
"transactionTypeDescription":"Fee",
"transactionStatus":"completed",
"accountIdentifier":"f6d95dc8-26c3-449c-8658-2026bc351259",
"purseIdentifier":"f315b5c0-1112-4e6f-81fc-1462ccb03134",
"bin":"101200",
"last4Pan":"4000",
"currency":"USD",
"postedDateTime":"2020-01-26T21:33:34Z",
"transactionAmount":34.64,
"fee":{
"description":"Out of Network ATM Withdrawal Fee",
"amount":34.64,
"currency":"USD"
},
"isCredit":false,
"postedInternalTransactionData":{
"description":"Out of Network ATM Withdrawal Fee",
"transferType":"None"
}
}
],
"responseDetails":[
{
"code":0,
"subCode":0,
"description":"Success",
"url":"http://tbd"
}
]
}
Sample Response - Fee for Internally Generated Transactions:-
{
"transactions":[
{
"transactionIdentifier":"8d6727db-89c0-7029-db27-678dc0892970",
"transactionType":"fee",
"transactionTypeDescription":"Fee",
"transactionStatus":"completed",
"accountIdentifier":"1d6eb60c-bcfc-4d4a-8efc-55b55d08636c",
"purseIdentifier":"a0b9bbae-074c-4fa2-a6a2-53810a2d7344",
"bin":"400798 ",
"last4Pan":"9018",
"currency":"USD",
"postedDateTime":"2020-01-28T16:43:56Z",
"transactionAmount":0.5,
"fee":{
"description":"Instant Transfer Fee",
"amount":0.5,
"currency":"USD"
},
"isCredit":false,
"postedInternalTransactionData":{
"adjustmentIdentifier":"34c9934a-35c7-3dde-b2c1-4c10d08ef3a3",
"description":"Instant Transfer Fee",
"transferType":"None"
}
}
],
"responseDetails":[
{
"code":0,
"subCode":0,
"description":"Success",
"url":"http://tbd"
}
]
}
Sample Response – Business Accounts:-
"transactions":[
{
"paymentIdentifier":"8caf6251-237d-411d-aab5-a9d90aafc773",
"transactionIdentifier":"6b48c463-52bb-40c5-9a32-d4dfe1538633",
"transactionType":"achOut",
"transactionTypeDescription":"Transfer",
"transactionStatus":"completed",
"accountIdentifier":"fde3cf88-8e1a-47c5-9a36-f91814e107ff",
"purseIdentifier":"e49570db-1b02-4a2a-b72e-e441bc383caf",
"bin":"424500 ",
"last4Pan":"1111",
"currency":"USD",
"postedDateTime":"2020-07-20T17:51:46Z",
"transactionAmount":5.0000,
"isCredit":false,
"postedInternalTransactionData":{
"transferIdentifier":"54a696d9-294b-41e5-b07f-bae787847bbc",
"description":"BusinessACHPartne123, GDot Bank (-8878)",
"bankData":{
"routingNumber":"090678876",
"accountNumber":"8878",
"bankName":"GDot Bank",
"accountType":"Checking",
"businessName":"BusinessACHPartne123"
},
"transferType":"achOut"
}
}
],
"responseDetails":[
{
"code":0,
"subCode":0,
"description":"Success",
"url":"http://tbd"
}
]
}
Response Parameters
Field | Description |
---|---|
responseDetails | See Response Details |
code | See Response Details |
subCode | See Response Details |
description | See Response Details |
url | See Response Details |
totalRecordCount | Total number of transactions in the overall result set. |
transactions | Object array containing transaction data. |
transactionIdentifier | Unique Identifier (UID) or GUID for transaction. |
transactionType | Type of transactions being listed. See Transaction Types & Statuses for details. Note: If the transaction type is adjustment, the adjustmentType will display. See Adjustment Types for details. |
transferTypeDescription | Description of transaction type |
transactionStatus | Status of transactions listed (i.e. pending, completed, reversed). When query filter is completed, both completed and reversed transactions will be returned. Note: Pending transactions are returned for current period (endDate not provided or is equal to “today”) queries only and are sorted at the top of the results. |
accountIdentifier | Unique Identifier (UID) or GUID for the account involved in this transaction. |
purseIdentifier | Unique Identifier (UID) or GUID for the purse involved in this transaction. |
bin | First 4-8 digits of a user’s card number that identifies a range of cards assigned to a Card Issuer (i.e. Green Dot). |
last4Pan | Last 4 digits of the user’s card number. |
currency | Returns the account currency provided as an Alpha-3 ISO currency code. Default is USD. |
postedDateTime | Date/time (UTC) of transaction. Note: UTC means time is offset from US time zones by approx. +4 to +11 hours. |
transactionAmount | The amount of the transaction excluding fees, unless the transactionType is fee, in which case the fee and transaction amount will be the same. Cashback is included in this amount. |
fee | Fee associated with a transaction. |
feeType | Type of fee(s) associated with the transaction. |
description | Description displayed to user in fee schedule. |
amount | Amount of fee associated with the transaction. |
currency | Returns the account currency provided as an Alpha-3 ISO currency code. Default is USD. |
isCredit | If true, transaction is a credit. If false, transaction is a debit. |
networkTransactionData | Returns the properties of the network transaction listed (i.e. authorization, purchase, atmWithdrawal, refund). |
authorizationDateTime | Date/time (UTC) of transaction authorization. Note: UTC means time is offset from US time zones by approx. +4 to +11 hours. |
cashBackAmount | Amount requested as cash back during transaction. Included in transactionAmount. |
localTransactionData | Properties of a foreign currency network transaction. Displayed only when user makes a transaction outside of the United States. |
amount | Amount of foreign transaction |
currency | Type of currency used with foreign transaction |
cardAcceptor | Details where the customer (user) made the purchase. Note: May contain other merchant provided data, in addition to name, city and state, such as a phone number. |
merchantName | Name of merchant |
merchantIndustryCode | Industry code of the merchant involved in the transaction. |
merchantIndustryCategory | Industry category of the merchant involved in the transaction. |
merchantIndustryDescription | Industry description of the merchant involved in the transaction. |
city | City where merchant is located |
stateProvReg | State where merchant is located |
authorizedTransactionData | Returns details concerning the authorized network transaction. Note: An authorized transaction will be in a pending status until it is posted, removed, or expires. |
holdExpirationDate | If the authorized transaction is not cleared or removed by this date, then the transaction expires, and the held funds will become available again. |
declineReason | Returns if transactionStatus is declined. For a list of decline reasons and descriptions, see the Decline Reasons. |
eci | Included with authorized transactions. Possible values for the ECI indicator are: • eCommerce • recurring • installment • multiClearing • none |
approvalCode | A code assigned during authorization indicating approval. This code follows a transaction through its lifecycle, even for reversals and multi-clearing transactions |
postedInternalTransactionData | A posted transaction that was initiated within the system and returned (i.e. transactionType =achOut, peerTransfer, adjustment, achIn, etc.). Note: When the transactionType is achIn, the following rule applies: • For domestic transactions, the maximum length of this description is 26 characters. • For International transactions, the maximum length is 45 characters |
achCategoryCode | Optional. Value returned for ACH category payroll. Only returned when transactionType = achIn. Refer to ACH Categories for details. |
adjustmentType | Displayed if transactionType is adjustment. See Adjustment Types / Business Rule Response Codes for details |
description | Transaction description for: • achIn • achOut • cashReload • partnerTransferIn (achPull) • disbursement • purseTransfer |
transferType | Type of transfer (i.e. achOut) |
Retail Sale and Bank Data
The retailSaleData or bankData will be included in responses received as a result of one of the following transactions:
- cashReload
- eCash
- achOut
- achPull
How it Works
- cashReload and eCash Transactions:
- When GET /transactions is called and processed, retailSaleData and transferType will be included in the response.
Sample Response (retailSaleData)
"postedInternalTransactionData":{
"description":"Corner Store 2000, Haltom City TX",
"transferType":"cashReload",
"retailSaleData":{
"city":"Haltom City",
"state":"TX",
"merchantName":"Corner Store",
"storeNumber":"2000"
}
}
- achOut and achPull Transactions:
- When GET /transactions is called and processed, bankData and transferType will be included in the response.
- achPull is distinguished from disbursement using the transferType
- bankData is unencrypted due to only the last four digits of the accountNumber being displayed
Sample Response (bankData)
"postedInternalTransactionData":{
"transferIdentifier":"da23e369-b535-4d17-9529-0e65db6736d6",
"description":"CusTACHPartne020 BaaS, GDot Bank (-4444)",
"bankData":{
"routingNumber":"123456789",
"accountNumber":"4444",
"bankName":"GDot Bank",
"firstName":"Jack",
"lastName":"Jones",
"accountType":"checking"
},
"transferType":"achPull"
}
List Transactions for Specific Savings Purse
This endpoint allows Partners to retrieve a list of transactions for a specific savings purse using the optional purseIdentifier parameter. If a request is submitted including a purseIdentifier, then only transactions for that specific purse will be returned. If a request is submitted without a purseIdentifier, then the primary purse’s transactions will be returned.
Structure of API Call
GET /programs/{programCode}/accounts/{accountIdentifier}/transactions?startDate&endDate&purseIdentifier
Obtain Interest Earned
This endpoint obtains the interest earned on an account.
Structure of API Call
GET /programs/{programCode}/accounts/{accountIdentifier}/purses/{purseIdentifier}/interestEarned
Obtain Direct Deposits Information
This endpoint is used to obtain direct deposit details for a specific account.
Structure of API Call
GET /programs/{programCode}/accounts/{accountIdentifier}/directdeposits
Create Trial Deposit
This endpoint is used to generate a trial deposit transaction for a specific account.
Structure of API Call
POST /programs/{programCode}/accounts/{accountIdentifier}/trialDeposit
Verify Trial Deposit
This endpoint is used to verify the trial deposit transaction for a specific account.
Structure of API Call
POST /programs/{programCode}/accounts/{accountIdentifier}/trialDeposit/verify
Obtain External Bank Accounts
This endpoint is used to access external bank accounts for a specific institution.
Structure of API Call
GET /programs/{programCode}/accounts/{accountIdentifier}/externalBankAccounts
Update External Bank Account Status
This endpoint is used to update the status of a specific external bank account.
Structure of API Call
PUT /programs/{programCode}/accounts/{accountIdentifier}/externalBankAccounts/{externalBankAccountReferenceID}
Transaction Pagination
This API produces a list of transactions and paginates them according to the requested parameters.
Structure of API Call
GET /programs/{programCode}/accounts/{accountIdentifier}/transactions/pagination
Obtain List of Cashback Rewards Transactions
This API obtains a list of transactions for cashback rewards.
Structure of API Call
GET /programs/{programCode}/accounts/{accountIdentifier}/transactions/cashBackRewards
Obtain Related Transactions by ID
This API obtains related transactions for a specific account.
Structure of API Call
GET /programs/{programCode}/accounts/{accountIdentifier}/transactions/relatedTransactions
Appendices
Transaction Types & Statuses
Transactions are originally recorded based on the processor’s time zone then represented by the APIs in UTC. Several of our key processors use Central Time.
- Pending: authorizedTransactionData will be included
- Declined: only returned via the webhook - authorizedTransactionData will be included along with declineReason
- Removed: only returned via the webhook - authorizedTransactionData will be included
- Expired: only returned via the webhook - authorizedTransactionData will be included
- Reversed: transaction has been posted to the customer’s account but is a reversal of a previously completed transaction
- Completed: transaction has been posted to the customer’s account
- Cleared: In multi-clearing publish notifications (PNs), this transaction status Indicates when the outstanding authorization amount has been fully posted.
Transaction Type | Category | Transaction Status | Description | Included Objects and Properties | Excluded Objects |
---|---|---|---|---|---|
purchase, refund, atmWithdrawal tellerCashWithdrawal networkCardLoad | Pending | A pending authorization is a transaction that has not yet been settled. | networkTransactionData authorizedTransactionData | postedInternalTransactionData | |
purchase, refund, atmWithdra wal tellerCashWithdrawal networkCardLoad | Declined (only applicable to alerts) | Purchase was declined at the merchant. A "Decline Reason" will be provided. See the section below for decline reasons. | networkTransactionData authorizedTransactionData declineReason | postedInternalTransactionData | |
purchase, refund, atmWithdrawal tellerCashWithdrawal networkCardLoad | Removed (only applicable to alerts) | The authorization was removed and will not be settled. This may occur when a purchase at an automated fuel pump is abandoned or if a pending authorization is reversed. | networkTransactionData authorizedTransactionData | postedInternalTransactionData | |
purchase, refund, atmWithdrawaltellerCashWithdrawalnetworkCardLoad | Expired (only applicable to alerts) | Authorizations have a hold date (holdExpirationDate), after which they will automatically expire. When this occurs, the transaction status will be "expired." | networkTransactionData authorizedTransactionData | postedInternalTransactionData | |
purchase | Network | Completed | A product or service was purchased from a merchant. | networkTransactionData postedNetworkTransactionData | authorizedTransactionData postedInternalTransactionData |
refund | Network | Completed | A payment was refunded (returned merchandise). | networkTransactionData postedNetworkTransactionData | authorizedTransactionData postedInternalTransactionData |
atmWithdrawal or tellerCashWithdrawal | Network | Completed | Funds were withdrawn from an ATM or a teller in a bank | networkTransactionData postedNetworkTransactionData | authorizedTransactionData postedInternalTransactionData |
achOut | Posted Internal | Completed | The achOut transfer was approved, and funds were withdrawn. Note: achOut is used for all transaction s where Green Dot is the Originating Depository Financial Institution (ODFI). In the ACH flow, the ODFI acts as the interface between the Federal Reserve or ACH network and the originator of the transaction | postedInternalTransactionData | networkTransactionData |
achOut | Reversed | If the ACH transfer is returned or cancelled, the transaction will be reversed. | |||
achIn | Posted Internal | Completed | A Direct Deposit transaction was completed, and the new balance was reflected on the account. Note: achIn is used for all transaction s where Green Dot is the Receiving Depository Financial Institution (RDFI) (i.e. direct deposits). The achIn refers to the direction of the request and not the direction of the funds flow. The RDFI interlinks the receiver's account with the card’s (payment instrument ’s) association network. | postedInternalTransactionData | networkTransactionData |
achIn | Reversed | ||||
partnerTransferIn | Posted Internal | Completed | An ACH Pull transaction that has been posted to the account. | postedInternalTransactionData | networkTransactionData |
partnerTransferIn | Reversed | postedInternalTransactionData | networkTransactionData | ||
disbursement | Posted Internal | Completed | postedInternalTransactionData | networkTransactionData | |
disbursement | Reversed | postedInternalTransactionData | networkTransactionData | ||
adjustment | Not Specific | Completed | An adjustment was made to the account. The adjustment reason was included in the transaction event. | postedInternalTransactionData adjustmentType | networkTransactionData |
adjustment | Reversed | ||||
fee | Not Specific | Completed | A fee was applied to the account. The fee type was included in the transaction event. | Depends on the source of the fee | Depends on the source of the fee |
fee | Reversed | ||||
billPay | Posted Internal | Completed | A bill payment was posted to the account. | postedInternalTransactionData | networkTransactionData |
cashReload | Posted Internal | Completed | A cash deposit via a retailer was posted to the account. | postedInternalTransactionData | networkTransactionData |
mrdc | Posted Internal | Completed | A check image was deposited and posted to the account. | postedInternalTransactionData | networkTransactionData |
networkCardLoad | Network | Completed | Funds were credited to the account using the debit rails. | networkTransactionData | postedInternalTransactionData |
other | Not Specific | Completed | An unclassified transaction. | Any | Any |
paperCheck | Posted Internal | Completed | A paper check was deposited and posted to the account. | postedInternalTransactionData | networkTransactionData |
peerTransfer | Posted Internal | Completed | A P2P funds transfer was posted to the account. | postedInternalTransactionData | networkTransactionData |
purseTransfer | Posted Internal | Completed | A purse to purse transfer was posted to the account. | postedInternalTransactionData | networkTransactionData |
eCash | Posted Internal | Completed | A cash deposit via barcode was made at a retailer and posted to the account. | postedInternalTransactionData | networkTransactionData |
externalFunding | Posted Internal | Completed | Funds were pulled from an external funding source such as an external debit card. | postedInternalTransactionData | networkTransactionData |
Transactions – Required Fields & Allowable Values
Property | Required | Conditions | Allowable Values to Enter |
---|---|---|---|
Accounts.accountIdentifier | Yes | Webhook Only | |
Accounts.events.eventIdentifier | Yes | Webhook Only | |
Accounts.events.eventDateTime | Yes | Webhook Only | |
Accounts.events.transactions | Yes | ||
Accounts.events.transactions.transactionIdentifier | Yes | ||
Accounts.events.transactions.transactionType | Yes | Refer below for Transaction Types & Statuses | |
Accounts.events.transactions.transactionStatus | Yes | Refer below for Transaction Types & Statuses | |
Accounts.events.transactions.accountIdentifier | Yes | ||
Accounts.events.transactions.bin | No | 4-8 characters | |
Accounts.events.transactions.last4Pan | No | 4 digits | |
Accounts.events.transactions.currency | Yes | ISO-3 Char | |
Accounts.events.transactions.purses | Yes | Webhook Only | |
Accounts.events.transactions.purses.purseIdentifier | Yes | Webhook Only | |
Accounts.events.transactions.puses.purseType | Yes | Webhook Only | primary or savings |
Accounts.events.transactions.purses,availableBalance | Yes | Webhook Only | |
Accounts.events.transactions.purses.ledgerBalance | Yes | Webhook Only | |
Accounts.events.transactions.purses.availableBalanceAsOfDateTime | Yes | Webhook Only | |
Accounts.events.transactions.purses.ledgerBalanceAsOfDateTime | Yes | Webhook Only | |
Accounts.events.transactions.postedDateTime | Yes | ||
Accounts.events.transactions.transactionAmount | Yes | ||
Accounts.events.transactions.fees Note: This is an array in the webhook. This is a single fee object in Get Transactions. | Yes, if No in all other instances | transactionType = fee | |
Accounts.events.transactions.fees.feeType | Yes, if | There is a fee element | Refer below for Fee Types |
Accounts.events.transactions.fees.description | Yes, if | There is a fee element | |
Accounts.events.transactions.fees.amount | Yes, if | There is a fee element | |
Accounts.events.transactions.fees.currency | Yes, if | There is a fee element | ISO-3 Char |
Accounts.events.transactions.isCredit | Yes | ||
Accounts.events.transactions.networkTransactionData | No | Optional. For network transactions only | |
Accounts.events.transactions.networkTransactionData.authorizationDateTime | No | ||
Accounts.events.transactions.networkTransactionData.cashBackAmount | No | ||
Accounts.events.transactions.networkTransactionData.localTransactionData | No | ||
Accounts.events.transactions.networkTransactionData.localTransactionData.amount | Yes, if | There is a localTransactionData element | |
Accounts.events.transactions.networkTransactionData.localTransactionData.currency | Yes, if | There is a localTransactionData element | ISO-3 Char |
Accounts.events.transactions.networkTransactionData.cardAcceptor | Yes | Required for network transactions only | |
Accounts.events.transactions.networkTransactionData.cardAcceptor.merchantName | Yes | Required for network transactions only | |
Accounts.events.transactions.networkTransactionData.cardAcceptor.city | No | Can contain non-city information | |
Accounts.events.transactions.networkTransactionData.cardAcceptor.stateProvReg | No | Can contain non-state or providence information | |
Accounts.events.transactions.networkTransactionData.cardAcceptor.merchantIndstryCode | Yes | Required for network transactions Note: Set is unstable and not controlled by the BaaS platform. | |
Accounts.events.transactions.networkTransactionData.cardAcceptor.merchantIndustryDescription | No | ||
Accounts.events.transactions.networkTransactionData.cardAcceptor.merchantIndustryCategory | No | ||
Accounts.events.transactions.networkTransactionData.authorizedTransactionData | No | ||
Accounts.events.transactions.networkTransactionData.authorizedTransactionData.holdExpirationDate | Yes, if | authorizationTransactionData is returned | |
Accounts.events.transactions.networkTransactionData.authorizedTransactionData.declineReason | Yes, if | transactionStatus is declined | Refer below for Decline Reasons |
Accounts.events.transactions.networkTransactionData.postTransactionData | No | Webhook Only | |
Accounts.events.transactions.networkTransactionData.postTransactionData.localDateTime | No | Webhook Only | |
Accounts.events.transactions.networkTransactionData.postTransactionData.postingDateTime | No | Webhook Only | |
Accounts.events.transactions.postedInternalTransactionData | No | Included for internal transactions | |
Accounts.events.transactions.postedInternalTransactionData.transferIdentifier | No | ||
Accounts.events.transactions.postedInternalTransactionData.adjustmentType | Yes, if | transactionType=adjustment | Refer below for Adjustment Types |
Accounts.events.transactions.postedInternalTransactionData.description | Yes | Included for all postedInternalTransactionData,but can be an empty string. | Domestic Transactions = maximum length of the description is 26 characters International transactions = maximum length is 45 characters |
Refer to Bill Payment Codes for Adjustment Types.
References
Valid Characters for Names, Cities, and Addresses
Note: Below is a complete list of characters permitted for customer names.
General Rules
Unicode is disallowed for name fields, address fields, and city fields.
Allowable values for name fields are ascii 32 to 126, with the following exceptions:
- 33-38
- 40-43
- 47
- 58-64
- 91-96
- 123-126
Allowable values for city and address are ascii 32-126 and 192-255, with the following exceptions:
- 33-34
- 36-37
- 42-43
- 58-64
- 91-96
- 123-126
- 215
- 217-220
- 247
Fee Types
Some of these fee types may not be supported for a program.
- bankOtcFee - Bank OTC Fee (Debit)
- atmBalanceInquiryFee - ATM Balance Inquiry Fee (Debit)
- atmWithdrawalFee - ATM Withdrawal Fee (Debit)
- foreignTransactionFee - Foreign Transaction Fee (Debit)
- payPerUseFee - Pay Per Use Fee (Debit)
- bankOtcFee - Bank OTC Fee Reversal (Credit)
- atmBalanceInquiryFee - ATM Balance Inquiry Fee Reversal (Credit)
- atmWithdrawalFee - ATM Withdrawal Fee Reversal (Credit)
- foreignTransactionFee - Foreign Transaction Fee Reversal (Credit)
Transaction Decline Reasons
- ATC - Application Transaction Counter. The counter results in uniqueness to the cryptograms (ARQC) and provides tracking values for the host verification services, allowing replayed transactions and cloned cards to be identified.
- atcDecline - The transaction counter for the transaction has either been used before or is out of range. If this error persists, contact Customer Service to reset the ATC counter for the card used in the transaction.
- cardStatus - The card used is currently in a status that does not allow transactions. Contact customer service to review the account.
- closedAccount - Closed is a terminal status, so it cannot be reopened at the processor.
- closedCard - May be due to a card being reported lost or stolen or a closed account.
- customerHold - Purchase transactions that are declined because the card can be unpaused by the customer will trigger a webhook to the partner containing this decline reason. The partner will then be able to notify the accountholder that their purchase may be processed if the card used in the transaction is unpaused. Note: Customers should not unpause their cards if the declined transaction is not recognized.
- insufficientFunds - The available funds for the account are less than the purchase amount being authorized.
- invalidAddress - Declined due to AVS mismatch.
Note: This is not a standard configuration and will not be provided to any partners by default. However, if you are interested, please discuss this feature with your Green Dot representative. - invalidCVV - The CVV provided does not match the CVV of the card being used.
- invalidExpirationDate - The expiration date provided does not match the expiration date of the active card.
- invalidTransactionData - This is due to a merchant data issue. Often, but not always, the transaction will succeed on a retry.
- other - Fraud related (Do Not Honor, Suspicious or Unusual Activity)
- partialApproval - The purchase was approved for an amount that is less than the requested amount. For example, if the balance on the account is $40.00 and the amount being authorized is $50.00 then a merchant may be configured to approve up to the available balance of $40.00. This is often the case for restaurant purchases.
- transactionNotAllowed - Transaction type is not allowed on the card (i.e., ATM on a temporary card, internet gambling, signature based AFD, etc.). Transactions are not allowed at this specific merchant or purchase not allowed for this country.
- velocityLimitedExceeded - The purchase would cause the account to exceed a velocity limit, such as trying to go over your daily ATM limit in # or $, monthly spend limit, etc.
- wrongPin - The ATM Pin entered did not match the ATM Pin that was last set for the card.
Note: ATM Pins must be reset whenever a new card with a new card number is issued.
Transaction Alert Recommendations (Webhooks)
Some of the scenarios supported by alerts to the partner include:
- The partner wants to provide real-time balance alerts to the end user. For example, if the balance falls before a certain level, the partner may want to alert the user.
- The partner wants to provide alerts to the users for transactions that are completed or reversed from an external process. For example, ACH Out Reversal, ACH in Completed or Reversed, and Adjustments.
- The partner wants to provide alerts to the users for transactions that are pending. For example, the end user may be alerted of purchases or refunds at the time they are authorized, because they affect Available Balance.
- The partner wants to provide alerts to the users for transactions that are declined.
Note: The end user is typically not alerted for this status but is an option to consider in discussion with Green Dot during UX reviews. - The partner wants to provide alerts to the users for transactions that are removed.
Note: The end user is typically not alerted for this status, but it does update the Available Balance of an account. - The partner wants to provide alerts to the users for transactions that are expired.
Note: The end user is typically not alerted for this status, but it does update the Available Balance of an account.
TX ATM Withdrawal with Fee
Updated 9 months ago