About Adjustments

An adjustment is a transaction that modifies the balance in a customer account. In the Galileo Program API, you can make an adjustment that credits or debits your customer’s account using the Create Adjustment endpoint. Some adjustments are made systematically by Galileo. An adjustment can also be made by an external entity, for instance, 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 Reverse Fee endpoint instead.)
  • Non-card based account debit — Create adjustments to debit funds for transactions made without a card, 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.
  • Rewards and third-party integrations — 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

In the Galileo system, there are several differences between a payment made with the Create Payment endpoint and an adjustment made with the Create Adjustment 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. The Create Adjustment always ignores the account or card status because administrative activities may need to be performed on cancelled accounts or cards.
  • Hold days — The Create Payment endpoint accounts for pending hold days, which you can update with the Update Payment endpoint. The Create Adjustment endpoint does not account for hold days. Adjustments are immediately inserted into the account without significant delay.

📘

Note

See the Creating a Payment guide for more information about creating, reversing, and updating payments.

Reversing payments and adjustments

You can reverse a payment or an adjustment using the Create Adjustment endpoint. Galileo recommends reversing payments and adjustments in this manner because the type field in Create Adjustment is populated to match the original payment or adjustment type, and results in a true reversal of the funds.

  • To reverse an adjustment made with the Create Adjustment endpoint, send a Create Adjustment request to move funds in the opposite direction from the original adjustment (either debit or credit).
  • To reverse a payment made with the Create Payment endpoint, send a Create Adjustment request to debit the funds for the payment out of the account.

It is possible to reverse a payment with the Reverse Payment endpoint, and to reverse an adjustment with the Reverse Adjustment endpoint, but these methods are not preferred.

Summary of payments and adjustments

This table summarizes the differences between payment and adjustment endpoints.

Endpoint usageCreate PaymentReverse PaymentCreate AdjustmentReverse Adjustment
Moves funds into customer accountXXX
Moves funds out of customer accountXXX
Applies velocity limits to transactionsXX
Ignores account and card statusXX
Accounts for pending hold daysXX

Adjustment endpoints

This table summarizes adjustment endpoints in the Galileo system. The links in this table point to API reference documentation and to related sections in this guide.

EndpointSection in this guideDescription
Create AdjustmentCreate Adjustment endpointModifies the balance of a customer’s account, either credit or debit. This is the recommended method for reversing adjustments and payments.
Reverse AdjustmentReverse Adjustment endpointReverses an adjustment made with the Create Adjustment endpoint.
Get Account OverviewViewing adjustmentsRetrieves the combined response data from several endpoints, including Create Adjustment and Reverse Adjustment.
Get Transaction HistoryViewing adjustmentsRetrieves a list of transactions during a specified timespan, including transactions made with the Create Adjustment and Reverse Adjustment endpoints.
Get All Transaction HistoryViewing adjustmentsCombines the results of the Get Transaction History and Get Authorization History endpoints, showing everything that affects the account balance. This returns the same transactions as in the All Transactions screen of the CST.

📘

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 RDF as EXTERNAL TRANSACTION ID, and in the Events API webhook messages as ext_trans_id.

Create Adjustment endpoint

Use the Create Adjustment 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.

ParameterDescription
accountNoThe account number for the account to be adjusted.
amountThe 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.
typeYou determine valid values in cooperation with Galileo.
debitCreditIndicatorIndicates whether to credit or debit the account with the value in the amount field.
C — Credit
D — Debit

Reverse Adjustment endpoint

You can use the Reverse Adjustment endpoint to reverse an adjustment made with the Create Adjustment endpoint, however, for most adjustment reversals, Galileo recommends using the Create Adjustment endpoint instead. See Reversing payments and adjustments for more information.

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

ParameterDescription
accountNoThe account number that was passed through the original Create Adjustment call.
transactionIdThe transaction ID of the Create Adjustment call to be reversed.

Viewing adjustments

You can retrieve a record of adjustments and adjustment reversals using the Get Account Overview, Get Transaction History, and Get All Transaction History 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.

Adjustment workflows

The workflows in this section provide an overview of the process for creating and reversing adjustments.

Create adjustment workflow

This flowchart shows the logical progression of the Create Adjustment endpoint. The actual sequence of events in the Galileo system may vary.

901901
  1. You send the Create Adjustment 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, Galileo returns status: 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, Galileo returns status: 409-08.
  5. If debitCreditIndicator is set to C, Galileo moves funds into the account, returns status: 0 and sends the BADJ: adj event if it is configured.
  6. If debitCreditIndicator is set to D, Galileo checks whether there are sufficient funds in the account.
  7. If there are sufficient funds, Galileo moves funds out of the account, returns status: 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 Y 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: 0 and sends the BADJ: adj event.
  2. If the product does not allow a negative balance and overdraft withdrawals should not be attempted, Galileo returns status: 409-07.
  3. Galileo verifies that the product is configured for overdraft. If not, Galileo returns status: 409-03.
  4. Galileo verifies that the account holder is participating in overdraft. If not, Galileo returns status: 409-02.
  5. Galileo verifies that the overdraft account has sufficient funds to cover the adjustment. If not, Galileo returns status: 409-04.
  6. Galileo verifies that the overdraft account is configured for adjustments. If not, Galileo returns status: 409-06.
  7. Galileo verifies that funds from the overdraft account were transferred successfully. If not, Galileo returns status: 409-05.
  8. Galileo sends response status: 0 and creates the adjustment by crediting or debiting the account.
  9. Galileo sends Transaction Events webhook BADJ: adj.

