An adjustment is a transaction that modifies the balance in a customer account. In the Galileo Program API, you can manually make an adjustment that credits or debits your customer’s account using the <a href="ref:post_createadjustment" target="_blank">Create Adjustment</a> endpoint. Galileo's internal processes also can make adjustments, and an external entity might make an adjustment, such as when a financial institution makes an inbound debit request to move funds out of your customer’s account.

This guide provides an overview of adjustments and describes the endpoints and tools for creating, reversing, and viewing adjustments in the Galileo system.

## Adjustment use cases

These are some common use cases for adjustments.

  • **Fee reimbursement** — If your customer incurs a fee that should be reimbursed, you can create an adjustment that credits the fee amount to the customer’s account. For example, you can create an adjustment to reimburse an ATM withdrawal fee. (Depending on your setup, you can use the <a href="ref:post_reversefee" target="_blank">Reverse Fee</a> endpoint instead.)

  • **Non-card based account debit** — Adjustments debit funds for non-card transactions, such as bill pay, account to account, and outbound ACH transactions.

  • **Dispute resolution** — If your customer successfully disputes a transaction, you can create an adjustment to credit the funds for the dispute to your customer’s account. See <a href="doc:disputes-at-galileo#provisional-credit" target="_blank">Provisional credit</a> in the _Disputes at Galileo_ guide for more information.

  • **Rewards and third-party integrations** — You can create adjustments for regular transactions that are established at the program level that credit or debit external accounts based on daily aggregates (for example, loading a debit card or sending funds using a third-party acquiring service).

## Payments vs. adjustments

The Galileo system classifies transactions into one of four categories: authorization/settlement, payment, adjustment, and fee. (See <a href="doc:about-transactions#classifying-transactions" target="_blank">Classifying transactions</a> in the _About Transactions_ guide for more information.) These are the differences between a payment made with the <a href="ref:post_createpayment" target="_blank">Create Payment</a> endpoint and an adjustment made with the <a href="ref:post_createadjustment" target="_blank">Create Adjustment</a> endpoint.

  • **Direction of funds** — The Create Payment endpoint moves funds only into a customer’s account while the Create Adjustment endpoint moves funds either into or out of a customer’s account.

  • **Velocity limits** — The Create Payment endpoint applies velocity limits to transactions while Create Adjustment usually does not. Typically, the Create Adjustment endpoint is used to make administrative adjustments for an account balance, which may mean that velocity limits should not be applied.

  • **Account status** — The Create Payment endpoint takes account and card status into consideration when a payment is posted. Create Adjustment always ignores the account or card status because administrative activities may need to be performed on canceled accounts or cards.

  • **Hold days** — The Create Payment endpoint accounts for pending hold days, which you can update with the <a href="ref:post_updatepayment" target="_blank">Update Payment</a> endpoint. The Create Adjustment endpoint does not account for hold days. Adjustments are immediately inserted into the account without significant delay.

Note

See the <a href="doc:creating-a-payment">Creating a Payment</a> guide for more information about creating, reversing, and updating payments.

### Summary of payments and adjustments

This table summarizes the differences between payment and adjustment endpoints.

Endpoint usage<a href="ref:post_createpayment" target="_blank">Create Payment</a><a href="ref:post_createadjustment" target="_blank">Create Adjustment</a>
Moves funds into customer accountXX
Moves funds out of customer account
X
Applies velocity limits to transactionsX
Ignores account and card status
X
Accounts for pending hold daysX

## Create Adjustment endpoint

Use the <a href="ref:post_createadjustment" target="_blank">Create Adjustment</a> endpoint to modify the balance of a customer account. You can use this endpoint to either credit or debit the account.

This table describes parameters that are specific to the Create Adjustment endpoint.

ParameterDescriptionColumn Title
`accountNo`The account number for the account to be adjusted.
`amount`The amount to credit or debit, as a decimal or whole number. Do not use a negative number. Instead, indicate the direction of funds in the `debitCreditIndicator` field.
`type`Use one of the values that Galileo provides to you.
`debitCreditIndicator`Indicates whether to credit or debit the account by the value in `amount`:<li>`C` — Credit<li>`D` — Debit
`includeRtfTransfer`Valid only when performing an adjustment on an <<glossary:RTF>> spending account. Set to `0` to prevent the adjustment from affecting the corresponding RTF funding account.

Note

When initiating a transaction with the Program API, the `transactionId` from the API request is copied to the external transaction ID field of all transactions that result from the request. The external transaction ID is available in the responses to transaction-retrieval Program API requests as `external_trans_id`, in the Posted Transactions <<glossary:RDF>> as `EXTERNAL TRANSACTION ID`, and in the Events API webhook messages as `ext_trans_id`.

### Reversing an adjustment

Although the Program API has a Reverse Adjustment endpoint, Galileo recommends that you not use it to reverse adjustments, because of the way that endpoint handles transaction codes. If you use the Reverse Adjustment endpoint, the reversed transaction will not have a transaction code that indicates that it is a reversal of a previous transaction.

Instead, when you design your funds-flow schema with Galileo, make sure that you have an otype that designates the appropriate reversal. Using the <a href="ref:post_createadjustment" target="_blank">Create Adjustment</a> endpoint, reverse the original adjustment by passing the opposite direction for `debitCreditIndicator` and by using the corresponding reversal otype for `type`.

### Viewing adjustments

