Barcode / eCash APIs

Barcode / eCash API

This section covers endpoints for accepting cash payments at retail POS using a customer's barcode. Barcodes are scanned at the register and can be used to load funds onto a card account or to make a cash payment toward an eCommerce order, utility bill, loan, rent, or similar obligation.

The typical integration flow is:

  1. Get Barcode Details — Validate the barcode and retrieve fee and limit information before presenting the transaction to the customer.
  2. Barcode Payment — Commit the cash deposit or payment.

Note: Every request must include a unique X-GD-RequestId header value.


Get Barcode Details

Validates a cash deposit using a barcode prior to initiating the transaction. Returns fee, limit, and balance information to display to the customer before proceeding.

Syntax:

POST {baseUrl}/barcode/details

Request

POST {baseUrl}/barcode/details
Authorization: Bearer {access_token}
Content-Type: application/json
X-GD-RequestId: req-20260115-bcd001

{
  "metadata": {
    "storeId": "STORE-0042",
    "merchantId": "MRC-20001",
    "registerId": "REG-01",
    "userId": "[email protected]",
    "requestDateTime": "2026-01-15T12:00:00Z"
  },
  "barcode": "748291039485729301847562930148",
  "transactionAmount": "75.00",
  "paymentProgramType": "Regular"
}

Request Parameters

ParameterRequiredTypePatternDescription
X-GD-RequestIdYesStringMax: 50Unique transaction identifier generated by the retailer. Passed as HTTP header.
requestDateTimeYesDateTimeYYYY-MM-DDTHH:MM:SSZUTC timestamp of the transaction.
storeIdYesStringMax: 20Store number for the location where the transaction occurred.
merchantIdYesStringMax: 20Unique merchant ID assigned by Green Dot.
registerIdNoStringMax: 20Register identifier at the store.
userIdNoStringMax: 50Unique ID of the user performing the transaction.
barcodeYesStringMax: 30The customer's barcode. Accepts the full 30-digit barcode or the last 19 digits.
transactionAmountNoDecimale.g. 75.00Amount of cash to be deposited. Must be greater than zero if provided.
paymentProgramTypeYesEnumRegular, CheckCashingPayment 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: a2b3c4d5-e6f7-8901-abcd-ef0123456789

{
  "requestId": "req-20260115-bcd001",
  "responseId": "a2b3c4d5-e6f7-8901-abcd-ef0123456789",
  "responseCode": 0,
  "responseDescription": "Success",
  "responseDateTime": "2026-01-15T12:00:07.9632687Z",
  "reloadFee": "3.95",
  "merchantFee": "2.00",
  "availableBalance": "50.00",
  "maxAllowedAmount": "9500.00",
  "minAllowedAmount": "20.00",
  "fixedAllowedAmount": null
}

Response Parameters

ParameterRequiredTypePatternDescription
requestIdYesStringMax: 50Echo of the X-GD-RequestId from the request header.
responseIdYesStringUUIDUnique response identifier generated by Green Dot.
responseCodeYesNumeric0–1000Success/failure code. See Response Codes.
responseDescriptionYesStringMax: 255Human-readable description of the response code.
responseDateTimeYesDateTimeYYYY-MM-DDTHH:mm:ss.fffffffZUTC timestamp of the response.
reloadFeeYesDecimale.g. "3.95"Fee charged to the customer for this transaction. Returned when all validations except load limits pass.
merchantFeeYesDecimale.g. "2.00"Fee credited to the merchant for this transaction. Returned when all validations except load limits pass.
availableBalanceNoStringe.g. "150.00"Available balance on the account linked to the barcode. Returned only for accounts under the requesting partner's program.
maxAllowedAmountNoStringe.g. "9500.00"Maximum amount allowed based on load limit rules. Returned when load limit check is applicable.
minAllowedAmountNoStringe.g. "20.00"Minimum amount allowed based on load limit rules. Returned when load limit check is applicable.
fixedAllowedAmountNoDecimale.g. "20.00"If the barcode only supports a fixed transaction amount, this field returns that amount.

Response Codes

CodeCode TextResponse DescriptionExplanation
0SuccessSuccessRequest processed successfully.
100InvalidParameter(See description)Invalid parameter in the request. Examples: MerchantId not supplied, StoreId not supplied.
110InvalidAccount(See description)The account linked to the barcode is not found, status is not valid, or is not reloadable for this partner.
130InvalidMerchantInvalid MerchantMerchantId not found or not enabled.
140InvalidBarcode(See description)Barcode not found or barcode status is not valid. Possible statuses: Pending Consumption, Already Consumed, Declined, Voided, Expired.
600UnableToProcessRequestUnable to process due to fee split not configured or downstream error.
700LoadLimitValidationFailed(See description)Transaction amount does not pass load limit validation.
800InvalidStoreStore was not foundStore not found, not associated with this partner, or does not support this operation.
801StoreBlockedThe store is blockedStore blocked by Green Dot store blocker rules.
999RequestTimeoutRequest TimeoutRequest expired or no downstream response received.
1000GeneralFailureService failure.

