Quick answer

How to do an SAP credit limit mass update

PostNow.ai does an SAP credit limit mass update on ECC by replaying a recording of FD32 for each Excel row: customer, credit control area, the new credit limit and, if your review sets them, risk category and next review date. With PostNow.ai Mass Change you first download the current values from table KNKK into the sheet, edit the limits in Excel, and post only the rows you changed, after a review screen lists the old and new value of every change. A recording is the route because SAP ships no BAPI that writes classic credit limits, and SAP's own credit mass change (F.34) resets review dates, not limits. On S/4HANA, FD32 is gone: the limit sits in a credit segment of the business partner (role UKM000, transaction UKM_BP), SAP's mass change UKM_MASS_UPD3 recalculates limits by rule, and the released interface for explicit values is the Credit Management Master Data OData API.

  • The key is customer plus credit control area, not company code. One credit control area can serve several company codes, and its limit covers all of them.
  • Saving a lower limit blocks nothing by itself. The next credit check on an order, delivery or goods issue does. Put current exposure next to every reduction before you run the file.

This page covers credit limits only: the classic FD32 data in ECC and the credit segment data of SAP Credit Management in S/4HANA. The customer records the limits hang on are covered in customer master upload (XD01), and what a credit block means for an uploaded order is in VA01 mass upload. For choosing a method across all SAP objects, see SAP mass upload from Excel.

How PostNow.ai mass-updates credit limits in FD32

PostNow.ai treats an FD32 change as a recorded-transaction template with a Mass Change binding: a designer builds it once against your ECC system and publishes it, and the credit team runs each review cycle through it under their own SAP login.

1. Record FD32 once

Press Record, enter one customer and credit control area on the FD32 initial screen, select the Status view, change the credit limit (and the risk category or next internal review date, if your review sets them) and save. PostNow.ai records through SHDB and replays with CALL TRANSACTION, so FD32's own field checks run on every row. Recording mode needs PostNow.ai's ZPOSTNOW_* objects in the SAP system, installed once per system. How to record so a recording replays is in the BDC recording guide.

2. Map the columns and lock what should not vary

Customer and credit control area go to RF02L-KUNNR and RF02L-KKBER on the first screen; the new limit goes to KNKK-KLIMK and the risk category to KNKK-CTLPC on the Status screen. Give the credit control area and the risk category a value list and switch on Restrict, so Validate refuses an area your team does not own or a risk category that does not exist. Set the date format on the review-date column.

3. Bind Mass Change to KNKK

In the Mass Change designer, bind the template columns to KNKK: customer and credit control area as keys, limit and risk category as download columns. Criteria such as credit control area, risk category or credit representative group decide which customers come down. Max Rows starts at 100, and PostNow.ai asks for confirmation above 500. Publish the template; operators then fill in criteria values only and cannot change the binding.

4. Download, edit, review

Download from SAP writes the current values into the sheet and keeps a hidden copy of what came down. The credit team edits limits in Excel. Review changes shows "N changed of M rows" with the old and new value of each changed column, and Update changed rows posts those rows and no others. A value retyped as 250000 where SAP had 250000.00 does not count as a change.

5. Debug, Simulate, approve, run

Debug replays a row in SAP GUI in the foreground, so you see each FD32 screen. Simulate on a recording without a Simulate OK-code runs the screens with the save removed; PostNow.ai's full-check Simulate codes cover FI posting transactions such as FB50; on FD32, Simulate proves the screens and field checks, and Run, or Debug on a test client, proves the save. If an approval policy covers the template, the post waits until someone other than the submitter approves exactly these changed rows.

6. Read the Run Log, retry what failed

Each row gets SAP's message in the Run Log. Retry Failed re-posts only rows whose Run Log starts with ERROR, scanning from the Start Row down. Every row's outcome also goes to PostNow.ai's central audit with template, SAP system, client and SAP user.

Check: after the first five rows, open two customers in FD33 and compare credit limit, risk category and currency with the sheet before you post the rest.

Unlike the free SAP upload templates, the credit limit template is built in your own system, because the recording is specific to your FD32 screens. The general Mass Change pattern (download, edit, post changed rows) is explained in SAP mass change.

Which BAPIs and SAP tools change credit limits: ECC vs S/4HANA

PostNow.ai uses an FD32 recording on ECC because SAP releases no BAPI for this job; on S/4HANA it reads and reviews credit data, and posting goes through one of SAP's own routes. This is what SAP offers for a credit limit mass update, release by release:

