Transaction History

Transaction History APIs Overview

The Transaction History APIs provides multiple endpoints to retrieve, filter, and interpret financial transaction data for specified accounts and purses. It supports pagination, transaction detail retrieval, date‑based filtering, joint account tracking, interest and rewards queries, overdraft monitoring, and special handling for compliance mandates like the Visa merchandise return process.

Transaction Retrieval & Browsing Endpoints

GET /programs/{programCode}/accounts/{accountIdentifier}/transactions/pagination

Retrieves a paginated list of transactions for the specified account, allowing clients to page through large sets of transaction data.

GET /programs/{programCode}/accounts/{accountIdentifier}/transactions

Retrieves a list of transactions for the specified account, with optional filters for date range, transaction type, status, and purse. Supports inclusion of all authorizations. Returns transaction details and metadata.

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).

📘

For Joint Accounts, the response is enhanced to include the userIdentifier who initiated the transaction.

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"
}

Transactions Joint Account Scenario

For Transactions Joint Accounts, the response is enhanced to include the userIdentifier who initiated the transaction.

Route

GET /programs/{ProgramCode}/accounts/{AccountIdentifier}/transactions?startDate={StartDate}&endDate={EndDate}

Route Parameters

Parameter nameTypeValueDescription
programCodestringwfThis value identifies the program type of the account to be created.
accountIdentifieruuidvariesProperty and value provided in response of Enrollment call.
startDatestring2025-02-03Validate date and only support 3 month data between start date with end date
endDatestring2025-02-05Validate date and only support 3 month data between start date with end date

Headers

Header nameTypeValueDescription
X-GD-RequestIduuidvariesThis property is used to uniquely identify each request.
Authorizationbearer tokenvariesThe token received from GD.

Response

{
  "totalRecordCount": 1,
  "transactions": [
    {
      "userIdentifier": "5c24d7e5-8b8f-4b3c-816e-d56fbcf97fee", // This field is returned Only for JA
      "transactionIdentifier": "21936ea5-3877-f930-a56e-9321773830f9",
      "transactionType": "load",
      "transactionTypeDescription": "Partner Funding Instruction Credit",
      "transactionStatus": "completed",
      "accountIdentifier": "55881304-e02f-4048-a176-5efb4f6c8a79",
      "purseIdentifier": "2201b224-fa8b-48cc-bcd6-4afa55033190",
      "bin": "424067  ",
      "currency": "USD",
      "postedDateTime": "2025-02-04T07:57:11Z",
      "transactionAmount": 100.23,
      "isCredit": true,
      "postedInternalTransactionData": {
        "adjustmentIdentifier": "1405d1c9-a37a-3de2-bc65-b29fb73de8fb",
        "description": "Partner Funding Instruction Credit",
        "transferType": "None",
        "partnerAdjustmentType": "instructionCredit"
      }
    }
  ],
  "responseDetails": [
    {
      "code": 0,
      "subCode": 0,
      "description": "Success",
      "url": "http://tbd"
    }
  ]
}

Webhook

Transaction Joint Account Webhook

GET /programs/{programCode}/accounts/{accountIdentifier}/transactions/relatedTransactions

Retrieves transactions related to a specific transaction identifier for the specified account.

Special Transaction Type Endpoints

GET /programs/{programCode}/accounts/{accountIdentifier}/transactions/cashBackRewards

Retrieves a list of cash back reward transactions for the specified account, with optional filters for date range and purchase inclusion.

GET /programs/{programCode}/accounts/{accountIdentifier}/overdraftFeeAuthTransactions

Retrieves a list of overdraft fee authorization transactions for the specified account within a given date range.

GET /programs/{programCode}/accounts/{accountIdentifier}/overdraftTransactions

Retrieves a list of overdraft transactions for the specified account within a given date range.

Direct Deposit Management Endpoints

GET /programs/{programCode}/accounts/{accountIdentifier}/directdeposits

Retrieves a list of direct deposit transactions for the specified account, optionally filtered by date range.