Reverse adjustment workflow

This flowchart shows the logical progression of the Reverse Adjustment endpoint. The actual sequence of events in the Galileo system may vary.

441441
  1. You send the Reverse Adjustment request.
  2. Galileo performs preliminary checks. Failures return the status codes shown in the diagram. Consult Reverse Adjustment status codes in this guide for next steps.
  3. Galileo verifies that the amount to be reversed matches the original transaction amount. If not, Galileo returns status: 447-01.
  4. Galileo sends response status: 0 and reverses the adjustment by crediting or debiting the account.
  5. Galileo sends Transaction Events webhook BADJ: adj.

Events API webhook for adjustments

When an adjustment is made for an account balance (either credit or debit), the BADJ: adj event message is triggered if it is configured. There are several endpoints that trigger this event:

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 CST
  • Adjustments made by internal processes
  • Inbound merchant credit
  • Fees and reimbursements
  • Withdrawals from an overdraft account
  • Authorization reversals
  • ACH returns
  • Outbound ACH credit
  • Bill pay transactions

Status codes

The tables in this section list status codes returned by adjustment endpoints.

Create Adjustment status codes

This table describes status codes returned by the Create Adjustment endpoint and any next steps to take.

Status codeDescriptionNext step
0SuccessNone
2Your API call contained one or more values that were not valid for the parameter.Retry with valid values.
12The value in accountNo is not a valid account number.Retry with a valid account number.
24This API call was already submitted and successfully completed. The transaction IDs were identical.None. Duplicate API calls have no effect on the Galileo system.
25The value in type is not a valid type.Retry with a valid type.
53Funds cannot be loaded to account.Check for a canceled or blocked account status.
100The value in verifyOnly was 1 and all parameter values passed verification.None
409-01The transactionId parameter is not an integer value.Retry with a valid transactionId.
409-02An overdraft adjustment was attempted but the account holder is not participating in overdraft.Follow your business plan for this event.
409-03An overdraft adjustment was attempted but the product for the account is not configured for overdraft. This could mean that:
  • ODPID is not set
  • ODISE is not set and the account holder is not participating in overdraft
  • The PRN for the overdraft account does not exist
  • Follow your business plan for this event.
    409-04The overdraft account has insufficient funds to cover the negative adjustment.Follow your business plan for this event.
    409-05Overdraft funds did not successfully transfer.Retry the adjustment.
    409-06Account holder overdraft configuration error.Check the customer’s overdraft configuration.
    409-07The account balance contains insufficient funds for the adjustment and the following conditions are met:
  • There is no corporate finance tree to handle insufficient funds.
  • The product is not configured for overdraft.
  • ALWNB is not set to 1 to allow the account balance to be driven negative.
  • Follow your business plan for this event.
    409-08The transactionId parameter exceeds 23 characters.Retry with a valid transactionId.
    -1Indicates that the application record failed to update or return.Consult the response to see which steps to take.

    Reverse Adjustment status codes

    This section describes status codes returned by the Reverse Adjustment endpoint and any next steps to take.

    Status codeDescriptionNext step
    0SuccessNone
    2Your API call contained one or more values that were not valid for the parameter.Retry with valid values.
    12The value in accountNo is not a valid account number.Retry with a valid account number.
    24This API call was already submitted and successfully completed. The transaction IDs were identical.None. Duplicate API calls have no effect on the Galileo system.
    32Account and transaction details do not match.Verify that the accountNo is correct.
    100The value in verifyOnly was 1 and all parameter values passed verification.None
    447-01Adjustment amount to be reversed does not match the original transaction amount.Verify that the transactionId is correct and retry.
    -1Indicates that the application record failed to update or return.Consult the response to see which steps to take.

    Using the CST for adjustments

    You can use the 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 AdjustmentAccount > Finance BarCreate an adjustment for the account. Enter a positive amount to credit the account and a negative amount to debit the account.
    Account DetailsAccount > Account InfoView all transactions for the account, including adjustments.
    All TransactionsAccount > Account InfoView details and totals for all transactions within a specified time period, including adjustments.
    Adjustment HistoryAccount > Account InfoView the entire history of adjustments made for the account.

    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. In contrast, when this parameter is set at the product level, it permits the account to be driven negative by the Create Account Transfer endpoint.