RouteReleaseWhat it changesUse it when
PostNow.ai: FD32 recording with Mass ChangeECCAny field on the FD32 screens you recorded, one row per customer and credit control areaA review file with explicit new limits; the route this page builds
PostNow.ai: SAP Query on the credit segment tablesS/4HANARead-only: it reads current credit segment limits into Excel for the reviewPreparing and signing off an S/4HANA review before one of the S/4HANA routes below posts it
F.34 (Credit Management - Mass Change)ECCSAP Help documents the credit mass change for moving the next review date for a group of customers; practitioners report the limit itself is not offeredOverdue review dates are blocking postings; not for new limit values
XD99 / MASS mass maintenanceECCKNKK-KLIMK is not available for change in XD99 (KBA 2637811)Not for limits
Function module CREDITLIMIT_CHANGEECCKNKA and KNKK, controlled by flags UPD_KNKA / UPD_KNKK, as practitioners describe itOnly after SE37 shows it remote-enabled in your system; it is not a BAPI
UKM_BPS/4HANAOne business partner's credit profile and credit segments, by handSingle changes
UKM_MASS_UPD3 (Mass Changes › Credit Limit)S/4HANARe-evaluates the rule for scoring and credit limit calculation for the selected partners; test run, simulation or update runLimits that follow a formula, not a list of values
OData API Credit Management Master Data (API_CRDTMBUSINESSPARTNER)S/4HANA Cloud (SAP_COM_0740); on-premise from 2022Entity CreditManagementAccount per partner and credit segment, including CreditLimitAmount and CreditLimitValidityEndDateExplicit values from another system, usually set up by your integration team
SOAP service interfaces of SAP Credit Management, such as CreditManagementAccountChangeNotification_In and the CreditLimitChangeRequestERP servicesS/4HANAChange credit account data, or create and change credit limit requests that go through approvalSystem-to-system integration set up by your integration team
Migration Cockpit object "Customer - extend existing record by credit management data"S/4HANAAdds credit management data to customers that already existA migration project's one-off load
Recording of UKM_BPS/4HANASAP states that batch input in transaction BP is not supported (KBA 1951318); the business partner dialog runs on BDTDo not build on it

Why not a BAPI? On ECC no BAPI writes KNKK, and SAP's mass tools stop short of the limit itself, which is why a recorded FD32 is the standard answer. On S/4HANA there is no BAPI for credit segment data either; projects that load it by program wrap function module UKM_DB_UKMBP_CMS_EXECUTE in their own code. The general trade-off is in BAPI vs BDC in SAP.

Credit control area, not company code: what FD32 is keyed on

In ECC a credit limit belongs to a customer in a credit control area (table KNKK). A credit control area can monitor customers across several company codes, and each company code belongs to exactly one area, so PostNow.ai's template keys every row on customer plus credit control area.

SAP credit management uses the credit control area rather than the company code as its key: one limit per customer per credit control area, and one area may span several company codes
One limit per customer and credit control area. A file built with one row per company code has the wrong key.
Field in the credit fileTable-fieldFD32 viewWhat it does
Credit limitKNKK-KLIMKStatusThe value the credit check compares exposure with
Risk categoryKNKK-CTLPC (check table T691A)StatusSelects which automatic credit checks run (OVA8)
Credit representative groupKNKK-SBGRP (T024B)StatusCarried into orders; used to select blocked documents for release
Customer credit groupKNKK-GRUPP (T691B)StatusGrouping for reports and release lists
Next internal reviewKNKK-NXTRVStatusThe date F.34 resets
Total credit limit / individual limitKNKA-KLIMG / KNKA-KLIMECentral dataCeiling across all areas, and the most any one area may get
  • Ask for the area map first. Which credit control areas exist and which company codes feed each one decides the row count. A customer trading through three company codes in one area has one limit, not three.
  • Central data can cap the area limit. If a customer carries a total or individual limit in central data, an area limit above it is refused; practitioners raise the central limit first. Record central data too, or run it as a separate template.
  • Amounts are in the area's currency. SAP manages the credit limit in a credit currency set per credit control area, not in the company code currency. A file column labelled "EUR" against a USD area is a wrong limit, not an error.
  • Sales orders find the area by derivation. SAP Help lists the sequence: user exit, distribution channel (sales area assignment), customer master, then the company code of the sales organisation. Load the limit in the area your orders actually derive.

What a lower credit limit does to open orders

