canonical: https://jentic.com/apis/managetradex.my/managetradex-peppol

# Managetradex My ManageTradeX - Peppol API

The ManageTradeX Peppol API sends and receives e-invoices over the Peppol network through the ManageTradeX platform. It submits transactions in UBL or a native format, with an optional transformationId to convert native payloads, and lists inbound and outbound transactions filtered by direction, state, outcome, and creation date. Each transaction exposes its details and downloadable artefacts such as the transformed UBL or validation result, and is acknowledged once your system has processed it. The API also registers and updates Peppol participants with company and authorised person details and looks up any participant by peppolId.

## For AI agents

Send e-invoices to the Peppol network, list and download received transactions, acknowledge processed ones, and register or look up Peppol participants.

## Scope

Does not handle MyInvois tax validation, payment collection, or general ledger bookkeeping. Use for sending and receiving Peppol e-invoice transactions and managing Peppol participants only.

## Capabilities

- Submit an invoice transaction to the Peppol network in UBL or native format with POST /transactions, passing a transformationId to convert native payloads
- List transactions filtered by direction (I for inbound, O for outbound), state, outcome, and createdAtFrom or createdAtTo, with cursor pagination up to 50 per page
- Download a transaction artefact such as OUTBOUND_TRANSFORM, INBOUND_TRANSFORM, or VALIDATION_RESULT by artefactId
- Acknowledge a COMPLETED transaction with PUT `/transactions/{transactionId}/acknowledge` once your system has processed it
- Register a company as a Peppol participant with companyName, brnType, registrationNumber, address, and authorizedPerson, and update it later by peppolId
- Look up any Peppol participant and the document types it supports

## Use cases

### Agent-run inbound invoice intake through Jentic

An accounts payable agent lists inbound transactions in the COMPLETED state, downloads each one's transformed artefact for import, and acknowledges it so it drops out of the next run. Through Jentic the agent finds these operations by intent, the OAuth2 client credentials stay in the developer's own Jentic One instance, and a rule can keep the agent on reading and acknowledging while sending stays out.

Example prompt: Call GET /transactions with direction 'I' and state 'COMPLETED', download each INBOUND_TRANSFORM artefact via GET `/transactions/{transactionId}/artefacts/{artefactId}`, then PUT `/transactions/{transactionId}/acknowledge`

### Sending invoices over Peppol

Outbound invoices are submitted with POST /transactions carrying senderId, receiverId, docType, and the invoice in UBL or native format. Before sending, GET `/lookup/participants/{peppolId}` confirms the buyer is on the network, and after sending the outcome filter on GET /transactions surfaces any FAILED deliveries for review.

Example prompt: Call GET `/lookup/participants/{peppolId}` for the buyer, then POST /transactions with senderId, receiverId, docType 'invoice', and the invoice document

### Participant onboarding

Before a company can send or receive on Peppol, it is registered through POST /participants with its companyName, brnType, registrationNumber, address, authorizedPerson, and supporting authorizedDocument. GET `/participants/{peppolId}` then reads the registration and PUT `/participants/{peppolId}` keeps contact and address details current.

Example prompt: POST /participants with companyName 'Acme Sdn Bhd', brnType, registrationNumber, address, and authorizedPerson, then GET `/participants/{peppolId}` to read the registration

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/transactions` | Submit a transaction |
| GET | `/transactions` | List transactions |
| GET | `/transactions/{transactionId}` | Get transaction details |
| PUT | `/transactions/{transactionId}/acknowledge` | Acknowledge a processed transaction |
| GET | `/transactions/{transactionId}/artefacts/{artefactId}` | Download an artefact |
| POST | `/participants` | Create a participant |
| GET | `/lookup/participants/{peppolId}` | Look up a Peppol participant |

## Key resources

- **Transactions** — Inbound and outbound Peppol transactions with direction, state, outcome, events, and artefacts
- **Artefacts** — Source, transformed, and validation payloads attached to a transaction
- **Participants** — Companies registered on Peppol, identified by peppolId

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 61 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 68 / 100
  - AI-Readiness & Agent Experience: 34 / 100
  - Agent Usability: 94 / 100
  - Security: 85 / 100
  - AI Discoverability: 69 / 100
- **View full report:** https://jentic.com/apis/managetradex.my/managetradex-peppol/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the ManageTradeX Peppol API by hand means running the OAuth 2.0 client credentials exchange, building UBL or native invoice payloads, and tracking each transaction from PROCESSING to ACKNOWLEDGED yourself. Through Jentic you install once, import the API from the API Directory, store the client credentials once, and your agent calls it.
- **Permission scoping:** ManageTradeX puts the transactionId and peppolId in the URL path, so a rule can pin your agent to one transaction or one participant and the operations you pick. You choose the operations it may call, so sending new transactions or updating participant details is not included unless you add them.
- **Credential handling:** Your ManageTradeX client credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send an invoice over Peppol' or 'list received invoices', and Jentic returns the matching ManageTradeX operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **ManageTradeX - Document API** — Submit Malaysian e-invoicing documents for MyInvois validation and validate TINs
- **Storecove API** — Peppol access point and e-invoicing network API

## FAQ

### Is there a ManageTradeX Peppol MCP server?

You don't need an MCP server to give your agent the ManageTradeX Peppol API. Jentic connects it directly from the API Directory: import it, store your OAuth2 client credentials once, and your agent calls it. Operations are discovered on demand, so no extra tool definitions sit in the agent's context.

### What authentication does the ManageTradeX Peppol API use?

Per its OpenAPI spec, the ManageTradeX Peppol API uses OAuth 2.0 with the client credentials grant, requesting tokens from the `/oauth2/token` path. Through Jentic the client credentials are stored encrypted by your own Jentic One instance and the token exchange happens at execution time, so the credentials never enter the agent's context.

### Can I limit what my agent is allowed to do with the ManageTradeX Peppol API?

Yes. For example, write a rule that allows GET /transactions, GET on a transaction's artefacts, and PUT on its acknowledge path, so the agent can import and acknowledge received invoices but cannot send invoices or change participant registrations. Every call it makes is logged on your own machine.

### What does acknowledging a transaction do?

A transaction moves from PROCESSING to COMPLETED when processing ends. Once your system has stored the result, PUT `/transactions/{transactionId}/acknowledge` moves it to ACKNOWLEDGED as its final state. Acknowledgement only works on a transaction in the COMPLETED state.

### How do I send an invoice over Peppol through Jentic?

Install Jentic One, import the ManageTradeX Peppol API from the directory, and search for 'send an invoice over Peppol'. Jentic returns the submit transaction operation with its input schema; your agent sends senderId, receiverId, docType, and the invoice, adding a transformationId if the payload is in a native format. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### What are the rate limits for the ManageTradeX Peppol API?

The OpenAPI spec does not specify rate limits. Check the ManageTradeX documentation at https://managetradex.my for current limits. The list operation returns at most 50 transactions per page through its limit parameter.
