﻿<!-- FILE: https://developer.kyriba.com/static/llm/skills/kyriba/SKILL.md -->

# Kyriba API Platform — Meta Skill

## CRITICAL RULES

1. **Credentials** — ask the user for `CLIENT_ID` and `CLIENT_SECRET`. Never search `.env`, `gradle.properties`, or any local file. Stop if not provided — do not proceed with placeholder values.
2. **Base URLs** — Demo: auth `https://auth.demo.kyriba.com` · API `https://api.demo.kyriba.com/api`. Production: both provided by your Kyriba administrator.
3. **No scope** — omit `scope` from OAuth token requests entirely.
4. **Skill URLs** — use exact URLs from the index below. Do NOT add `kyriba/` prefix to domain skill paths.
5. **Sequential calls** — 1 active request at a time. Never concurrent.
6. **Best practices** — fetch and read [kyriba-guide](https://developer.kyriba.com/static/llm/skills/kyriba-guide/SKILL.md) before writing any code or calling any API. It contains rate limits, pagination rules, RSQL syntax, and integration patterns. Skipping it will produce incorrect implementations.

---

## Domain Skill Index

| Skill | URL | Description |
|---|---|---|
| **Platform Management** | | |
| Audit Trail | https://developer.kyriba.com/static/llm/skills/audit-trail/SKILL.md | Read-only change history for any entity |
| Bank Account Groups | https://developer.kyriba.com/static/llm/skills/bank-account-groups/SKILL.md | Group accounts for cash pooling and batch ops |
| Bank Accounts | https://developer.kyriba.com/static/llm/skills/bank-accounts/SKILL.md | Create and manage IBAN/SWIFT bank accounts |
| Bank Branches | https://developer.kyriba.com/static/llm/skills/bank-branches/SKILL.md | Branch registry with BIC and routing data |
| Bank Groups | https://developer.kyriba.com/static/llm/skills/bank-groups/SKILL.md | Bundle banks under a named group |
| Banks | https://developer.kyriba.com/static/llm/skills/banks/SKILL.md | Bank reference data — BIC codes, names, countries |
| Budget Codes | https://developer.kyriba.com/static/llm/skills/budget-codes/SKILL.md | Budget classification codes for cash flows |
| Companies | https://developer.kyriba.com/static/llm/skills/companies/SKILL.md | Core legal entity management |
| Company Groups | https://developer.kyriba.com/static/llm/skills/company-groups/SKILL.md | Organize companies into logical groups |
| Data Permissions | https://developer.kyriba.com/static/llm/skills/data-permissions/SKILL.md | Entity-level data access per user |
| Data Permissions Profiles | https://developer.kyriba.com/static/llm/skills/data-permissions-profiles/SKILL.md | Reusable permission rule bundles |
| Dual Admin | https://developer.kyriba.com/static/llm/skills/dual-admin/SKILL.md | Entities pending second-admin approval |
| Mapping Tables | https://developer.kyriba.com/static/llm/skills/mapping-tables/SKILL.md | Code translation between external systems |
| Third Parties | https://developer.kyriba.com/static/llm/skills/third-parties/SKILL.md | Suppliers, customers, financial institutions |
| Third Party Categories | https://developer.kyriba.com/static/llm/skills/third-party-categories/SKILL.md | Classify and filter third parties |
| User Groups | https://developer.kyriba.com/static/llm/skills/user-groups/SKILL.md | Group users for access control |
| Users | https://developer.kyriba.com/static/llm/skills/users/SKILL.md | Manage Kyriba user accounts |
| **Connectivity** | | |
| Data | https://developer.kyriba.com/static/llm/skills/data/SKILL.md | Upload raw files for Kyriba processing |
| Document Attachments | https://developer.kyriba.com/static/llm/skills/document-attachments/SKILL.md | Attach files to accounts or transfers |
| Process Templates | https://developer.kyriba.com/static/llm/skills/process-templates/SKILL.md | Trigger and monitor import/export workflows |
| **Liquidity Management** | | |
| Bank Statement Balances | https://developer.kyriba.com/static/llm/skills/bank-statement-balances/SKILL.md | Balances from bank statement files |
| Cash Balances | https://developer.kyriba.com/static/llm/skills/cash-balances/SKILL.md | Real-time and historical cash positions |
| Cash Flow Codes | https://developer.kyriba.com/static/llm/skills/cash-flow-codes/SKILL.md | Classification codes for cash transactions |
| Cash Flows | https://developer.kyriba.com/static/llm/skills/cash-flows/SKILL.md | Cash flow transactions and forecasts |
| **Payments** | | |
| Fraud Detection | https://developer.kyriba.com/static/llm/skills/fraud-detection/SKILL.md | Poll pending transfers, submit screening results |
| Fraud Detection SPI | https://developer.kyriba.com/static/llm/skills/fraud-detection-spi/SKILL.md | Kyriba calls your server for fraud screening |
| Payment Automation | https://developer.kyriba.com/static/llm/skills/payment-automation/SKILL.md | End-to-end payment workflow automation |
| Payment Files Status | https://developer.kyriba.com/static/llm/skills/payment-files-status/SKILL.md | Track payment file lifecycle to bank |
| Payment Initiation SPI | https://developer.kyriba.com/static/llm/skills/payment-initiation-spi/SKILL.md | Kyriba calls your server to initiate payments |
| Payment Transaction Summary | https://developer.kyriba.com/static/llm/skills/payment-transaction-summary/SKILL.md | Transaction detail inside bulk payment files |
| Transfers | https://developer.kyriba.com/static/llm/skills/transfers/SKILL.md | Monitor transfer status and remittance batches |
| **Risk Management** | | |
| Currencies | https://developer.kyriba.com/static/llm/skills/currencies/SKILL.md | Currency reference data and FX rates |
| Hedge De-Designations | https://developer.kyriba.com/static/llm/skills/hedge-dedesignations/SKILL.md | FX hedge de-designation lifecycle events |
| **Working Capital Finance** | | |
| Documents | https://developer.kyriba.com/static/llm/skills/documents/SKILL.md | Invoices and documents for early payment programs |
| Early Payment Interest | https://developer.kyriba.com/static/llm/skills/early-payment-interest/SKILL.md | Discount rates and calculation settings |
| Supplier Service Accesses | https://developer.kyriba.com/static/llm/skills/supplier-service-accesses/SKILL.md | SCF services each supplier can access |
| Supplier Users | https://developer.kyriba.com/static/llm/skills/supplier-users/SKILL.md | Supplier portal user accounts |
| **Webhooks** | | |
| Webhook: Batch Status Changed | https://developer.kyriba.com/static/llm/skills/webhook-batch-status-changed/SKILL.md | Event when a payment batch changes status |
| Webhook: Document Approved | https://developer.kyriba.com/static/llm/skills/webhook-document-approved/SKILL.md | Event when WCF documents are approved |
| Webhook: Document Cancelled | https://developer.kyriba.com/static/llm/skills/webhook-document-cancelled/SKILL.md | Event when WCF documents are cancelled |
| Webhook: Entity Changed | https://developer.kyriba.com/static/llm/skills/webhook-entity-changed/SKILL.md | Event when any platform entity changes |
| Webhook: Execution Finished | https://developer.kyriba.com/static/llm/skills/webhook-execution-finished/SKILL.md | Event when a process template task completes |
| Webhook: Routing Status Changed | https://developer.kyriba.com/static/llm/skills/webhook-routing-status-changed/SKILL.md | Event when a payment routing file changes status |

---

## Authentication

**Essential (memorize this):** `POST {AUTH_BASE_URL}/oauth/token` · `Authorization: Basic base64(CLIENT_ID:CLIENT_SECRET)` · `Content-Type: application/x-www-form-urlencoded` · body: `grant_type=client_credentials` · **no scope**.  
Use `token_type` from response verbatim: `Authorization: {token_type} {access_token}` — never hardcode `Bearer`.  
On **401**: retry once with alternate scheme (`Bearer` ↔ `token`). On second 401: re-authenticate.

**Full request for reference:**

```http
POST {AUTH_BASE_URL}/oauth/token
Authorization: Basic {base64_encode(CLIENT_ID + ":" + CLIENT_SECRET)}
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
```

```http
Authorization: {token_type} {access_token}
```