SAP Ariba supplier portal: confirm orders with a workflow
A buyer on Ariba expects an order confirmation in the portal, not by e-mail. This template signs in with a vaulted login, opens the purchase order your ERP named, reads its lines, confirms the entire order with your number and date, and checks that the status changed.
Who confirms orders in Ariba, and how often
Every buyer network has this job; Ariba is where many large German buyers put it.
- Order desk, several times a day
- A new PO arrives as an e-mail notification; someone signs in, opens it, checks quantities and prices against the ERP and confirms. Each confirmation is a few screens, and a busy buyer sends dozens a week.
- Suppliers with an ERP but no integration
- The buyer offers cXML or EDI; the supplier's ERP can produce a confirmation but nobody has budgeted the integration. The portal is the integration, operated by hand.
- Partial and changed orders
- A changed PO reopens for confirmation; a partial confirmation needs quantities per line. Those are still a person's decisions, and this template confirms in full only.
- What breaks
- Confirmations sent late or not at all, which the buyer's scorecards notice. A confirmation typed with the wrong delivery date, which the buyer's planners notice later.
The confirmation, as SAP's help describes it
SAP publishes the supplier-side steps. The labels below are quoted from that documentation; buyers can rename or restrict some of them through their transaction rules.
-
Sign in to the supplier portal
User name and password at supplier.ariba.com. Two-factor authentication can be enabled on the account; if it is, the second step is a code from an authenticator app.
-
Open the order from the Workbench
The Workbench shows an Orders tile with filters by status and date. Opening a row shows the PO with its header, lines and the actions the buyer allows.
-
Create Order Confirmation
The button offers Confirm Entire Order, Update Line Items and Reject Entire Order. Confirm Entire Order asks for a confirmation number and estimated delivery and shipping dates.
-
Review and submit
Next shows a summary; Submit sends the confirmation to the buyer. The PO status changes to Confirmed and the confirmation appears among the related documents.
-
Check the buyer's rules
Whether a confirmation is required, whether prices may be changed and whether partial confirmations are allowed is set by the buyer. The template assumes a full confirmation without changes.
Submitting on someone else's portal: what runs and what is refused
Browserberg is not affiliated with SAP; the Ariba Network is SAP's product and this page describes operating it with the supplier account you hold.
The login
The credential is created once for supplier.ariba.com and referenced by id. If the account uses two-factor authentication with an authenticator app, add the seed as totpSeed and the login block handles the code. The password is released only at the moment of typing and only on that site.
This template does submit something
An order confirmation is a submission, and the effect gates classify the control that sends it. A control labelled Submit or Confirm is a submit effect, the reversible kind, and runs under the default policy. What the gates refuse under that policy are payment, destructive and bulk-export elements: a Reject Entire Order button reads as destructive and would be refused even if an instruction asked for it, and nothing in Ariba's supplier side moves money. If you prefer a person to approve every confirmation before it goes out, run the workflow under the propose policy: the submit is then handed to a person rather than clicked.
Verify against the page, not the click
The last block does not trust that the submit worked. It reads the order again and requires the status Confirmed with your confirmation number among the related documents. A run that ends with Confirmed failed did not confirm the order, whatever the previous block reported.
Session
Ariba signs out after inactivity, and runSequentially keyed on the credential stops two runs from sharing one login. One PO per run keeps a failure attached to one order number.
Template, credential and one run per order
The last validation is the one that matters: it re-reads the order and refuses to call the run complete on the strength of a click.
{
"title": "SAP Ariba supplier portal: confirm a purchase order in full",
"parameters": [
{
"key": "po_number",
"description": "The purchase order number as shown in the Orders tile",
"required": true
},
{
"key": "confirmation_number",
"description": "Your own confirmation number for this PO",
"required": true
},
{
"key": "delivery_date",
"description": "Estimated delivery date to confirm (YYYY-MM-DD)",
"required": true
}
],
"runSequentially": true,
"sequentialKey": "cred_ariba_supplier",
"blocks": [
{
"blockType": "login",
"label": "Sign_in",
"credentialId": "cred_ariba_supplier",
"url": "https://supplier.ariba.com/"
},
{
"blockType": "action",
"label": "Open_order",
"instruction": "Open the Workbench, then the Orders tile, and open purchase order {{ po_number }}"
},
{
"blockType": "validation",
"label": "Order_open",
"criterion": "The order detail page for {{ po_number }} is shown, the button Create Order Confirmation is available and the order status is New or Changed"
},
{
"blockType": "extraction",
"label": "Lines",
"instruction": "Every line of purchase order {{ po_number }}: line number, part number or description, quantity, unit, unit price, requested delivery date",
"schema": {
"type": "object",
"properties": {
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"line": {
"type": "integer"
},
"part": {
"type": "string"
},
"quantity": {
"type": "number"
},
"unit": {
"type": "string"
},
"unitPrice": {
"type": "number"
},
"requestedDate": {
"type": "string"
}
},
"required": [
"line",
"quantity"
]
}
}
},
"required": [
"lines"
]
}
},
{
"blockType": "action",
"label": "Confirm_entire_order",
"instruction": "Choose Create Order Confirmation, then Confirm Entire Order. Enter {{ confirmation_number }} as the confirmation number and {{ delivery_date }} as the estimated delivery date, continue with Next, review, and submit the confirmation"
},
{
"blockType": "validation",
"label": "Confirmed",
"criterion": "Purchase order {{ po_number }} now shows the status Confirmed and the confirmation {{ confirmation_number }} is listed in its related documents"
}
]
}
import { Browserberg } from '@browserberg/sdk';
import template from './sap-ariba-confirm-orders.json' with { type: 'json' };
const bb = new Browserberg({
apiKey: process.env.BROWSERBERG_API_KEY,
baseUrl: 'https://browserberg.com',
});
const cred = await bb.credentials.create({
name: 'Ariba supplier account',
url: 'https://supplier.ariba.com/',
fields: { username: 'orders@example.de', password: process.env.ARIBA_PASSWORD },
nonSecretFields: ['username'],
});
const wf = await bb.workflows.publish({
...template,
blocks: template.blocks.map((b) =>
b.blockType === 'login' ? { ...b, credentialId: cred.id } : b),
});
// One PO per run. Your ERP decides which orders are ready to confirm.
await using session = await bb.sessions.create();
const run = await bb.workflows.run(wf.workflowId, {
sessionId: session.id,
inputs: { po_number: '4500123456', confirmation_number: 'AB-2026-0912', delivery_date: '2026-09-19' },
});
console.log(run.status, run.endedBy, run.outputs.Lines_output);
Note · Drafted from SAP's public supplier documentation
Button names, the Workbench layout and the confirmation dialogue are described as SAP's public help presents them on the date above. The template has not been run against a live Ariba supplier account as part of writing this page, and buyers can rename or hide actions through their transaction rules. Expect to adjust an instruction on the first run.
Facts from the public documentation
| Portal | SAP Ariba supplier portal, sign-in at supplier.ariba.com SAP Ariba |
|---|---|
| Confirmation options | Confirm Entire Order, Update Line Items, Reject Entire Order SAP help for suppliers |
| Fields on a full confirmation | Confirmation number, estimated delivery date, estimated shipping date, optional comments SAP help for suppliers |
| Buyer transaction rules | Decide whether confirmations are required and what a supplier may change SAP help for suppliers |
| Second factor | Optional two-factor authentication via authenticator app, which the vault's totpSeed covers |
As of 2026-09-08
Questions from the order desk
Will it confirm an order with a changed price?
No. The template confirms the entire order as it stands and never uses Update Line Items. A PO whose lines differ from your ERP is one your system should not hand to this workflow.
Can it reject an order?
Not with this template, and not by accident: the effect gates read Reject Entire Order as destructive and refuse it under the default policy. A rejection is a person's decision on a person's screen.
What if the buyer renamed the buttons?
The action instruction is plain language, so a renamed but recognisable control still works; a hidden one fails the block with that reason. Adjust the instruction to the buyer's wording if needed.
How do I approve each submit myself?
Run under the propose policy. High-risk steps are then returned for a person to approve rather than executed; whether you extend that to ordinary submits is a policy choice for your account.
Does Ariba see automation?
It sees a Chromium session under your supplier login from EU hardware, doing what your order desk does. There is no stealth layer and none is offered.
Confirm the next order this way
Five browser hours, no card. Vault the login, publish, and let your ERP name the PO.