Adjustment

Adjustment APIs update a user’s balance instantaneously by crediting or debiting the account. They are also used to check the available balance on the account.

Adjustment API Endpoints

Debits/credits user account balances instantly and later settles with program funding account setup.

The following adjustment types must be specifically configured for a program code in order to be used by a partner.

  • Referral and Promotional credits: promo and promoReversal
  • Crediting or Debiting funds from an account: instructionCredit and instructionDebit
  • Receiving funds into the account for a disbursement: disbursement, disbursementReversal
  • Instant Debit card transfers: anyDebitOut, anyDebitOutReversal
  • ACH transactions: achOut, achOutReversal

If an adjustmentType has not been configured for a program code, then the request will be rejected. New adjustment types can also be setup to meet partner requirements.

If you have any further questions, please contact your Green Dot Product liaisons.

Headers

FieldRequired (Y/N)TypeDescription
X-GD-RequestIdYHeader (string)Request ID
programCodeYPath (string)Program code
accountIdentifierYPath (string)Identifier for the account

API Call Structure

/programs/{programCode}/accounts/{accountIdentifier}/adjustments

Request

Example Request Body

{
  "adjustmentIdentifier": "string",
  "amount": 0,
  "currency": "string",
  "adjustmentType": "string",
  "adjustmentDescription": "string",
  "fee": 0,
  "debitToNegative": true
}

Request Body Parameters

FieldTypeDescription
adjustmentIdentifierstringTransfer identifier
amountnumber ($double)Amount
currencystringCurrency
adjustmentTypestringAdjustment type
adjustmentDescriptionstringAdjustment description
feenumber ($double)Fee
debitToNegativebooleanDebit to negative

Response

Example Response Body

{
  "adjustmentStatus": "string",
  "adjustmentStatusReason": "string",
  "adjustmentIdentifier": "string",
  "responseDetails": [
    {
      "code": 0,
      "subCode": 0,
      "description": "string",
      "url": "string"
    }
  ]

Response Body Parameters

FieldTypeDescription
adjustmentStatusstringTransfer status
adjustmentStatusReasonstringTransfer status reason
adjustmentIdentifierstringAdjustment identifier
responseDetailscontainerContainer for response details
codeinteger ($int32)Code
subCodeinteger ($int32)Sub code
descriptionstringDescription
urlstringURL

HTTP Response Codes

CodeDescription
200Success
401Unauthorized
403Forbidden
500Server error
503Server error

Asynchronous API Call Option

There is also an asynchronous option for the Adjust Balance API, in which the follow prequisites must be met:

  • Partners must have a correctly configured Greendot PN (publish notification) subscription for the AdjustmentFinalStatus topic.
  • Partners must provide a valid webhook URL to receive the final adjustment result notifications via the AdjustmentFinalStatus PN.

You can call this API asynchronously by including the following header:

X-GD-CallMode: async

The API will then return an immediate response upon successful request submission, indicating that the adjustment request has been accepted for asynchronous processing.

Success Response

The API will return a new response code {code:0 subcode: 1000} with a unique identifier (adjustmentIdentifier) in the response body to track the asynchronous operation. There will be a subsequent delivery of the final result via the AdjustmentFinalStatus PN.

Maximum Retry Duration

Partners can specify the maximum retry duration for an adjustment request by including the X-GD-MaxRetryDuration:<duration> header in the request.

Behavior

If the X-GD-MaxRetryDuration header is present, its value will override the default maximum retry duration defined at the partner level for that specific request.

The <duration> value should be specified in ISO 8601 duration format (e.g., PT10M for 10 minutes, PT1H for 1 hour).

Impact

The maximum retry duration limits the total time allowed for retries on a failed adjustment request.

Checks the status of adjustments to BaaS account balances.

API Call Structure

/programs/{programCode}/accounts/{accountIdentifier}/adjustments/{adjustmentIdentifier}

Headers

FieldRequired (Y/N)TypeDescription
X-GD-RequestIdYHeader (string)Request ID
programCodeYPath (string)Program code
accountIdentifierYPath (string)Identifier for the account
adjustmentIdentifierYPath (string)Identifier for the adjustment

Response

Example Response Body

{
  "adjustmentIdentifier": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "amount": 0,
  "currency": "string",
  "adjustmentType": "string",
  "adjustmentDescription": "string",
  "fee": 0,
  "transactionDate": "string",
  "adjustmentStatus": "string",
  "adjustmentStatusReason": "string",
  "debitToNegative": true,
  "responseDetails": [
    {
      "code": 0,
      "subCode": 0,
      "description": "string",
      "url": "string"
    }
  ]
}

Response Parameters

FieldTypeDescription
adjustmentIdentifierstringTransfer identifier
amountnumber ($double)Amount
currencystringCurrency
adjustmentTypestringAdjustment type
adjustmentDescriptionstringAdjustment description
feenumber ($double)Fee
transactionDatestringDate of transaction
adjustmentStatusstringTransfer status
adjustmentStatusReasonstringTransfer status reason
debitToNegativebooleanDebit to negative
responseDetailscontainerContainer for response details
codeinteger($int32)Code
subCodeinteger($int32)Sub code
descriptionstringDescription
urlstringURL

HTTP Response Codes

CodeDescription
200Success
401Unauthorized
403Forbidden
500Server error
503Server error