Finance package

SAP vendor master change approval

A themed form requests a supplier bank change; SAP data is compared, finance reviews, the supplier is called back, treasury approves and SAP is updated.

Connects to SAP S/4HANA

OfficialStarts from a formAdvanced~35 min setupv1.0.0

About this package

What it does

SAP vendor master change approval protects one of the most attacked processes in accounts payable: changing where a supplier is paid. The requester fills in a themed start form with the supplier number, the new bank country, IBAN, SWIFT, account holder, effective date and the evidence reference.

The workflow reads the supplier, its company code data and its current bank details from SAP S/4HANA (API_BUSINESS_PARTNER: A_Supplier, A_SupplierCompany, A_BusinessPartnerBank), compares them with the request and evaluates the Bank change risk decision table: a different account holder or bank country is high risk and needs two call-backs.

Finance reviews the side-by-side comparison, an AP clerk calls the supplier on a number already on file and ticks off what was confirmed, and treasury gives the second, independent approval. Only then is the new bank detail created and the old one end-dated in SAP. Every step is written to the Vendor change audit log, and the requester is told when the change is live.

Starts from a form

Starts from its themed start form (Run in the app, or share the workflow start form) or from your supplier portal posting the same fields to the start API.

Someone fills in a form to start it: the workflow start form (Run dialog in the app, or your own portal posting to the API) or a standalone form page (/f/<id>) whose Form submitted trigger starts the workflow. People complete User Task forms along the way.

The flow

Step by step

  1. 1

    Request

    A themed start form collects the supplier, the new bank details, the effective date and the evidence.

  2. 2

    Compare with SAP

    A_Supplier, A_SupplierCompany and the business partner bank details are read and compared with the request.

  3. 3

    Risk

    The Bank change risk decision table sets the risk and how many call-backs are needed.

  4. 4

    Finance review

    Finance checks the evidence and the IBAN on a task form with Approve / Reject.

  5. 5

    Call-back

    An AP clerk calls the supplier on a known number and ticks the confirmations (Verified / Could not verify).

  6. 6

    Treasury approval

    Treasury gives the second approval; the new bank detail is created and the old one end-dated in SAP.

  7. 7

    Audit

    Each step is logged in the Vendor change audit log and the requester is emailed.

SAP vendor bank change — A requested supplier bank detail change is compared with SAP, reviewed by finance, verified by call-back, approved by treasury (four eyes) and written to SAP, with every step in the audit log. The same canvas you get in the designer after installing.

Forms

The start form and the task forms

The workflow inputs are the start form: the Run dialog renders them on its grid and theme, and your own portal can post the same fields. User Tasks show their fields and outcome buttons to the assignee.

Start form

SAP vendor bank change

Filled in by whoever starts the process

Your email * requester_email · emailname@company.comWho is asking: gets the confirmation
Supplier number * supplier · textSAP supplier / business partner number, e.g. 17300001
Company code * company_code · textCompany code the supplier is paid from
Bank country * new_bank_country · select
DENLFRGBUSAU+1
ISO country of the new bank account
New IBAN * new_iban · textIBAN of the new account (or account number where IBAN does not apply)
SWIFT / BIC new_swift · textBIC of the new bank
Bank key new_bank_key · textBank key / sort code, if your country needs it
Account holder * new_holder · textAccount holder name exactly as on the bank letter
Effective from * effective_date · dateYYYY-MM-DDFirst day payments go to the new account
Evidence * evidence_reference · textReference of the supplier letter / signed form (document id or link)
Reason reason · textWhy the supplier is changing bank

User Task

Finance review

Review bank change for {{supplier_name}} ({{supplier}}), risk {{risk}} · 2-column grid · own header and theme

Supplier letter / form checked against the request * evidence_checked · boolean
IBAN checksum and bank name validated * iban_valid · boolean
Open payments to hold until verified open_items · text
Review notes comment · textarea
ApproveReject

User Task

Call-back verification

Call {{supplier_name}} to verify the new bank details ({{change_ref}}) · 2-column grid · own header and theme

