Package Sale APIs
Package Sale API
This section covers endpoints for selling new prepaid card packages and MoneyPak products at retail point of sale.
The typical integration flow is:
- Get Package Details — Validate the package barcode and confirm it is available for purchase before presenting the transaction to the customer.
- Package Sale — Commit the sale.
Note: Every request must include a unique
X-GD-RequestIdheader value.
Get Package Details
Validates the sale of a new card package or MoneyPak prior to initiating the transaction. Verifies that the externId scanned from the package barcode is available for purchase and returns applicable fees and limits.
Syntax:
POST {baseUrl}/package/details
Request
POST {baseUrl}/package/details
Authorization: Bearer {access_token}
Content-Type: application/json
X-GD-RequestId: req-20260115-pkd001
{
"metadata": {
"storeId": "STORE-0042",
"merchantId": "MRC-20001",
"requestDateTime": "2026-01-15T12:00:00Z"
},
"externId": "7392048156302",
"transactionAmount": "20.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. If not supplied, an InvalidParameter error is returned. |
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. |
externId | Yes | String | Max: 30 | The last 19 digits of the barcode on the package. |
transactionAmount | No | Decimal | e.g. 20.00 | Amount to be loaded. If provided, 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: c4d5e6f7-a8b9-0123-cdef-012345678901
{
"requestId": "req-20260115-pkd001",
"responseId": "c4d5e6f7-a8b9-0123-cdef-012345678901",
"responseCode": 0,
"responseDescription": "Success",
"responseDateTime": "2026-01-15T12:00:07.1411753Z"
}
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. |
Response Codes
| Code | Code Text | Response Description | Explanation |
|---|---|---|---|
| 0 | Success | Success | Package validated and available for purchase. |
| 100 | InvalidParameter | (See description) | Invalid parameter. Examples: StoreId required, MerchantId required. |
| 130 | InvalidMerchant | Invalid Merchant | MerchantId not found or not enabled. |
| 150 | InvalidPin | Invalid Pin | PIN not found or PIN status is not valid. |
| 600 | UnableToProcessRequest | Package Id not found | The externId on the package was not found. |
| 700 | LoadLimitValidationFailed | (See description) | Per-transaction reload limit reached. |
| 800 | InvalidStore | (See description) | Store not found, not associated with this partner, or does not support this operation. |
| 999 | RequestTimeout | Request Timeout | Request expired or no downstream response received. |
| 1000 | GeneralFailure | General Failure | Service failure. |
Package Sale
Sells a new card package or MoneyPak to a customer. Call Get Package Details first to confirm the package is available before initiating this request.
Syntax:
POST {baseUrl}/package/sale
Request
POST {baseUrl}/package/sale
Authorization: Bearer {access_token}
Content-Type: application/json
X-GD-RequestId: req-20260115-pks001
{
"metadata": {
"storeId": "STORE-0042",
"merchantId": "MRC-20001",
"registerId": "REG-01",
"userId": "[email protected]",
"requestDateTime": "2026-01-15T12:00:00Z"
},
"externId": "7392048156302",
"transactionAmount": 20.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. If not supplied, an InvalidParameter error is returned. |
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. |
externId | Yes | String | Max: 19 | The last 19 digits of the barcode on the package. |
transactionAmount | Yes | Decimal | e.g. 20.00 | Amount to be loaded. 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: d5e6f7a8-b9c0-1234-defa-123456789012
{
"requestId": "req-20260115-pks001",
"responseId": "d5e6f7a8-b9c0-1234-defa-123456789012",
"responseCode": 0,
"responseDescription": "Success",
"responseDateTime": "2026-01-15T12:00:07.1411753Z",
"fundingDelaySeconds": "60",
"receiptText": "Please wait 10 minutes to register your card online or by phone. You will need the temporary card number found on the card in your package. Keep this receipt for your records."
}
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. |
fundingDelaySeconds | No | 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. |
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 | Package sold successfully. |
| 100 | InvalidParameter | (See description) | Invalid parameter. Examples: StoreId required, MerchantId required. |
| 130 | InvalidMerchant | Invalid Merchant | MerchantId not found or not enabled. |
| 600 | UnableToProcessRequest | Package Id not found | The externId on the package was not found. |
| 700 | LoadLimitValidationFailed | (See description) | Per-transaction reload limit reached. |
| 800 | InvalidStore | (See description) | Store not found, not associated with this partner, or does not support this operation. |
| 999 | RequestTimeout | Request Timeout | Request expired or no downstream response received. |
| 1000 | GeneralFailure | General Failure | Service failure. |
Updated 1 day ago
Did this page help you?
