Card Reload APIs
Card Reload API
This section covers endpoints for depositing cash to prepaid and debit card accounts at retail point of sale. The typical integration flow is:
- Get Card Details - Validate the card and retrieve fee/limit information before presenting the transaction to the customer.
- Reload - Commit the cash deposit to a Green Dot or Green Dot Partner Card.
- Point of Banking Payment - Commit a cash deposit to any valid US debit card (requires additional customer identity fields).
Note: Every request must include a unique
X-GD-RequestIdheader value.
Get Card Details
Validates a cash deposit to a prepaid or debit card prior to initiating the transaction. Returns fee, limit, and card type information to display to the customer before proceeding.
Syntax:
POST {baseUrl}/card/details
Request
POST {baseUrl}/card/details
Authorization: Bearer {access_token}
Content-Type: application/json
X-GD-RequestId: req-20260115-crd001
{
"metadata": {
"storeId": "STORE-0042",
"merchantId": "MRC-20001",
"registerId": "REG-01",
"userId": "[email protected]",
"requestDateTime": "2026-01-15T12:00:00Z"
},
"accountNumber": "4111111111111234",
"transactionAmount": "100.00",
"paymentProgramType": "Regular"
}
Request Parameters
| Parameter | Required | Type | Pattern | Description |
|---|---|---|---|---|
X-GD-RequestId | Yes | String | Max: 50 | Unique transaction identifier generated by the retailer. Passed as HTTP header. |
requestDateTime | Yes | DateTime | YYYY-MM-DDTHH:MM:SSZ | UTC timestamp of the transaction. |
storeId | Yes | String | Max: 20 | Store number for the location where the transaction occurred. |
merchantId | Yes | String | Max: 20 | Unique merchant ID assigned by Green Dot. |
registerId | No | String | Max: 20 | Register identifier at the store. |
userId | No | String | Max: 50 | Unique ID of the user performing the transaction. |
accountNumber | Yes | String | 16-digit PAN | Card account number (PAN). |
transactionAmount | Yes | Decimal | e.g. 100.00 | Amount of cash to be deposited. Must be greater than zero. |
paymentProgramType | Yes | Enum | Regular, CheckCashing | Payment option selected by the customer. Use CheckCashing when the customer is paying with a check. |
Response
Successful Response
HTTP/1.1 200 OK
X-GD-ResponseId: b7c8d9e0-f1a2-3456-bcde-789012345abc
{
"requestId": "req-20260115-crd001",
"responseId": "b7c8d9e0-f1a2-3456-bcde-789012345abc",
"responseCode": 0,
"responseDescription": "Success",
"responseDateTime": "2026-01-15T12:00:07.9632687Z",
"reloadFee": "3.95",
"merchantFee": "2.00",
"maxAllowedAmount": "9500.00",
"minAllowedAmount": "20.00",
"availableBalance": "150.00",
"cardType": "Normal"
}
Error Response Example
HTTP/1.1 200 OK
X-GD-ResponseId: c8d9e0f1-a2b3-4567-cdef-890123456bcd
{
"requestId": "req-20260115-crd001",
"responseId": "c8d9e0f1-a2b3-4567-cdef-890123456bcd",
"responseCode": 110,
"responseDescription": "Account Not Found.",
"responseDateTime": "2026-01-15T12:00:08.8784305Z"
}
Response Parameters
| Parameter | Required | Type | Pattern | Description |
|---|---|---|---|---|
requestId | Yes | String | Max: 50 | Echo of the X-GD-RequestId from the request header. |
responseId | Yes | String | UUID | Unique response identifier generated by Green Dot. |
responseCode | Yes | Numeric | 0–1000 | Success/failure code. See Response Codes. |
responseDescription | Yes | String | Max: 255 | Human-readable description of the response code. |
responseDateTime | Yes | DateTime | YYYY-MM-DDTHH:mm:ss.fffffffZ | UTC timestamp of the response. |
reloadFee | Yes | Decimal | e.g. "3.95" | Fee charged to the customer for this transaction. Returned when all validations except load limits pass. |
merchantFee | Yes | Decimal | e.g. "2.00" | Fee credited to the merchant for this transaction. Returned when all validations except load limits pass. |
maxAllowedAmount | Yes | String | e.g. "9500.00" | Maximum amount allowed for this reload based on load limit rules. Returned when load limit check is applicable. |
minAllowedAmount | Yes | String | e.g. "20.00" | Minimum amount allowed for this reload based on load limit rules. Returned when load limit check is applicable. |
availableBalance | No | String | e.g. "150.00" | Available balance on the card's main account purse. Returned only for cards issued under the requesting partner's program. |
cardType | Yes | Enum | Normal, PointofBanking | Card type classification. Values: Normal, PointofBanking. Returned when validations pass. |
Response Codes
| Code | Code Text | Response Description | Explanation |
|---|---|---|---|
| 0 | Success | Success | Request processed successfully. |
| 100 | InvalidParameter | (See description) | Invalid parameter in the request. Examples: MerchantId not supplied, StoreId not supplied. |
| 110 | InvalidAccount | (See description) | Account not found, account status is not valid, or account is not reloadable for the current partner. |
| 130 | InvalidMerchant | Invalid Merchant | MerchantId not found or not enabled. |
| 600 | UnableToProcessRequest | — | Unable to process due to fee split not configured or downstream error. |
| 700 | LoadLimitValidationFailed | (See description) | Transaction amount does not pass load limit validation. |
| 800 | InvalidStore | Store was not found | Store not found, not associated with this partner, or does not support this operation. |
| 801 | StoreBlocked | The store is blocked | Store blocked by Green Dot store blocker rules. |
| 999 | RequestTimeout | Request Timeout | Request expired or no response received from downstream service. |
| 1000 | GeneralFailure | General Failure | Service failure. |
Reload
Deposits cash to a Green Dot or Green Dot Partner Card. Call Get Card Details first to validate the account and retrieve fee information before initiating this request.
Syntax:
POST {baseUrl}/card/reload
Request
POST {baseUrl}/card/reload
Authorization: Bearer {access_token}
Content-Type: application/json
X-GD-RequestId: req-20260115-rld001
{
"metadata": {
"storeId": "STORE-0042",
"merchantId": "MRC-20001",
"registerId": "REG-01",
"userId": "[email protected]",
"requestDateTime": "2026-01-15T12:00:00Z"
},
"accountNumber": "4111111111111234",
"transactionAmount": "100.00",
"paymentProgramType": "Regular",
"reloadType": "SwipeReload"
}
Request Parameters
| Parameter | Required | Type | Pattern | Description |
|---|---|---|---|---|
X-GD-RequestId | Yes | String | Max: 50 | Unique transaction identifier generated by the retailer. Passed as HTTP header. |
requestDateTime | Yes | DateTime | YYYY-MM-DDTHH:MM:SSZ | UTC timestamp of the transaction. |
storeId | Yes | String | Max: 20 | Store number for the location where the transaction occurred. |
merchantId | Yes | String | Max: 20 | Unique merchant ID assigned by Green Dot. |
registerId | No | String | Max: 20 | Register identifier at the store. |
userId | No | String | Max: 50 | Unique ID of the user performing the transaction. |
accountNumber | Yes | String | 16-digit PAN | Card account number (PAN). |
transactionAmount | Yes | Decimal | e.g. 100.00 | Amount of cash to be deposited. Must be greater than zero. |
paymentProgramType | Yes | Enum | Regular, CheckCashing | Payment option selected by the customer. Use CheckCashing when the customer is paying with a check. |
reloadType | No | Enum | SwipeReload, InitialLoad | Type of reload. InitialLoad does not apply to standard retail partners. Defaults to SwipeReload if not provided. |
Response
Successful Response
HTTP/1.1 200 OK
X-GD-ResponseId: d9e0f1a2-b3c4-5678-defa-901234567cde
{
"requestId": "req-20260115-rld001",
"responseId": "d9e0f1a2-b3c4-5678-defa-901234567cde",
"responseCode": 1,
"responseDescription": "SuccessFundingDelay",
"responseDateTime": "2026-01-15T12:00:10.2543261Z",
"pendingBalance": "1250.00",
"fundingDelaySeconds": "120",
"isGDN": false,
"receiptText": "Keep your receipt as proof of your reload. Check with your card provider for your updated account balance. Stores cannot provide refunds or exchanges."
}
Error Response Example
HTTP/1.1 200 OK
X-GD-ResponseId: e0f1a2b3-c4d5-6789-efab-012345678def
{
"requestId": "req-20260115-rld001",
"responseId": "e0f1a2b3-c4d5-6789-efab-012345678def",
"responseCode": 100,
"responseDescription": "User is not found.",
"responseDateTime": "2026-01-15T12:00:10.4826331Z"
}
Response Parameters
| Parameter | Required | Type | Pattern | Description |
|---|---|---|---|---|
requestId | Yes | String | Max: 50 | Echo of the X-GD-RequestId from the request header. |
responseId | Yes | String | UUID | Unique response identifier generated by Green Dot. |
responseCode | Yes | Numeric | 0–1000 | Success/failure code. See Response Codes. |
responseDescription | Yes | String | Max: 255 | Human-readable description of the response code. |
responseDateTime | Yes | DateTime | YYYY-MM-DDTHH:mm:ss.fffffffZ | UTC timestamp of the response. |
pendingBalance | Yes | String | e.g. "1250.00" | Sum of the transaction amount and card balance. Returned on successful response. Only available for cards issued under the requesting partner's program. |
fundingDelaySeconds | Yes | String | e.g. "120" | Length of the funding delay window in seconds. The transaction may be voided within this window. Note: actual fund availability may take up to 2 additional minutes due to backend processing. |
isGDN | No | Boolean | true / false | true if the reloaded card is a Green Dot Network (GDN) card. |
receiptText | No | String | Max: 255 | Receipt text to display or print for the customer. |
Response Codes
| Code | Code Text | Response Description | Explanation |
|---|---|---|---|
| 0 | Success | Success | Transaction processed successfully. |
| 1 | SuccessFundingDelay | SuccessFundingDelay | Transaction successful with a funding delay. Funds will be available after the delay window elapses. |
| 100 | InvalidParameter | (See description) | Invalid parameter in the request. Examples: AccountNumber required, MerchantId required. |
| 110 | InvalidAccount | (See description) | Account not found, status not valid, or account not reloadable for this partner. |
| 130 | InvalidMerchant | Invalid Merchant | MerchantId not found or not enabled. |
| 600 | UnableToProcessRequest | (See description) | Unable to process due to duplicate transaction detection or downstream error. Duplicate reloads are declined and the original transaction remains valid. |
| 700 | LoadLimitValidationFailed | (See description) | Per-transaction, account balance, or daily account reload limit reached. |
| 800 | InvalidStore | (See description) | Store not found, not associated with this partner, or does not support this operation. |
| 801 | StoreBlocked | The store is blocked | Store blocked by store blocker rules. |
| 842 | TransactionAlreadyVoided | Transaction was already voided | A void was received before the reload completed. Reload declined and marked as voided. |
| 999 | RequestTimeout | Request Timeout | Request expired or no downstream response received. |
| 1000 | GeneralFailure | GeneralFailure | Service failure. |
Point of Banking Payment
Deposits cash to any valid US debit card. Unlike the standard Reload endpoint, Point of Banking Payment supports cards outside the Green Dot program and requires additional customer identity fields for compliance purposes.
Syntax:
POST {baseUrl}/pointofbanking/payment
Request
POST {baseUrl}/pointofbanking/payment
Authorization: Bearer {access_token}
Content-Type: application/json
X-GD-RequestId: req-20260115-pob001
{
"metadata": {
"storeId": "STORE-0042",
"merchantId": "MRC-20001",
"registerId": "REG-01",
"userId": "[email protected]",
"requestDateTime": "2026-01-15T12:00:00Z"
},
"accountNumber": "4111111111111234",
"transactionAmount": "200.00",
"paymentProgramType": "Regular",
"customerFirstName": "Jane",
"customerLastName": "Smith",
"customerZipcode": "90210",
"cardExpirationDate": "2612"
}
Request Parameters
| Parameter | Required | Type | Pattern | Description |
|---|---|---|---|---|
X-GD-RequestId | Yes | String | Max: 50 | Unique transaction identifier generated by the retailer. Passed as HTTP header. |
requestDateTime | Yes | DateTime | YYYY-MM-DDTHH:MM:SSZ | UTC timestamp of the transaction. |
storeId | Yes | String | Max: 20 | Store number for the location where the transaction occurred. |
merchantId | Yes | String | Max: 20 | Unique merchant ID assigned by Green Dot. |
registerId | No | String | Max: 20 | Register identifier at the store. |
userId | No | String | Max: 50 | Unique ID of the user performing the transaction. |
accountNumber | Yes | String | 16-digit PAN | Card account number (PAN). |
transactionAmount | Yes | Decimal | e.g. 200.00 | Amount of cash to be deposited. Must be greater than zero. |
paymentProgramType | Yes | Enum | Regular, CheckCashing | Payment option selected by the customer. Use CheckCashing when the customer is paying with a check. |
customerFirstName | Yes | String | Max: 25 | Customer's first name. |
customerLastName | Yes | String | Max: 25 | Customer's last name. |
customerZipcode | Yes | String | Max: 5 | Customer's ZIP code. |
cardExpirationDate | Yes | String | yyMM | Card expiration date in yyMM format (e.g., 2612 for December 2026). |
Response
Successful Response
HTTP/1.1 200 OK
X-GD-ResponseId: f1a2b3c4-d5e6-7890-fabc-123456789e0f
{
"requestId": "req-20260115-pob001",
"responseId": "f1a2b3c4-d5e6-7890-fabc-123456789e0f",
"responseCode": 0,
"responseDescription": "Success",
"responseDateTime": "2026-01-15T12:00:10.2543261Z",
"externalReferenceID": "ref-00098765432",
"receiptText": "Keep your receipt as proof of your deposit. Check with your card provider for your updated account balance. Stores cannot provide refunds or exchanges."
}
Response Parameters
| Parameter | Required | Type | Pattern | Description |
|---|---|---|---|---|
requestId | Yes | String | Max: 50 | Echo of the X-GD-RequestId from the request header. |
responseId | Yes | String | UUID | Unique response identifier generated by Green Dot. |
responseCode | Yes | Numeric | 0–1000 | Success/failure code. See Response Codes. |
responseDescription | Yes | String | Max: 255 | Human-readable description of the response code. |
responseDateTime | Yes | DateTime | YYYY-MM-DDTHH:mm:ss.fffffffZ | UTC timestamp of the response. |
externalReferenceID | Yes | String | Max: 50 | External reference ID for the Point of Banking Payment. Returned on successful transactions. |
receiptText | No | String | Max: 255 | Receipt text to display or print for the customer. |
Response Codes
| Code | Code Text | Response Description | Explanation |
|---|---|---|---|
| 0 | Success | Success | Point of Banking Payment processed successfully. |
| 100 | InvalidParameter | (See description) | Invalid parameter in the request. Examples: AccountNumber required, MerchantId required. |
| 110 | InvalidAccount | (See description) | Account not found, status not valid, or account not reloadable for this partner. |
| 130 | InvalidMerchant | Invalid Merchant | MerchantId not found or not enabled. |
| 460 | OperationNotAllowed | (See description) | Operation is not permitted for this card or request type. |
| 600 | UnableToProcessRequest | (See description) | Unable to process due to duplicate transaction or downstream error. |
| 700 | LoadLimitValidationFailed | (See description) | Per-transaction, account balance, or daily reload limit reached. |
| 800 | InvalidStore | (See description) | Store not found, not associated with this partner, or does not support this operation. |
| 801 | StoreBlocked | The store is blocked | Store blocked by store blocker rules. |
| 842 | TransactionAlreadyVoided | Transaction was already voided | A void was received before the payment completed. |
| 999 | RequestTimeout | Request Timeout | Request expired or no downstream response received. |
| 1000 | GeneralFailure | GeneralFailure | Service failure. |
Updated 1 day ago