Phone number taken from * number_source · choice
SAP supplier masterPrevious invoiceSigned contractSupplier portal profile
Person spoken to * contact_name · text
Number called * phone_number · phone
Account holder confirmed * holder_confirmed · boolean
Last four IBAN digits confirmed * iban_confirmed · boolean
Second contact confirmed (high risk) second_contact · boolean
Call notes notes · textarea
VerifiedCould not verify

User Task

Treasury approval

Approve bank change for {{supplier_name}} ({{change_ref}}) · 2-column grid · own header and theme

I did not request or review this change * four_eyes · boolean
Comment comment · textarea
ApproveReject

From your code

Start a run over the API

Every workflow can be started over REST, MCP or the CLI, whatever its trigger, with the sample input below. Runs start straight away on the published version; replace <workflow id> with the id the install created.

REST

shell
curl -X POST "$USERTASKS_URL/api/v1/workflows/start" \
  -H "Authorization: Bearer $USERTASKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_id":"<workflow id>","variables":{"requester_email":"alex.morgan@example.com","supplier":"17300001","company_code":"1010","new_bank_country":"NL","new_iban":"NL91 ABNA 0417 1643 00","new_swift":"ABNANL2AXXX","new_holder":"Northwind Industrial Supply GmbH","effective_date":"2026-11-05","evidence_reference":"DOC-2026-10-4471 (signed bank letter)","reason":"Supplier moved its operating account to its Dutch subsidiary bank"}}'

CLI

shell
usertasks workflows inputs <workflow id>          # the start form: keys, types, required
usertasks workflows run <workflow id> --input requester_email=alex.morgan@example.com --input supplier=17300001 --input company_code=1010 --input new_bank_country=NL … --wait

Inbound webhook

shell
usertasks webhooks create <workflow id>          # prints the hook slug and secret once
curl -X POST "$USERTASKS_URL/api/webhooks/inbound?hook=<slug>" \
  -H "Authorization: Bearer <webhook secret>" -H "Content-Type: application/json" \
  -d '{"requester_email":"alex.morgan@example.com","supplier":"17300001","company_code":"1010","new_bank_country":"NL","new_iban":"NL91 ABNA 0417 1643 00","new_swift":"ABNANL2AXXX","new_holder":"Northwind Industrial Supply GmbH","effective_date":"2026-11-05","evidence_reference":"DOC-2026-10-4471 (signed bank letter)","reason":"Supplier moved its operating account to its Dutch subsidiary bank"}'

What's included

11 assets, ready to adapt

TypeNameDetails
Email templateSupplier bank details updatedSent to the requester when the new bank details are live in SAP.
Data tableVendor change audit logEvery step of a supplier bank detail change: who requested, reviewed, verified and approved it, with old and new values. Keep it for your audit trail.
IntegrationSAP S/4HANA
API referenceAdd supplier bank detailPOST /API_BUSINESS_PARTNER/A_BusinessPartnerBank — API_BUSINESS_PARTNER: create the new A_BusinessPartnerBank entry (new bank id) valid from the effective date.
API referenceEnd old bank detailPATCH /API_BUSINESS_PARTNER/A_BusinessPartnerBank(BusinessPartner='{{supplier}}',BankIdentification='{{bank_id}}') — API_BUSINESS_PARTNER: PATCH the old A_BusinessPartnerBank entry so it ends the day before the new one starts (SAP answers 204 No Content).
API referenceGet supplierGET /API_BUSINESS_PARTNER/A_Supplier('{{supplier}}') — API_BUSINESS_PARTNER A_Supplier: name, account group, VAT registration, country and posting / payment blocks.
API referenceGet supplier bank detailsGET /API_BUSINESS_PARTNER/A_BusinessPartner('{{supplier}}')/to_BusinessPartnerBank — API_BUSINESS_PARTNER: the business partner's bank details (to_BusinessPartnerBank): IBAN, SWIFT, bank key, account holder and validity.
API referenceGet supplier company dataGET /API_BUSINESS_PARTNER/A_SupplierCompany(Supplier='{{supplier}}',CompanyCode='{{company_code}}') — API_BUSINESS_PARTNER A_SupplierCompany: payment terms, payment methods, reconciliation account, house bank and payment block for the company code.
Decision tableBank change risk4 rules — Risk of a supplier bank detail change. High risk needs a second call-back contact and same-day treasury review. First matching rule wins.
Retention policyVendor change audit: 10 yearsFinancial audit records: keep vendor change audit rows for 10 years, then purge. Apply it to the Vendor change audit log after install.
WorkflowSAP vendor bank change26 steps — A requested supplier bank detail change is compared with SAP, reviewed by finance, verified by call-back, approved by treasury (four eyes) and written to SAP, with every step in the audit log.