You can retrieve a record of adjustments and adjustment reversals using the <a href="ref:post_getaccountoverview" target="_blank">Get Account Overview</a>, <a href="ref:post_gettranshistory" target="_blank">Get Transaction History</a>, and <a href="ref:post_getalltranshistory" target="_blank">Get All Transaction History</a> endpoints. These endpoints return a comprehensive list of transactions, including adjustments.

Note

There is a delay of several seconds before an adjustment appears in a customer’s transaction history and account overview.

Consult <a href="page:finding-transaction-data" target="_blank">Finding Transaction Data</a> to see where else adjustments are visible.

## Create adjustment workflow

This flowchart shows the logical progression of the <a href="ref:post_createadjustment" target="_blank">Create Adjustment</a> endpoint. The actual sequence of events in the Galileo system may vary.



<!--createAdjustment_flowchart.png..-->

  1. You send the <a href="ref:post_createadjustment" target="_blank">Create Adjustment</a> request.

  2. Galileo performs preliminary checks. Failures return the status codes shown in the diagram. Consult [Create Adjustment status codes](🔗) in this guide for next steps.

  3. Galileo verifies that the transaction ID is an integer. If it is not, the endpoint returns `status_code: 409-01`. An integer is required so that if there is a later call to the Reverse Adjustment endpoint, the transaction ID is an exact match.

  4. Galileo verifies that the transaction ID is 23 characters or less. If it exceeds 23 characters, the endpoint returns `status_code: 409-08`.

  5. Galileo checks the `debitCreditIndicator`:

    • If `debitCreditIndicator` is set to `C`, Galileo moves funds into the account, returns `status_code: 0` and sends the <a href="ref:api-reference-events-api-adj" target="_blank">`BADJ: adj`</a> event if it is configured.

    • If `debitCreditIndicator` is set to `D`, Galileo checks whether there are sufficient funds in the account. If there are sufficient funds, Galileo moves funds out of the account, returns `status_code: 0` and sends the `BADJ: adj` event.

If there are not sufficient funds, Galileo performs the following checks:

  1. Galileo checks if the product is either configured to allow a negative balance (ALWNB is set to `1` at the _provider_ level) or if there is a corporate finance tree to handle insufficient funds. If either are true, Galileo moves funds out of the account, returns `status_code: 0` and sends the `BADJ: adj` event.

  2. If the product does not allow a negative balance and overdraft withdrawals should not be attempted, the endpoint returns `status_code: 409-07`.

  3. Galileo verifies that the product is configured for overdraft. If not, the endpoint returns `status_code: 409-03`.

  4. Galileo verifies that the account holder is participating in overdraft. If not, the endpoint returns `status_code: 409-02`.

  5. Galileo verifies that the overdraft account has sufficient funds to cover the adjustment. If not, the endpoint returns `status_code: 409-04`.

  6. Galileo verifies that the overdraft account is configured for adjustments. If not, the endpoint returns `status_code: 409-06`.

  7. Galileo verifies that funds from the overdraft account were transferred successfully. If not, the endpoint returns `status_code: 409-05`.

  8. The endpoint returns `status_code: 0` and creates the adjustment by crediting or debiting the account.

  9. Galileo sends Transaction Events webhook `BADJ: adj`.

## Events API webhook

When an adjustment is made for an account balance (either credit or debit), the <a href="ref:api-reference-events-api-adj" target="_blank">`BADJ: adj`</a> event message is triggered, if it is configured.

The `BADJ: adj` event is also triggered by internal and external processes that credit or debit an account. Depending on your configuration, this may include:

  • Adjustments made via <<glossary:CST>>

  • Adjustments made by internal processes

  • Inbound merchant credit

  • Fees and reimbursements

  • Withdrawals from an overdraft account

  • Authorization reversals

  • ACH returns

  • Outbound ACH credit

  • Billpay transactions

## Status codes

Consult the <a href="ref:post_createadjustment" target="_blank">Create Adjustment</a> endpoint for status codes and next steps.

## Using the CST for adjustments

You can use the <<glossary:CST>> to create and view adjustments for an account. The following are actions that you can take in the CST that will result in an adjustment.

  • Create an adjustment from the Insert Adjustments page.

  • Mark a return from the Payment History page.

  • Initiate or recover an account chargeoff from the Account Info page.

  • Process a dispute by issuing temporary credit, or by releasing or reversing a transaction from the Adjustment History page.

Note

Some CST controls may not be available for all users depending on your administrator’s Roles and Rights settings. A user must have permission to create and modify specific adjustment types and to set adjustment limits. No adjustments are allowed until an adjustment limit is set.

This table describes controls for creating and viewing adjustments in the CST.

CST controlLocationDescription
**Insert Adjustment**Account > Finance BarCreate an adjustment for the account. Enter a positive amount to credit the account and a negative amount to debit the account.
**Account Details**Account > Account InfoView all transactions for the account, including adjustments.
**All Transactions**Account > Account InfoView details and totals for all transactions within a specified time period, including adjustments.
**Adjustment History**Account > Account InfoView the entire history of adjustments made for the account.

Note

Although you must set the ALWNB parameter to allow the Program API to drive an account negative, this parameter does not apply to transactions initiated in the CST. Instead, adjustments in the CST can drive an account negative by default.

## Galileo setup

ParameterLevelDescription
ADJLMProductSpecifies the maximum amount for adjustments made through the CST.
ALWNBProviderControls whether a call to the Create Adjustment endpoint can drive an account balance negative. When this parameter is set at the **product** level, it permits the account to be driven negative by the <a href="ref:post_createaccounttransfer" target="_blank">Create Account Transfer</a> endpoint.