{"name":"io.github.payware/mcp-server","slug":"payware-mcp-server","title":"payware","description":"payware A2A payments API for merchants, ISVs and payment institutions","url":"https://mcp.market/server/payware-mcp-server","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"finance","tags":["finance"],"presence":{"score":27,"stars":0,"forks":0,"downloads_week":62,"last_push_at":"2026-09-17T18:36:24.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/payware/mcp-server","website":"https://payware.eu/en/for-developers","version":"1.3.1","remotes":[],"packages":[{"registryType":"npm","identifier":"@payware/mcp-server","version":"1.3.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Partner role: merchant, isv or payment_institution","format":"string","default":"merchant","choices":["merchant","isv","payment_institution"],"name":"PAYWARE_PARTNER_TYPE"},{"description":"Partner ID from the payware dashboard","isRequired":true,"format":"string","name":"PAYWARE_PARTNER_ID"},{"description":"Path to the RSA private key for the sandbox","isRequired":true,"format":"filepath","name":"PAYWARE_SANDBOX_PRIVATE_KEY_PATH"},{"description":"Path to the RSA private key for production","format":"filepath","name":"PAYWARE_PRODUCTION_PRIVATE_KEY_PATH"},{"description":"OAuth2 client ID (ISV partners only)","format":"string","name":"PAYWARE_OAUTH_CLIENT_ID"},{"description":"OAuth2 client secret (ISV partners only)","format":"string","isSecret":true,"name":"PAYWARE_OAUTH_CLIENT_SECRET"}]}],"tools":[{"name":"payware_authentication_create_jwt_token","description":"Create JWT token for payware API authentication according to official documentation","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_authentication_generate_rsa_keys","description":"Generate RSA key pair for payware API authentication","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_authentication_setup_sandbox_auth","description":"Setup sandbox authentication configuration for payware API","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_authentication_test_jwt","description":"Test JWT token creation process with detailed step-by-step breakdown, showing deterministic JSON serialization, SHA-256 hash calculation, and final JWT structure","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_authentication_validate_jwt","description":"Validate and debug JWT token structure, decode payload/headers, verify content hash (SHA-256/MD5) calculation, and check RS256 signature format for payware API compliance","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_authorization_oauth2_get_token_info","description":"Get information about an OAuth2 access token. This endpoint exposes information about access tokens, including their status. Only information about tokens requested by the ISV is returned. Use this to check token status and present information to users in POS software. Endpoint: GET /oauth2/tokens/{token} Auth: Requires ISV JWT token","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_authorization_oauth2_obtain_token","description":"Obtain an OAuth2 access token for a merchant. ISVs must be authorized by payware registered merchants to make requests on their behalf. This endpoint allows ISVs to request a token using the merchant's credentials. IMPORTANT: Access tokens do not expire and only one token is allowed per merchant. Store tokens securely using strong encryption. Endpoint: POST /oauth2/tokens Auth: Requires ISV JWT to","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_authorization_oauth2_token_helper","description":"OAuth2 Token Helper - Create or manage tokens with clear output. This tool helps you: 1. Create new OAuth2 tokens (if none exists) 2. Guide you on finding existing tokens 3. Display token information clearly Use this when you need a token but aren't sure if one exists or what it is.","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_data_cancel_export","description":"Cancel a running export process. Only exports in QUEUED status can be cancelled.","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_data_cancel_report","description":"Cancel a running report generation. Only reports in QUEUED status can be cancelled.","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_data_download_export","description":"Download a READY export file. The export must be in READY status. Returns binary data for the file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_data_export_report","description":"Export a READY report in a specific format (PDF, CSV, Excel, JSON). The report must be in READY status first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_data_generate_report","description":"Generate an asynchronous data report for ISV data analysis and reporting on behalf of merchants. Production only - not supported in sandbox.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_data_get_export_list","description":"Get all export attempts for a specific report request. Returns list of exports in various formats with their status and download information. Production only - not supported in sandbox.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_data_get_export_status","description":"Get the status of a report export request. Use this to monitor export progress.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_data_get_report_requests","description":"Get all execution requests for a specific report type. Returns historical execution records with status and parameters. Production only - not supported in sandbox.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_data_get_report_status","description":"Get the status of an asynchronous report generation request. Use this to monitor report progress.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_data_list_reports","description":"List all available report types with their configurations, descriptions, and visibility settings. Production only - not supported in sandbox.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_deep_links_delete_product_link","description":"Delete an active deep link for a product on behalf of a merchant. Once deleted, the deep link URL will no longer redirect to the payware mobile app. **ISV Authentication:** - Requires ISV JWT token with merchant partner ID in 'aud' claim - Requires OAuth2 token in 'sub' claim **Use Cases:** - Remove expired product links - Clean up after product removal - Security cleanup for discontinued products","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_deep_links_delete_transaction_link","description":"Delete an active deep link for a transaction on behalf of a merchant. Once deleted, the deep link URL will no longer redirect to the payware mobile app. **ISV Authentication:** - Requires ISV JWT token with merchant partner ID in 'aud' claim - Requires OAuth2 token in 'sub' claim **Use Cases:** - Remove expired transaction links - Clean up after transaction completion - Security cleanup for sensit","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_deep_links_get_product_link","description":"Get an active deep link for a product on behalf of a merchant. Returns a clickable URL that redirects to the payware mobile app. **ISV Authentication:** - Requires ISV JWT token with merchant partner ID in 'aud' claim - Requires OAuth2 token in 'sub' claim **Deep Link Format:** - Web URL: https://go.payware.eu/{productId} - Mobile Redirect: payware://{productId} **Use Cases:** - Mobile-only e-comm","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_deep_links_get_transaction_link","description":"Get an active deep link for a transaction on behalf of a merchant. Returns a clickable URL that redirects to the payware mobile app. **ISV Authentication:** - Requires ISV JWT token with merchant partner ID in 'aud' claim - Requires OAuth2 token in 'sub' claim **Deep Link Format:** - Web URL: https://go.payware.eu/{transactionId} - Mobile Redirect: payware://{transactionId} **Use Cases:** - P2P pa","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_generate_code_example","description":"Generate production-ready payware API integration code examples with authentication, error handling, and environment configuration for any operation across 16 supported operations and 6 programming languages.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_generate_documentation","description":"Generate comprehensive documentation for payware API integration with quick start instructions, authentication flows, operation examples, error handling patterns, and language-specific integration guides.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_isv_cancel_invitation","description":"Cancel a PENDING invitation. **The link stops working immediately.** **Endpoint:** DELETE /isv/invitations/{invitationId} -> 204 No Content **Only PENDING invitations can be cancelled.** A COMPLETED, EXPIRED or already-CANCELLED one answers **409** - and for a COMPLETED one that is the right answer, not an obstacle: the merchant has already registered and authorized you, and cancelling the invitat","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_isv_create_invitation","description":"Invite a merchant to join payware through this ISV. **This is the start of the ISV onboarding flow.** **Endpoint:** POST /isv/invitations -> 201 Created ⚠️ **payware sends no email. You must deliver the link.** The response carries an `invitationLink`, and distributing it - email, SMS, in-app, a printed QR, whatever your channel is - is the ISV's responsibility. Creating the invitation and stoppin","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_isv_get_invitation","description":"Get full details of one invitation, including its link and the merchant data it pre-fills. **Endpoint:** GET /isv/invitations/{invitationId} **This is how you recover an invitation link** you no longer have - the link is not derivable from the id, so re-reading the invitation is the only way to get it back short of creating a new one. **404** means no invitation with that id belongs to this ISV. I","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_isv_list_invitations","description":"List the merchant invitations this ISV has created, newest first. **Endpoint:** GET /isv/invitations - paginated **Use it to answer \"what happened to that invitation\":** filter by `PENDING` to find merchants who have not acted yet and may need the link re-sent, or by `COMPLETED` to find merchants you can now obtain a token for. **Statuses:** ${INVITATION_STATUSES.map(s =>","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_logs_download_url","description":"Get download URL for logs archive. Premium plan required. Returns URL for downloading logs as gzipped JSON file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_logs_query","description":"Query application logs with filters. Premium plan required. Returns paginated JSON log entries for debugging and monitoring your integration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_logs_status","description":"Get log availability and storage information. Premium plan required. Shows if logs are available, total size, and file count.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_operations_cancel_transaction","description":"Cancel an active transaction as an ISV on behalf of a merchant. **Endpoint:** PATCH /transactions/{transactionId} with `{\"status\":\"CANCELLED\",\"statusMessage\":\"...\"}` Requires ISV authentication with merchant partner ID and OAuth2 token. Only ACTIVE transactions can be cancelled - one already processed answers 409 ERR_ALREADY_PROCESSED. **`statusMessage` is mandatory.** The server rejects a cancell","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_operations_create_transaction","description":"Create a new transaction through payware as an ISV on behalf of a merchant. ISV partners can create transactions for merchants they have authorization for via OAuth2. Requires valid OAuth2 token obtained from the merchant. **Authentication**: Uses ISV JWT with merchant partner ID in 'aud' claim and OAuth2 token in 'sub' claim. ⚠️ **The MERCHANT's plan governs, not the ISV's.** An on-behalf call in","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_operations_finalize_transaction","description":"Finalize a transaction as a payment institution. This updates the transaction status after execution in your payment network. **Payment Institution Finalization:** - **CONFIRMED**: Transaction executed successfully (requires amount, fee, currency) - **CANCELLED**: Transaction cancelled by creator - **DECLINED**: Transaction declined by payment institution (requires statusMessage) - **FAILED**: Tra","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_operations_get_transaction_history","description":"Get one completed or expired transaction as an ISV on behalf of a merchant. **Endpoint:** GET /transactions-history/{transactionId} Returns a transaction in a final state: CONFIRMED, DECLINED, FAILED, EXPIRED or CANCELLED. For a transaction still ACTIVE, use `payware_operations_get_transaction_status` instead - the two endpoints cover disjoint sets of transactions and neither falls back to the oth","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_operations_get_transaction_status","description":"Get status of an ACTIVE transaction by ID as an ISV on behalf of a merchant. **ISV Authentication:** Uses ISV JWT with merchant partner ID in 'aud' claim and OAuth2 token in 'sub' claim. **Endpoint:** GET /transactions/{transactionId} **Use Case:** Check status of ACTIVE transactions only. This endpoint only returns transactions with ACTIVE status. **Note:** For transactions with final statuses (C","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_operations_process_transaction","description":"Process a PEER transaction as an ISV on behalf of a merchant - the merchant scanning a customer's QR or barcode to collect payment. **Endpoint:** POST /transactions/{transactionId} The customer presents a transaction they created; the merchant (through you) processes it with the amount to collect. Only ACTIVE transactions can be processed - one already processed answers **409 `ERR_ALREADY_PROCESSE","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_operations_simulate_callback","description":"Simulate the callback payload payware sends to a merchant's callbackUrl, for building and testing a webhook handler as an ISV. **Local only - this makes no API call.** payware has no endpoint that triggers a callback on demand, so nothing here reaches the network. What you get back is the exact payload shape a real TRANSACTION_FINALIZED callback carries, which is what a handler needs in order to b","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_operations_soundbite_transaction","description":"Get transaction information using a Soundbite SDK output file. This allows payment institutions to process transactions using audio-based identifiers. **Soundbite Integration:** - Upload Soundbite SDK output file (.lo extension) - File contains audio-encoded transaction identifier - Alternative to QR/barcode scanning for accessibility - Returns same transaction information as regular transaction l","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_poi_cancel_price","description":"Cancel a pending price on a POI, resetting it to IDLE state. **ISV Authentication:** Uses ISV JWT with merchant partner ID and OAuth2 token. **Endpoint:** DELETE /poi/{poiId}/price **Use Case:** Cancel a price that was set but customer didn't pay (e.g., order cancelled). The POI will return to IDLE state and be ready for a new price. **Required:** POI ID, Merchant Partner ID, and OAuth2 token.","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_poi_create","description":"Create a single POI (Point of Interaction) - a physical payment point a payer scans. **Endpoint:** POST /poi -> 201 Created … **Creating many at once?** Use `payware_poi_create_batch` instead. It creates up to … in one atomic call, which is both faster and safer than a loop over this tool: a loop that fails halfway leaves a half-built estate with no record of where it stopped. ${isIsv ?","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_poi_create_batch","description":"Create up to … POIs in a single **atomic** call - the tool for rolling out a terminal estate. **Endpoint:** POST /poi/batch -> 201 Created, returning `{ created, pois: [...] }` **Atomic means all or nothing.** Either every entry is created or none is. That is the reason to prefer this over a loop of `payware_poi_create`: a loop that fails on entry 27 leaves 26 POIs behind with nothing recording wh","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_poi_get","description":"Get details of a specific POI (Point of Interaction). **ISV Authentication:** Uses ISV JWT with merchant partner ID and OAuth2 token. **Endpoint:** GET /poi/{poiId} **Use Case:** Retrieve full details of a physical payment point including configuration and current state. **Required:** POI ID, Merchant Partner ID, and OAuth2 token.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_poi_get_qrcode","description":"Generate a QR code image for a POI that customers can scan. **Endpoint:** GET /poi/{poiId}/image **Authentication:** Public endpoint (no auth required) **Use Case:** Generate QR codes for printing or displaying on screens. **Formats:** PNG (default), SVG, JPG Returns base64-encoded image data that can be saved or displayed. **Required:** POI ID only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_poi_get_status","description":"Get current status of a POI including any pending payment. **ISV Authentication:** Uses ISV JWT with merchant partner ID and OAuth2 token. **Endpoint:** GET /poi/{poiId}/status **Use Case:** Check if a POI is idle, has a pending price, or is busy with a payment. **POI States:** - IDLE: Ready for new payment - READY: Price set, waiting for customer scan - BUSY: Payment in progress - DISABLED: Not a","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_poi_list","description":"List all POIs (Points of Interaction) for a merchant. **ISV Authentication:** Uses ISV JWT with merchant partner ID and OAuth2 token. **Endpoint:** GET /poi **Use Case:** Retrieve all physical payment points configured for a merchant. POI states: IDLE (ready), READY (price set), BUSY (payment in progress), DISABLED. **Required:** Merchant Partner ID and OAuth2 token for ISV authentication.","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_poi_set_price","description":"Set a pending price on a POI for customer payment. **ISV Authentication:** Uses ISV JWT with merchant partner ID and OAuth2 token. **Endpoint:** PUT /poi/{poiId}/price **Use Case:** Set the amount a customer should pay when they scan the POI. The POI will transition to READY state and wait for a customer scan until the TTL expires. **Required:** POI ID, amount, currency, reason, Merchant Partner I","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_products_create_product","description":"Create a new product for inventory management and payment processing on behalf of a merchant (ISV operation). **ISV Authentication**: Requires ISV credentials and OAuth2 token from target merchant. **Product Structure:** 📦 **PRODUCT METADATA**: name, shortDescription, longDescription, sku, upc, shippable, active, shop 💰 **PRODUCT DATA** (prData object): type, regularPrice, currency, overlapPrior","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_products_create_schedule","description":"Create a price schedule for a merchant's product (ISV operation)","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_products_delete_audio","description":"Delete an audio file from a merchant's product (ISV operation). This action cannot be undone.","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_products_delete_product","description":"Delete a product from a merchant account (ISV operation). This action cannot be undone.","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_products_delete_schedule","description":"Delete a price schedule (ISV operation). This action cannot be undone.","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_products_get_audio","description":"Get detailed information about a specific audio file (ISV operation)","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_products_get_audios","description":"Get all registered audio files for a merchant's product (ISV operation)","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_products_get_product","description":"Get detailed information about a specific product by ID (ISV operation)","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_products_get_product_image","description":"Generate a QR code or barcode image for a merchant's product (ISV operation).","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_products_get_schedule","description":"Get detailed information about a specific price schedule (ISV operation)","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_products_get_schedules","description":"Get all price schedules for a merchant's product (ISV operation)","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_products_list_products","description":"Get a list of all products for a merchant account (ISV operation)","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_products_register_audio","description":"Register an audio file (soundbite) for a merchant's product (ISV operation). **Supported formats:** Most audio/video formats (up to 200MB) **Note:** For video files, only the audio channel is registered","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_products_update_audio","description":"Update audio information (title) or reassign audio to another product (ISV operation)","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_products_update_product","description":"Update an existing product on behalf of a merchant (ISV operation). Only provide the fields you want to change.","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_products_update_schedule","description":"Update an existing price schedule (ISV operation)","write_action":true,"price_micros":0,"input_schema":null},{"name":"payware_reference_lookup","description":"Look up payware reference data - the enumerations a merchant registration form needs. **Endpoints:** GET /isv/reference/{legal-forms, business-activities, currencies, languages, jurisdictions} One tool with a `dataset` parameter rather than five near-identical tools. All five are cheap, read-only lookups, and they are used together when building a registration flow. **Datasets** … **Authentication","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_shops_list","description":"List the merchant outlets (shops) the caller can act on. **Endpoint:** GET /shops **Use this before any call that takes a `shop` / `shopCode`.** Creating a transaction, creating a product, creating a POI and batching POIs all take one, and an invalid code is a 400 (`ERR_INVALID_SHOP_CODE`). Omitting it falls back to the merchant's default shop, which is a reasonable guess for a single-outlet merch","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_utils_format_json_deterministic","description":"Format JSON payload with deterministic key sorting for consistent SHA-256 calculation and payware API compliance","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_utils_format_request","description":"Format and validate payware API requests with proper structure and headers","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_utils_generate_code_example","description":"Generate code examples for different programming languages and scenarios","write_action":false,"price_micros":0,"input_schema":null},{"name":"payware_utils_server_info","description":"Get MCP server version, status, and environment information","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-19T20:14:43.061Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:14:43.034Z","components":{"code":{"score":25,"max":25,"notes":["123 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@payware/mcp-server","version":"1.3.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":8,"publishedAt":"2026-09-17T18:00:18.083Z","repositoryUrl":"git+https://github.com/payware/mcp-server.git","weeklyDownloads":62}],"repo":{"found":true,"owner":"payware","repo":"mcp-server","archived":false,"pushedAt":"2026-09-17T18:36:24Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/214687358?v=4","ownerCreatedAt":"2025-06-03T15:45:20Z","license":"MIT"},"icon":{"url":"https://payware.eu/favicons/android-chrome-512x512.png","source":"registry","width":512,"height":512},"presence":{"stars":0,"forks":0,"downloadsWeek":62,"license":"MIT","lastPushAt":"2026-09-17T18:36:24.000Z","score":27}}}},"grade_history":[{"kind":"restore","fromGrade":"F","toGrade":"B","reason":"score 83","createdAt":"2026-09-19T18:55:51.490Z"}],"reviews":[]}