PostNow.ai changes the limit through FD32, and saving a lower limit there is a master data change, so no order is blocked at that moment. The block comes from the next credit check that runs on a document, so a reduction lands on the order book over the following days, in whatever order documents get checked.

  • What counts as exposure. Open orders, open deliveries, billing documents not yet passed to accounting, open items in receivables and special liabilities. KNKK carries receivables (SKFOR), special liabilities (SSOBL) and a sales value (SAUFT); FD33's Status view shows the total the check uses.
  • When the check runs. OVA8 sets the checks per credit control area, risk category and credit group, and the credit groups decide whether orders, deliveries or goods issue are checked. A new order for a customer now over the limit is saved and blocked, not rejected.
  • Orders released earlier. They keep their release until something checks them again: a change to the order, a delivery or goods issue check, or a re-check job such as RVKRED09, which SAP describes as re-checking released documents once their release validity has expired.
  • Where the blocks land. Blocked documents carry credit status B and wait in the release lists, in ECC usually VKM1. Each one is work for someone in credit control.

Put the exposure in the sheet. PostNow.ai's Report Library has Credit Management 360 (SD-05), which brings total limit, area limit, receivables, special liabilities, risk category and next review date per customer and credit control area into Excel; operators can run it under their own SAP login. It reads KNKA and KNKK, so it has no open order or delivery values. Run it next to the Mass Change download, look up receivables per row, and flag every new limit that is below what the customer already owes.

⚠
An annual review is the classic case. Hundreds of limits change on one day, most of them up. The raises are invisible; the cuts surface as blocked deliveries the same week. Send the list of reductions that fall below current exposure to credit control before the run, and let them decide whether to phase them.

Worked example: annual review for credit control area 1000

PostNow.ai handles this with one published FD32 template with a Mass Change binding, run by a credit analyst. Credit control area 1000 serves company codes 1010 and 1020 and holds limits in USD. The review covers every customer in risk categories 001 and 002.

  1. Download. The analyst enters credit control area 1000 and the two risk categories as criteria, raises Max Rows to 400. 312 customers come down with their current limit and risk category.
  2. Add the exposure. SD-05 for the same area goes into a second sheet. An XLOOKUP on customer and area puts receivables and special liabilities next to each row.
  3. Edit. The analyst raises 41 limits and lowers 9. Customer 200371 goes from 150,000.00 to 90,000.00 against receivables of 112,400.00. Customer 200388 moves to risk category 003. Two of the other lowered limits are also below receivables.
  4. Decide the cuts. Credit control phases 200371: 120,000.00 now, 90,000.00 next quarter. The other two stand, and their account managers are told.
  5. Review and approve. Review changes shows "50 changed of 312 rows", each with old and new limit. The template has an approval policy, so the credit manager approves these 50 rows in the portal; the analyst cannot approve their own run.
  6. Pilot, then post. Debug replays 200371 so the analyst sees the Status screen take 120,000.00. Update changed rows posts the 50. One row ends in ERROR: a colleague had customer 200402 open in FD32, and SAP's lock message is in the Run Log. After they close it, Retry Failed posts that row.
  7. Prove it. The Change Documents report (G-01) filtered on object class KLIM and today's date lists 50 changes to KLIMK and one to CTLPC, with old value, new value and user.
⚠
Keep the download. The downloaded values, and SAP's change documents, are how you put a limit back: edit the cell to the old value and post that row again.

Checklist before an SAP credit limit mass update

PostNow.ai enforces formats and allow-lists in the template; this list covers the business decisions credit control makes before the run.

  • You know which credit control areas exist, which company codes feed them and which currency each area uses.
  • The file has one row per customer and credit control area, and its amounts are in the area's currency.
  • Central total and individual limits are high enough for the new area limits, or a central-data run goes first.
  • Every reduction has been compared with receivables and special liabilities, and credit control has signed off the ones below exposure.
  • Risk category changes have been checked against OVA8: a new category can switch on checks the customer never had.
  • The Mass Change download is from today, so nobody's FD32 change since then gets overwritten.
  • Two rows have been replayed in Debug in a quality client and checked in FD33.
  • An approver is named for the template, and someone owns the blocked orders the cuts will produce.

Credit limit upload errors and what they mean

PostNow.ai writes SAP's message into the Run Log of each row; these are the problems a first credit limit mass update most often meets.

