Audit supplier data

Audits supplier records: missing bank details, address and legal identifiers, and bank details changed recently.

AP ManagerProcurement๐Ÿ“… WeeklyBeginnerRead-only

Ask it like this

Which suppliers have incomplete data and invoices to pay?

When to use it

Use it each week before the payment run, or when a new supplier joins, to check that supplier records are complete.

What it produces

Suppliers sorted into priority, incomplete, to verify and new, with the amount of invoices to pay involved.

How it works

  1. 1Lists all active suppliers
  2. 2Checks bank details, address, legal identifier and supplier account
  3. 3Spots suppliers with no IBAN that have invoices to pay
  4. 4Flags bank details changed in the last few days
  5. 5Sorts suppliers into priority, incomplete and to verify

What protects you

  • This skill only reads: it changes nothing in Spendesk
  • It acts with your permissions and your role, never beyond
  • The assistant cannot approve or pay
โ–ธTechnical detail85/100 ยท 2 tools
SuppliersComplianceget_suppliersget_payables

# Supplier records audit

## Purpose

Check that active suppliers' records are complete before a payment run: bank details, address, legal identifiers. Spot incomplete suppliers that have invoices to pay, and bank details changed recently.

This skill only reads. Completing a record needs the `update_supplier` tool ("Manage suppliers" permission, in Beta) or the Spendesk app.

## What the record holds โ€” and what it does not

| Available | Field |
|-----------|-------|
| Bank details | `iban`, `bic`, `bankCountry` |
| Last bank change | `bankDetailsUpdatedAt`, `bankDetailsUpdatedBy` |
| Address | `address` (line, city, postal code, country) |
| Legal identifiers | `legalName`, `registrationNo`, `vatNo` |
| Supplier account | `accountPayable` (absent when there is no active account) |

โš ๏ธ Two limits to state in the report:

- **An empty IBAN does not prove there are no bank details.** Account number, routing code and holder (non-IBAN accounts, in the UK or the US for instance) are never returned. Write "IBAN not set", not "payment impossible".
- **There is no email or contact** on the record: that point cannot be audited.

## Step 1 โ€” List active suppliers

```json
{ "tool": "get_suppliers", "params": { "isArchived": "false", "pageSize": 100 } }
```

- The parameter is `isArchived`, a string (`"false"`), not `status`.
- Page with `page` while `hasNextPage` is `true`. If a page fails because the response is too large, lower `pageSize` and report the records not read rather than skipping them.

## Step 2 โ€” Check completeness

For each supplier:

| Check | Verdict |
|-------|---------|
| `iban` and `bic` set | โœ… / "IBAN not set" |
| `address.country` and `address.city` set | โœ… / "Incomplete address" |
| `vatNo` or `registrationNo` set | โœ… / "Missing legal identifier" |
| `accountPayable` present | โœ… / "No supplier account" |
| `bankCountry` differs from `address.country` | "To verify" (not an anomaly in itself) |

## Step 3 โ€” Cross-check with invoices to pay

For suppliers with no IBAN:

```json
{
  "tool": "get_payables",
  "params": { "filters": { "operator": "and", "subfilters": [
    { "field": "supplier", "operator": "=", "value": ["<supplierId>", "<supplierId>"] },
    { "field": "paymentStatus", "operator": "=", "value": ["toPay"] }
  ] } }
}
```

A supplier with no IBAN and `toPay` invoices comes **first**. Read what is left to pay in `outstandingAmount`, not in `amount`.

## Step 4 โ€” Bank details changed recently

Read `bankDetailsUpdatedAt`: it is the date of the last change to the bank details, distinct from `updatedAt` (any change to the record). Flag changes from the last 7 days, with `bankDetailsUpdatedBy` resolved to a name: this is the payment-fraud check.

Also flag suppliers created less than 30 days ago (`createdAt`) that already have an invoice to pay.

## Report

```
Supplier audit โ€” <today's date> (N active records read)

๐Ÿ”ด First: IBAN not set and invoices to pay โ€” N suppliers, X EUR
๐ŸŸก Incomplete: address, legal identifier or supplier account missing โ€” N
๐ŸŸ  Bank details changed in the last 7 days โ€” N (to confirm with the supplier)
๐ŸŸข New suppliers with an invoice to pay โ€” N
```

## Limits to state

- Never change bank details without written confirmation from the supplier.
- Supplier data is cached for up to 24 hours: a record fixed a moment ago can still show as incomplete.

## Observed result (demo account, 5 October 2026)

On the first two active records read: neither had an IBAN, a BIC or an address; only one had a supplier account and a bank country. Neither carried a bank-change date.

## Example prompts
- "Which suppliers have incomplete data and invoices to pay?"
- "Full audit of my supplier master data"
- "Are there recently changed bank details that I should confirm?"

How to install this skill

/
  1. 1
    Download the file s51-supplier-onboarding-audit.md using the button above.
  2. 2
    Place the file in the .claude/ directory of your project (or ~/.claude/ for a global install).
    cp s51-supplier-onboarding-audit.md .claude/s51-supplier-onboarding-audit.md
  3. 3
    Use in Claude Code โ€” the skill is automatically discovered. Describe your need in natural language and Claude will apply the skill instructions.
๐Ÿ’ก Make sure the Spendesk MCP is configured in your .claude/settings.json with the tools get_suppliers, get_payables.

Similar skills

โ˜… Top
95/100ยท๐Ÿ” Ad hocยทExpert

Audit what the MCP covers

Probes all available MCP tools, re-evaluates coverage of 50 persona use cases, detects new fields or tools, and regenerates the gap analysis report.

CFOControllerAP Manager
90/100ยท๐Ÿ“… WeeklyยทBeginner

Card requests via get_requests

Explains how to use get_requests for card requests and why expense reimbursements don't appear there. Avoids a frequent source of confusion between two distinct workflows.

ControllerFinance Analyst
โ˜… Top
89/100ยท๐Ÿ” Ad hocยทIntermediate

Build a custom skill

Turns a precise business need into a brand-new tailored Claude skill, ready to use on the Spendesk MCP.

CFOControllerAP Manager

Interested in AI Agent services or Custom Integrations?