Barcode Payment

Deposits cash to a Green Dot or Green Dot Partner Card account, or makes a cash payment toward an eCommerce order, utility bill, loan, rent, or similar obligation using a customer's barcode. Call Get Barcode Details first to validate the barcode and retrieve fee information before initiating this request.

Syntax:

POST {baseUrl}/barcode/payment

Request

POST {baseUrl}/barcode/payment
Authorization: Bearer {access_token}
Content-Type: application/json
X-GD-RequestId: req-20260115-bcp001

{
  "metadata": {
    "storeId": "STORE-0042",
    "merchantId": "MRC-20001",
    "registerId": "REG-01",
    "userId": "[email protected]",
    "requestDateTime": "2026-01-15T12:00:00Z"
  },
  "barcode": "748291039485729301847562930148",
  "transactionAmount": "75.00",
  "paymentProgramType": "Regular"
}

Request Parameters

ParameterRequiredTypePatternDescription
X-GD-RequestIdYesStringMax: 50Unique transaction identifier generated by the retailer. Passed as HTTP header.
requestDateTimeYesDateTimeYYYY-MM-DDTHH:MM:SSZUTC timestamp of the transaction.
storeIdYesStringMax: 20Store number for the location where the transaction occurred.
merchantIdYesStringMax: 20Unique merchant ID assigned by Green Dot.
registerIdNoStringMax: 20Register identifier at the store.
userIdNoStringMax: 50Unique ID of the user performing the transaction.
barcodeYesStringMax: 30The customer's barcode. Accepts the full 30-digit barcode or the last 19 digits.
transactionAmountYesDecimale.g. 75.00Amount of cash to be deposited. Must be greater than zero.
paymentProgramTypeYesEnumRegular, CheckCashingPayment 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: b3c4d5e6-f7a8-9012-bcde-f01234567890

{
  "requestId": "req-20260115-bcp001",
  "responseId": "b3c4d5e6-f7a8-9012-bcde-f01234567890",
  "responseCode": 1,
  "responseDescription": "SuccessFundingDelay",
  "responseDateTime": "2026-01-15T12:00:10.2543261Z",
  "pendingBalance": "825.00",
  "fundingDelaySeconds": "120",
  "receiptText": "Keep your receipt as proof of your payment. Check with your card provider for your updated account balance. Stores cannot provide refunds or exchanges."
}

Response Parameters

ParameterRequiredTypePatternDescription
requestIdYesStringMax: 50Echo of the X-GD-RequestId from the request header.
responseIdYesStringUUIDUnique response identifier generated by Green Dot.
responseCodeYesNumeric0–1000Success/failure code. See Response Codes.
responseDescriptionYesStringMax: 255Human-readable description of the response code.
responseDateTimeYesDateTimeYYYY-MM-DDTHH:mm:ss.fffffffZUTC timestamp of the response.
pendingBalanceNoStringe.g. "1250.00"Sum of the transaction amount and account balance. Returned on successful response for accounts under the requesting partner's program.
fundingDelaySecondsYesStringe.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.
receiptTextNoStringMax: 255Receipt text to display or print for the customer.

Response Codes

CodeCode TextResponse DescriptionExplanation
0SuccessSuccessTransaction processed successfully.
1SuccessFundingDelaySuccessFundingDelayTransaction successful with a funding delay.
100InvalidParameter(See description)Invalid parameter in the request.
110InvalidAccountNumber(See description)Account linked to the barcode not found, status not valid, or not reloadable for this partner.
130InvalidMerchantInvalidMerchantMerchantId not found or not enabled.
460OperationNotAllowed(See description)Operation is not permitted for this card or request type.
600UnableToProcessRequest(See description)Unable to process due to duplicate transaction or downstream error. Duplicate payments are declined; the original transaction remains valid.
700LoadLimitValidationFailed(See description)Per-transaction, account balance, or daily reload limit reached.
800InvalidStore(See description)Store not found, not associated with this partner, or does not support this operation.
801StoreBlockedThe store is blockedStore blocked by store blocker rules.
842TransactionAlreadyVoidedTransaction was already voidedA void was received before the payment completed. Payment declined and marked as voided.
999RequestTimeoutRequest TimeoutRequest expired or no downstream response received.
1000GeneralFailureGeneralFailureService failure.

Did this page help you?