Vendor change audit log · 1 sample rows

Change referenceSupplierSupplier nameStepDecisionActor (user id or email)Old valueNew valueRiskNotesLogged at

Requirements

What you connect it to

Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.

Needs

  • REST API — A REST API integration: set its base URL and credentials on install.
  • Assignees — People in your workspace to receive the User Tasks (picked on install).
  • Email (optional) — Email delivery configured for the instance (EMAIL_PROVIDER), used for notifications.

After installing

  1. SAP S/4HANA integration: base URL https://<host>/sap/opu/odata/sap, Basic authentication with the communication user of an arrangement for SAP_COM_0008 (Business Partner, Customer and Supplier Integration); set sap-client in the integration headers.
  2. CSRF: the POST and PATCH to A_BusinessPartnerBank need an x-csrf-token. Call SAP through API Management or a BTP destination that fetches it, or fetch it yourself (GET with x-csrf-token: Fetch) and pass it to the optional x-csrf-token header input.
  3. Assignees: pick the finance reviewer, the AP clerk who makes the call-back and the treasury approver. Pick different people: that is the four-eyes control.
  4. Apply the "Vendor change audit: 10 years" retention policy to the audit log, and set EMAIL_PROVIDER for the requester confirmation.

Asked for on install

  • Integration “SAP S/4HANA”Required

    • Passwordconfig.auth_config.password
    • Base urlconfig.base_urldefault https://s4.sap.example.com/sap/opu/odata/sap· optional
  • Workflow “SAP vendor bank change” assigneesRequired

    • User for step “Finance review”nodes.13.config.assignee_id
    • User for step “Call-back verification”nodes.15.config.assignee_id
    • User for step “Treasury approval”nodes.17.config.assignee_id

Install

Install it in your workspace

Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.

In the app

  1. Download sap-vendor-master-change-1.0.0.utpkg.
  2. Open Automations → Packages and drag the file onto the page (or choose Import package). Browse gallery there lists every gallery package without downloading by hand.
  3. Pick the file. The wizard verifies the checksum, every file hash and the signature, and shows the readme.
  4. Review the changes (what is created) and the data rows.
  5. Fill in the requirements, or tick Keep incomplete and finish later with Complete setup.
  6. Done: the workflow is published and active once setup is complete.

With the CLI

shell
curl -fLO https://usertasks.com/gallery/sap-vendor-master-change-1.0.0.utpkg
usertasks packages inspect sap-vendor-master-change-1.0.0.utpkg       # offline: checksum, hashes, signature
usertasks packages install sap-vendor-master-change-1.0.0.utpkg --dry-run
usertasks packages install sap-vendor-master-change-1.0.0.utpkg       # prompts for each requirement
usertasks packages install sap-vendor-master-change-1.0.0.utpkg --keep-incomplete --yes   # in CI; finish with:
usertasks packages complete sap-vendor-master-change -f values.yaml

Verify the download

File SHA-256
6d09e7c5b4bfa80e6bcb3c73b3419e06d8d279c42e826f32acf242b251340eec
Package checksum (what is signed)
sha256:bea483b9d949e918bf1716aa37d0873d888a26d4623efdac020487914fdbd19b
Signer
Unsigned preview build — compare the SHA-256 above

shasum -a 256 sap-vendor-master-change-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.

Versions

Version 1.0.0

  1. v1.0.02026-10-28First release.

Installing a newer version upgrades in place: local credentials and requirement values are kept, and changes you made are flagged first. How packages work

More packages

Related

Browse the whole gallery