What you seeWhat it usually meansFix
An authorisation message when FD32 opens the areaThe user lacks F_KNKA_KKB (credit control area) or F_KNKA_MAN; field groups under F_KNKA_AEN can also protect single fieldsAsk security for the area; PostNow.ai runs under the operator's own SAP authorisations
Dump DYNPRO_FIELD_CONVERSION in SAPMF02CThe documented FD32/FD33 dump (KBA 2647311); in a batch run, a value that does not fit the screen field is the first suspectReplay the row in Debug and check the amount as it lands in the Credit limit field
The limit field cannot be changed in XD99By design: KNKK-KLIMK is not offered there (KBA 2637811)Use the FD32 recording
F.34 runs but limits are unchangedF.34 is documented for moving the next review date, not for setting limitsUse the FD32 recording for limits, F.34 for review dates
A UKM_BP recording behaves differently in replayBatch input in the BP dialog is not supported (KBA 1951318)Use a released interface on S/4HANA, see below
UKM_MASS_UPD3 leaves a limit unchanged, or changes it to a calculated valueIt re-evaluates the credit limit rule; it does not read values from a fileRun the test or simulation run first; for explicit values use the API
PostNow.ai: "No rows in the Run Log column (A) are marked ERROR"Retry Failed found nothing to re-post from the current Start Row downSet Start Row back to 2 after a pilot

For a failed row, AI Review in the run diagnostics explains SAP's messages in plain language. By default it receives the messages, the transaction and the field structure, never the cell values.

Audit and approval of credit limit changes

PostNow.ai puts the control before the change: with an approval policy on the template, Run is blocked until someone other than the submitter approves, and the approval is tied to a fingerprint of the exact data, so an edited sheet needs a new one. A Mass Change post is gated the same way, scoped to the changed rows. Plan for portal availability: if the portal cannot be reached, the approval check lets the run through.

  • PostNow.ai's record. The Run Log line per row, and the central audit with template, SAP system, client, SAP user, result and message for every row.
  • SAP's record on ECC. FD32 changes write change documents under object class KLIM in CDHDR/CDPOS, with field KLIMK, old and new value. SAP's report RFDKLIAB displays credit master changes across accounts; PostNow.ai's Change Documents report (G-01) puts the same tables into Excel, filtered by object class, user or date.
  • Authorisations. F_KNKA_KKB limits users to credit control areas. On S/4HANA, SAP Credit Management controls access per credit segment with F_UKM_SGMT, with activities such as change (02) and display change documents (08).

How approvals, roles and the template library work for a whole team is covered in Excel to SAP automation.

SAP credit limit mass update in S/4HANA: UKM_BP and credit segments

On S/4HANA, PostNow.ai pulls current credit segment limits into Excel and builds the review there, and the post goes through one of SAP's own routes. Classic credit management (FI-AR-CR) is replaced by SAP Credit Management (FIN-FSCM-CR), so FD32 and its recording are gone. The data model changes too:

  • Business partner, role UKM000. Credit data is an enhancement of the business partner in role SAP Credit Management (UKM000), maintained in UKM_BP: the Credit Profile tab holds the rule for scoring and credit limit calculation, the check rule and the risk class; the credit limit sits in the credit segment data.
  • Credit segment instead of credit control area. Customizing assigns each credit control area to a credit segment, and the main credit segment can add up the exposure of the others. A converted file keys on business partner and credit segment.
  • Limits can be calculated. The rule can derive the limit from a formula. SAP's base licence covers limits set by hand; automatic calculation needs an additional licence. If your system calculates limits, a file of fixed values works against the rule.
  • Mass tools. UKM_MASS_UPD5 assigns role UKM000, UKM_MASS_UPD2 recalculates the score and UKM_MASS_UPD3 re-evaluates limits for the selected partners, optionally creating missing credit segments. The Fiori job "Update Credit Limit for Business Partners" does the same from the Schedule Credit Management Jobs app.

What PostNow.ai does for an S/4HANA credit review

  1. Read the current limits. A designer builds an SAP Query on the credit tables (UKMBP_CMS for the credit profile, UKMBP_CMS_SGM for credit segment data) joined to the business partner, and saves it for the team. The credit analysts run it from My Reports or Team Reports under their own SAP login; they don't build queries. The Credit Management 360 report (SD-05) reads the classic tables KNKA/KNKK, so on S/4HANA the query on the UKM tables is the source of record.
  2. Build the review in Excel. One row per business partner and credit segment, current limit next to the proposed one, every cut flagged, and the agreed list signed off by credit control before anything posts. Check each cut against the partner's exposure in UKM_BP or your credit exposure report, as in the ECC worked example above.
  3. Post through the route your system supports. Rule-based limits go through UKM_MASS_UPD3 (run the simulation first). Explicit values go through SAP's Credit Management Master Data OData API, where a PATCH on CreditManagementAccount for one partner and segment changes CreditLimitAmount, usually built by your integration team.