GET /programs/{programCode}/accounts/{accountIdentifier}/directdeposits/depositor

Retrieves information about the direct deposit depositor for the specified account.

Earnings & Interest Endpoints

GET /programs/{programCode}/accounts/{accountIdentifier}/purses/{purseIdentifier}/interestEarned

Retrieves the total interest earned for a specified purse within a given date range.

Transaction 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 TypeCategoryTransaction StatusDescriptionIncluded Objects and PropertiesExcluded Objects
purchase, refund, atmWithdrawal tellerCashWithdrawal networkCardLoadPendingA pending authorization is a transaction that has not yet been settled.networkTransactionData authorizedTransactionDatapostedInternalTransactionData
purchase, refund, atmWithdra wal tellerCashWithdrawal networkCardLoadDeclined (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 declineReasonpostedInternalTransactionData
purchase, refund, atmWithdrawal tellerCashWithdrawal networkCardLoadRemoved (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 authorizedTransactionDatapostedInternalTransactionData
purchase, refund, atmWithdrawaltellerCashWithdrawalnetworkCardLoadExpired (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 authorizedTransactionDatapostedInternalTransactionData
purchaseNetworkCompletedA product or service was purchased from a merchant.networkTransactionData postedNetworkTransactionDataauthorizedTransactionData postedInternalTransactionData
refundNetworkCompletedA payment was refunded (returned merchandise).networkTransactionData postedNetworkTransactionDataauthorizedTransactionData postedInternalTransactionData
atmWithdrawal or tellerCashWithdrawalNetworkCompletedFunds were withdrawn from an ATM or a teller in a banknetworkTransactionData postedNetworkTransactionDataauthorizedTransactionData postedInternalTransactionData
achOutPosted InternalCompletedThe 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 transactionpostedInternalTransactionDatanetworkTransactionData
achOutReversedIf the ACH transfer is returned or cancelled, the transaction will be reversed.
achInPosted InternalCompletedA 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.postedInternalTransactionDatanetworkTransactionData
achInReversed
partnerTransferInPosted InternalCompletedAn ACH Pull transaction that has been posted to the account.postedInternalTransactionDatanetworkTransactionData
partnerTransferInReversedpostedInternalTransactionDatanetworkTransactionData
disbursementPosted InternalCompletedpostedInternalTransactionDatanetworkTransactionData
disbursementReversedpostedInternalTransactionDatanetworkTransactionData
adjustmentNot SpecificCompletedAn adjustment was made to the account. The adjustment reason was included in the transaction event.postedInternalTransactionData adjustmentTypenetworkTransactionData
adjustmentReversed
feeNot SpecificCompletedA fee was applied to the account. The fee type was included in the transaction event.Depends on the source of the feeDepends on the source of the fee
feeReversed
billPayPosted InternalCompletedA bill payment was posted to the account.postedInternalTransactionDatanetworkTransactionData
cashReloadPosted InternalCompletedA cash deposit via a retailer was posted to the account.postedInternalTransactionDatanetworkTransactionData
mrdcPosted InternalCompletedA check image was deposited and posted to the account.postedInternalTransactionDatanetworkTransactionData
networkCardLoadNetworkCompletedFunds were credited to the account using the debit rails.networkTransactionDatapostedInternalTransactionData
otherNot SpecificCompletedAn unclassified transaction.AnyAny
paperCheckPosted InternalCompletedA paper check was deposited and posted to the account.postedInternalTransactionDatanetworkTransactionData
peerTransferPosted InternalCompletedA P2P funds transfer was posted to the account.postedInternalTransactionDatanetworkTransactionData
purseTransferPosted InternalCompletedA purse to purse transfer was posted to the account.postedInternalTransactionDatanetworkTransactionData
eCashPosted InternalCompletedA cash deposit via barcode was made at a retailer and posted to the account.postedInternalTransactionDatanetworkTransactionData
externalFundingPosted InternalCompletedFunds were pulled from an external funding source such as an external debit card.postedInternalTransactionDatanetworkTransactionData

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