Skip to main content
This quickstart uses a Partner sandbox credential. The Python examples use https://api-sandbox.paywise.de directly; replace the inline PAYWISE_PARTNER_KEY placeholder with a matching sandbox Partner key (pw_sbx_…). Other language tabs read the matching environment variables. The request tabs are complete examples for individual calls. The last section provides one runnable Python program for environment proof, identifier capture, and cross-API verification. Use the documented trailing slash on /partner/v2/ roots and resource routes. Slashless requests return JSON 404 for every method, including GET, HEAD, OPTIONS, and writes, with no redirect or Location header. For example, request /partner/v2/info/ directly. The same rule applies to delegated /v2/ requests; see canonical URLs.

1. Prove the sandbox environment

Use the authenticated Partner information endpoint. Parse X-Paywise-Environment case-insensitively and require its value to equal sandbox; never infer the environment from the hostname.

2. Create the company and inline admin atomically

Build the body once. A retry after an ambiguous outcome uses the same body and COMPANY_COMMAND_ID; a new logical company uses a fresh key and run reference.
The 201 response requires id, so capture that UUID directly. Do not list companies and select the first result. Inspect case_access and every case_submission_readiness.issue before attempting finalization; draft creation itself does not require readiness.

Create or reuse the delegated debtor

Use the Case Management API with the same X-On-Behalf-Of-Company header as the order. The company UUID never belongs in either JSON body. Each tab parses the exact returned debtor UUID and persists it as DEBTOR_ID.

3. Create a delegated Case draft

The company UUID belongs only in X-On-Behalf-Of-Company. Never add it to the JSON body. From the complete 201 order response, match exactly one claim whose your_reference equals CLAIM_REFERENCE; persist that claim’s id rather than taking a positional element.
X-On-Behalf-Of-Company is the only delegated tenant selector. There is no X-User-Id, public access_mode, per-company Partner secret, or public API key minting endpoint.

4. Verify through exact resource URLs

Read the company through the Partner API and the draft through the delegated Case Management API. Check each returned id; never use a response request ID as a resource identifier.

5. Runnable end-to-end workflow

Install requests, replace the inline PAYWISE_PARTNER_KEY placeholder, and run:
Python workflow
The workflow always stops at the valid draft boundary. Inspect WORKFLOW_RESULT["readiness"]; only a later finalization is gated on ready == true. No secret, authorization header, or credential is printed. For a production submission flow, resolve all readiness issues and then follow Submit cases for a company. Acceptance events are at least-once change signals. Match each stored claim UUID against claim_ids, then refetch /v2/claims/{claim_id}/. Trust the claim’s current order_id and mandate_id even if the event names a different order than the one originally submitted; do not reconstruct an order merge chain.