A BAPI-mode route. PostNow.ai's BAPI mode can call a remote-enabled function module in your system. SAP releases none for credit segment data, so this route means a custom Z wrapper your team writes and keeps working through every upgrade. Weigh that against the OData API before you build it.

If the limits are part of a conversion or a first load, the Migration Cockpit object for credit management data is the planned route; see SAP Migration Cockpit.

What to plan for in a credit limit upload

PostNow.ai posts credit limits through FD32's own screens, so SAP's own credit rules apply to every row.

  • Compare each cut with exposure in the sheet. Put the SD-05 lookup next to every new limit, so each reduction is checked against exposure before the run.
  • Download fresh before you edit. Mass Change compares your sheet with its own download. A limit someone changed in FD32 after your download is overwritten by your row if you changed that row, so download again just before the review.
  • Prove the save with Run or Debug. On FD32, Simulate checks screens and fields; Run, or Debug on a test client, proves the save.
  • Use a single-record or flat-row template. Mass Change works with both, and a designer builds the binding.
  • Restore limits from the download. Stop cancels the rows not yet sent; to put a changed limit back, post its old value from the download.
  • Plan the run with the analyst. Recorded runs start from the user's own SAP login on their own computer, when the user starts them.
  • On S/4HANA, post through SAP's route. PostNow.ai reads S/4HANA credit segment data and builds the review; the post goes through UKM_MASS_UPD3, the Credit Management Master Data API via your integration team, or a custom function module.

Frequently asked questions

How do I mass update credit limits in SAP?
On ECC, PostNow.ai replays a recording of FD32 for each Excel row: customer, credit control area and new limit, plus risk category or review date if you need them. With Mass Change you download the current KNKK values, edit them in Excel, review old against new value, and post only the changed rows, with an approval step if a policy covers the template. On S/4HANA the limit lives in the business partner's credit segment, and SAP's routes are UKM_MASS_UPD3 for rule-based limits and the Credit Management Master Data OData API for explicit values.
Is there a BAPI to change credit limits in FD32?
No released BAPI writes the classic credit master tables KNKA and KNKK. Practitioners use function module CREDITLIMIT_CHANGE, which is not a BAPI; check in SE37 whether it is remote-enabled in your system before anything calls it over RFC. The usual standard route is a recording of FD32.
Can I change credit limits with XD99 or MASS?
Not the limit itself. SAP KBA 2637811 records that field KNKK-KLIMK is not available for change in XD99 mass maintenance. Use an FD32 recording for the limit values.
What does F.34 credit management mass change do?
F.34 is the classic Credit Management mass change. SAP Help documents it for moving the next review date for a group of customers, so postings are not blocked once that date has passed. Practitioners report that it does not offer the credit limit itself, so new limits need an FD32 recording.
How do I mass update credit limits in S/4HANA?
UKM_MASS_UPD3 re-evaluates the credit limit rule for selected business partners, with a test run and a simulation run before the update. It does not read a list of values. For explicit limits, SAP's released interface is the Credit Management Master Data OData API (API_CRDTMBUSINESSPARTNER), entity CreditManagementAccount, where a PATCH per business partner and credit segment changes CreditLimitAmount. A UKM_BP recording is not an option: SAP states in KBA 1951318 that batch input in transaction BP is not supported. For a first load during conversion, use the Migration Cockpit object for credit management data.
Can PostNow.ai update credit limits in S/4HANA?
PostNow.ai reads S/4HANA credit segment data into Excel through an SAP Query on the UKM tables, which a designer builds and the credit team runs, so the review and sign-off happen in one sheet. Post the agreed list with UKM_MASS_UPD3, SAP's Credit Management Master Data API through your integration team, or a custom remote-enabled function module that PostNow.ai's BAPI mode can call.
What happens to open orders when I lower a credit limit?
Nothing at the moment you save. The lower limit is used by the next credit check, which runs on new and changed orders and, depending on OVA8, on deliveries and goods issue. Orders over the limit are saved and blocked for release, not rejected, so compare each reduction with current exposure before you post it.
How do I see who changed a credit limit in SAP?
In ECC, FD32 changes are change documents under object class KLIM in CDHDR and CDPOS, and report RFDKLIAB displays them across accounts. PostNow.ai's Change Documents report (G-01) brings the same data into Excel, and its central audit records the template, SAP user and result for every row it posted.
Review first. Then change.

Run your next credit limit review from Excel

Download today's limits, edit the new values, review old against new, get approval, then post only the changed rows.

Start free trial
  • 14-day free trial
  • Works with ECC and S/4HANA
  • Your data stays in your systems