{"info":{"_postman_id":"7e93e738-0b30-4f79-a84a-0212b7cf9822","name":"CPS-API V1 Documentation","description":"<html><head></head><body><p>Case Processing System API documentation</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"43457039","collectionId":"7e93e738-0b30-4f79-a84a-0212b7cf9822","publishedId":"2sB3QDwsr1","public":true,"customColor":{"top-bar":"8750E5","right-sidebar":"303030","highlight":"29074A"},"publishDate":"2025-10-30T06:42:20.000Z"},"item":[{"name":"Introduction","item":[],"id":"55d23c44-691e-4293-ba9b-cb1390405e8e","description":"<h3 id=\"what-the-api-is-for\">What the API is for</h3>\n<p>The Case Processing System API (CPS-API) enables clients to integrate directly with Intrum's debt collection platform. It facilitates the full lifecycle of debt-related operations such as case registration, invoice transactions, payment tracking, credit note processing, and portfolio reconciliation. This version (V1) is built with a focus on security, scalability, and clarity, incorporating client feedback and enhancement recommendations.</p>\n<h3 id=\"audience\">Audience</h3>\n<p>This API is intended for:</p>\n<ul>\n<li><p>Clients of Intrum who want to automate debt registration and tracking</p>\n</li>\n<li><p>System integrators embedding Intrum’s debt processing capabilities into finance/ERP systems</p>\n</li>\n<li><p>Developers seeking to build robust, idempotent, and secure integrations with debt portfolios</p>\n</li>\n</ul>\n<h3 id=\"base-urls\">Base URLs</h3>\n<ul>\n<li><p>INT (Integration): <code>https://collection.test-api-intrum.ch/restServices/v1</code></p>\n</li>\n<li><p>PROD (Production): <code>https://collection.api-intrum.ch/restServices/v1</code></p>\n</li>\n</ul>\n<h3 id=\"https--security-principles\">HTTPS &amp; Security Principles</h3>\n<p>All requests to the CPS-API must be made over <strong>HTTPS</strong> to ensure data confidentiality and integrity.</p>\n<p>Requests that are not properly authenticated using OAuth 2.0 will be rejected with a <code>401 Unauthorized</code> response. All endpoints are designed with security-first principles, enforcing token-based access and client isolation through dedicated credentials.</p>\n","auth":{"type":"noauth","isInherited":false},"_postman_id":"55d23c44-691e-4293-ba9b-cb1390405e8e"},{"name":"Authentication","item":[],"id":"abd803cc-74ad-4bcc-8c80-9e1d9357065b","description":"<h3 id=\"oauth-20-client-credentials-flow\">OAuth 2.0 Client Credentials Flow</h3>\n<p>CPS-API V1 uses the <strong>OAuth 2.0 Client Credentials Grant</strong> to secure all API access. In this flow, applications authenticate using their client ID and client secret, and receive a time-limited access token to use in subsequent API requests.</p>\n<p>The client does not act on behalf of a user; it authenticates as itself. This ensures automation-friendly integration and robust server-to-server communication.</p>\n<h3 id=\"read-only-vs-readwrite-credentials\">Read-Only vs. Read/Write Credentials</h3>\n<p>Upon onboarding, clients may receive:</p>\n<ul>\n<li><p><strong>Read/Write credentials</strong>: Grant access to all POST and GET endpoints. Suitable for systems that need to submit cases, report payments, and interact with the API in full.</p>\n</li>\n<li><p><strong>Read-only credentials</strong>: Limit access to GET endpoints only. Ideal for systems that only need to query case statuses, invoice information, or fetch payment records for reporting or reconciliation.</p>\n</li>\n</ul>\n<p>Using separate credentials enhances security by applying the principle of least privilege.</p>\n<h3 id=\"token-urls\">Token URLs</h3>\n<p>Tokens must be retrieved by POSTing the credentials to one of the following URLs depending on environment:</p>\n<ul>\n<li><p><strong>Integration (INT)</strong>:<br />  <code>https://kc.intrum.com/auth/realms/debt-collection-api/protocol/openid-connect/token</code></p>\n</li>\n<li><p><strong>Production (PROD)</strong>:<br />  <code>https://kc.intrum.com/auth/realms/debt-collection-api/protocol/openid-connect/token</code></p>\n</li>\n</ul>\n<p><strong>Token requests must include:</strong></p>\n<ul>\n<li><p><code>grant_type=client_credentials</code></p>\n</li>\n<li><p><code>client_id=</code></p>\n</li>\n<li><p><code>client_secret=</code></p>\n</li>\n</ul>\n<p>If the token request is successful, the authorization server sends a response with the following properties:</p>\n<ul>\n<li><p><code>access_token</code>: access token to use in authorization header</p>\n</li>\n<li><p><code>token_type</code>: type of the token (in this case \"Bearer\")</p>\n</li>\n<li><p><code>expires_in</code>: Seconds until expiration of access token. After this period, a new access token must be requested.</p>\n</li>\n</ul>\n<h3 id=\"sample-token-header\">Sample Token Header</h3>\n<p>Once a token is retrieved, include it in the <code>Authorization</code> header of all requests:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n\n</code></pre>\n<p>Failure to include this header will result in a <code>401 Unauthorized</code> error.</p>\n<p>All endpoints require secure transport using HTTPS, and tokens must be renewed upon expiration (typically 300 seconds).</p>\n","auth":{"type":"noauth","isInherited":false},"_postman_id":"abd803cc-74ad-4bcc-8c80-9e1d9357065b"},{"name":"Errors","item":[],"id":"d10e73f5-cac5-437b-8b23-25803791fac4","description":"<h3 id=\"http-status-code-table\">HTTP Status Code Table</h3>\n<p>CPS-API V1 uses standard HTTP status codes to communicate the success or failure of each request. Clients should rely on these codes to implement robust error handling, retries, and user feedback mechanisms.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status Code</th>\n<th>Meaning</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>OK</td>\n<td>Request succeeded. Used for all GET requests.</td>\n</tr>\n<tr>\n<td>202</td>\n<td>Accepted</td>\n<td>Request accepted for asynchronous processing. <code>trackingId</code> is returned.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized</td>\n<td>Authentication token missing, expired, or invalid. Typically related to:  <br />- Missing Authorization header  <br />- Invalid access token  <br />- Expired token</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity</td>\n<td>Validation error. Request is syntactically correct but semantically invalid.</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Too Many Requests</td>\n<td>Rate limit exceeded. Includes <code>Retry-After</code> header.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error</td>\n<td>Unexpected error on the server side.</td>\n</tr>\n</tbody>\n</table>\n</div><p>By distinguishing these errors clearly, clients can optimize retry strategies and deliver helpful feedback to end users or system logs.</p>\n","auth":{"type":"noauth","isInherited":false},"_postman_id":"d10e73f5-cac5-437b-8b23-25803791fac4"},{"name":"Pagination","item":[],"id":"cbb3b854-c10a-4180-93af-364ef85e976e","description":"<h3 id=\"cursor-based-logic\">Cursor-based Logic</h3>\n<p>CPS-API V1 implements <strong>cursor-based pagination</strong> to efficiently manage and navigate large datasets. Instead of traditional page numbers, cursors like <code>startingAfter</code> and <code>endingBefore</code> are used to indicate the position in the dataset from which the next batch of results should be returned.</p>\n<p>This approach ensures reliable, deterministic paging even in dynamic datasets where new records might be added or updated between requests. It avoids the common pitfalls of offset-based pagination, such as missing or duplicated entries.</p>\n<p>Cursor-based pagination is particularly well-suited for automated polling and data synchronization between systems.</p>\n<h3 id=\"parameter-table\">Parameter Table</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>limit</code></td>\n<td>Integer</td>\n<td>Maximum number of items to return per page (default: 10, max: 100).</td>\n</tr>\n<tr>\n<td><code>startingAfter</code></td>\n<td>String</td>\n<td>Return results that come after the given record ID.</td>\n</tr>\n<tr>\n<td><code>endingBefore</code></td>\n<td>String</td>\n<td>Return results that come before the given record ID.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"role-of-hasmore\">Role of <code>hasMore</code></h3>\n<p>The response body includes a field named <code>hasMore</code>, which is a Boolean flag indicating whether more data is available beyond the current result set.</p>\n<p>This flag allows clients to determine whether they should issue additional requests using <code>startingAfter</code> or <code>endingBefore</code> to continue retrieving data.</p>\n<p>If <code>hasMore</code> is <code>false</code>, the client has reached the end of the available data.</p>\n<h3 id=\"best-practices-for-sync-jobs\">Best Practices for Sync Jobs</h3>\n<ul>\n<li><p>Always set a reasonable <code>limit</code> to control batch sizes and minimize latency.</p>\n</li>\n<li><p>Use <code>startingAfter</code> in combination with the ID of the last item received to safely paginate forward.</p>\n</li>\n<li><p>Avoid using both <code>startingAfter</code> and <code>endingBefore</code> in the same request.</p>\n</li>\n<li><p>Monitor <code>hasMore</code> to know when to stop paginating.</p>\n</li>\n</ul>\n<p>Following these patterns allows clients to build stable, incremental sync logic across large or frequently updated datasets.</p>\n","auth":{"type":"noauth","isInherited":false},"_postman_id":"cbb3b854-c10a-4180-93af-364ef85e976e"},{"name":"Idempotency","item":[],"id":"79503359-2a4b-4620-ad76-8faac1534877","description":"<h3 id=\"why-it-matters\">Why It Matters</h3>\n<p>In the context of distributed systems and API integrations, network issues, timeouts, or client-side retries can cause duplicate requests to be sent unintentionally. Without safeguards, this can lead to duplicated data entries, double financial transactions, or inconsistent system states.</p>\n<p>CPS-API V1 addresses this by supporting <strong>idempotency</strong> for all POST endpoints. This means that clients can safely retry a request without risk of reprocessing, as long as the same <code>Idempotency-Key</code> is used.</p>\n<p>This mechanism enhances integration reliability and prevents unintended side effects during failure recovery, automation retries, or system restarts.</p>\n<h3 id=\"example-usage\">Example Usage</h3>\n<p>Clients should include the <code>Idempotency-Key</code> header in all POST requests that mutate data:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST /invoice/payment HTTP/1.1\nAuthorization: Bearer &lt;access_token&gt;\nIdempotency-Key: 550e8400-e29b-41d4-a716-446655440000\nContent-Type: application/json\n\n</code></pre>\n<p>If a duplicate request is made using the same key, the API will return the <strong>original response</strong> from the first submission rather than executing the operation again.</p>\n<p>This ensures that retrying a payment or credit note submission will not double-book the transaction.</p>\n<h3 id=\"retention-policy-7-days\">Retention Policy (7 Days)</h3>\n<p>Each <code>Idempotency-Key</code> is stored for <strong>7 days</strong>. Within that window, if a request is repeated with the same key, the original response is returned.</p>\n<p>After 7 days, the key expires, and the request will be treated as new.</p>\n<h3 id=\"uuidv4-usage\">UUIDv4 Usage</h3>\n<p>It is highly recommended that the <code>Idempotency-Key</code> follow the <strong>UUIDv4</strong> format. This format ensures a high degree of uniqueness and helps prevent accidental collisions across distributed systems.</p>\n<p>Clients are advised to generate a new UUIDv4 for each unique business operation and retain it during retry cycles to preserve idempotency behavior.</p>\n","auth":{"type":"noauth","isInherited":false},"_postman_id":"79503359-2a4b-4620-ad76-8faac1534877"},{"name":"Rate Limiting","item":[],"id":"5e3f8bdd-2ce0-4cb1-a3a8-7dae0d6672ed","description":"<h3 id=\"100min-10000day\">100/min, 10,000/day</h3>\n<p>To ensure fair usage and maintain consistent API performance across all clients, CPS-API V1 enforces rate limiting. Each OAuth 2.0 client ID is subject to:</p>\n<ul>\n<li><p><strong>100 requests per minute</strong></p>\n</li>\n<li><p><strong>10,000 requests per day</strong></p>\n</li>\n</ul>\n<p>These limits help protect system stability and prevent abuse, especially in high-throughput or automated environments.</p>\n<h3 id=\"headers-returned\">Headers Returned</h3>\n<p>When clients approach or exceed rate limits, the API responds with an HTTP <code>429 Too Many Requests</code> status. To support automated backoff strategies, rate limit headers are included in the response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>X-RateLimit-Limit: 100\nX-RateLimit-Remaining: 0\nRetry-After: 60\n\n</code></pre><ul>\n<li><p><code>X-RateLimit-Limit</code> – The maximum number of allowed requests in the current window</p>\n</li>\n<li><p><code>X-RateLimit-Remaining</code> – The number of remaining allowed requests</p>\n</li>\n<li><p><code>Retry-After</code> – Number of seconds to wait before retrying</p>\n</li>\n<li><p>X-RateLimit-Reset – Unix timestamp (seconds since epoch, UTC) at which the rate limit will be reset</p>\n</li>\n</ul>\n<h3 id=\"how-to-throttle-clients\">How to Throttle Clients</h3>\n<p>Clients should implement throttling logic in their integration layer to avoid hitting these limits. Recommendations include:</p>\n<ul>\n<li><p>Monitor the <code>X-RateLimit-Remaining</code> header and dynamically reduce request frequency as the threshold nears.</p>\n</li>\n<li><p>Use exponential backoff and retry after the duration specified in <code>Retry-After</code>.</p>\n</li>\n<li><p>Distribute requests over time, particularly during automated sync jobs or batch processing.</p>\n</li>\n</ul>\n<p>Respecting rate limits not only ensures uninterrupted access to CPS-API but also contributes to a stable, shared integration ecosystem for all clients.</p>\n","auth":{"type":"noauth","isInherited":false},"_postman_id":"5e3f8bdd-2ce0-4cb1-a3a8-7dae0d6672ed"},{"name":"API Capabilities","item":[],"id":"7516bf95-2415-4a63-a088-d9a3c13c24ae","description":"<h3 id=\"whats-allowed--not-allowed\">What’s Allowed / Not Allowed</h3>\n<p>CPS-API V1 enables a set of well-defined, secure operations for managing debt collection cases and related financial events. Clients can:</p>\n<ul>\n<li><p>Register new debt collection cases, including customer and invoice data</p>\n</li>\n<li><p>Submit follow-up transactions such as payments, credit notes, or invoice withdrawals</p>\n</li>\n<li><p>Query case and invoice statuses</p>\n</li>\n<li><p>Retrieve financial transactions journalized by Intrum</p>\n</li>\n<li><p>Poll for asynchronous processing results using tracking IDs</p>\n</li>\n</ul>\n<p><strong>Not allowed:</strong></p>\n<ul>\n<li><p>Modifying an existing case once registered (only follow-up transactions like credit notes can affect financial position)</p>\n</li>\n<li><p>Submitting incomplete or partial records (required fields must be fully provided)</p>\n</li>\n<li><p>Interacting directly with legal or escalated processes – these are managed internally by Intrum</p>\n</li>\n<li><p>Submitting data in a synchronous expectation when endpoints are explicitly asynchronous (e.g., expecting immediate confirmation of case creation)</p>\n</li>\n</ul>\n<h3 id=\"design-assumptions\">Design Assumptions</h3>\n<p>The API is designed with the following principles in mind:</p>\n<ul>\n<li><p><strong>Asynchronous submission model:</strong> Several operations are processed in the background and confirmed via <code>/tracking</code></p>\n</li>\n<li><p><strong>Idempotency and fault tolerance:</strong> To support retries and system resilience</p>\n</li>\n<li><p><strong>Security and isolation:</strong> Clients are scoped by credentials and access rights</p>\n</li>\n<li><p><strong>Minimal impact for existing clients:</strong> New features and endpoints should not require major integration rewrites</p>\n</li>\n</ul>\n<h3 id=\"limitations\">Limitations</h3>\n<ul>\n<li><p>Cases cannot be deleted or fully reset once registered; lifecycle management must be done through updates and closures</p>\n</li>\n<li><p>The API enforces strict schema validation and will reject loosely defined JSON payloads</p>\n</li>\n<li><p>There is no built-in sandbox mode – testing must occur against the integration environment</p>\n</li>\n</ul>\n<p>These boundaries are in place to ensure consistency, traceability, and compliance with operational and regulatory standards.</p>\n","auth":{"type":"noauth","isInherited":false},"_postman_id":"7516bf95-2415-4a63-a088-d9a3c13c24ae"},{"name":"Glossary","item":[],"id":"303d1ef8-3534-4888-a47b-3384cf6b0be7","description":"<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Term</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Asynchronous Operation</strong></td>\n<td>An API call that is accepted for background processing. Immediately returns a response with a <code>trackingId</code> to poll for results later.</td>\n</tr>\n<tr>\n<td><strong>Case</strong></td>\n<td>A collection of one or more unpaid invoices registered under a unique customer, forming the basis for debt collection activity. Each case is assigned a case number upon successful registration.</td>\n</tr>\n<tr>\n<td><strong>Case Number</strong></td>\n<td>The internal identifier assigned by Intrum when a case is successfully created. Used to reference the case in queries and follow-up transactions.</td>\n</tr>\n<tr>\n<td><strong>CollectionSubId</strong></td>\n<td>An identifier used by clients to distinguish between different collection portfolios.</td>\n</tr>\n<tr>\n<td><strong>Contract ID</strong></td>\n<td>An optional reference used by clients to associate an invoice with a specific client contract.</td>\n</tr>\n<tr>\n<td><strong>Credit Note</strong></td>\n<td>A financial adjustment that reduces the open amount of a submitted invoice. It can be applied post-registration via a dedicated endpoint and is always to be provided in context of an invoice.</td>\n</tr>\n<tr>\n<td><strong>Customer Reference</strong></td>\n<td>A client-side identifier used to correlate cases and invoices with the originating system. Is also used in the communication with the customer, hence should be a reference that can be recognized by the customer.</td>\n</tr>\n<tr>\n<td><strong>Idempotency Key</strong></td>\n<td>A client-generated UUID used to identify and safely retry POST requests. Ensures only one operation is processed per key. Retained for 7 days.</td>\n</tr>\n<tr>\n<td><strong>Invoice</strong></td>\n<td>A single monetary claim against a customer, identified by an invoice number and optionally enriched with metadata. Invoices are the financial building blocks within a case.</td>\n</tr>\n<tr>\n<td><strong>Invoice Number</strong></td>\n<td>A mandatory field that uniquely identifies each invoice within a client’s portfolio. The CPS-API validates uniqueness per client and rejects duplicates to ensure data integrity.</td>\n</tr>\n<tr>\n<td><strong>Item ID</strong></td>\n<td>A client-defined unique identifier representing a specific invoice item in ERPs. Used to target individual items for payments, credit notes, or withdrawals, instead of the invoice number.</td>\n</tr>\n<tr>\n<td><strong>Journalization Date</strong></td>\n<td>The date Intrum officially books a payment into its accounting records. Appears in <code>/payments</code> results.</td>\n</tr>\n<tr>\n<td><strong>Limit / Pagination Parameters</strong></td>\n<td>Parameters such as <code>limit</code>, <code>startingAfter</code>, and <code>endingBefore</code> used to control and navigate paginated data responses.</td>\n</tr>\n<tr>\n<td><strong>Operation Result</strong></td>\n<td>A standardized object returned when querying a <code>trackingId</code>, representing the success, failure, or in-progress state of an asynchronous operation.</td>\n</tr>\n<tr>\n<td><strong>Payment ID</strong></td>\n<td>A unique identifier assigned by the client when reporting a direct payment. Required to ensure traceability and for referencing in reversals. Must be unique within the client’s system.</td>\n</tr>\n<tr>\n<td><strong>QR Reference</strong></td>\n<td>A structured payment reference used in the Swiss payment ecosystem for efficient matching and reconciliation. The system validates the correctness of the QR Reference provided.</td>\n</tr>\n<tr>\n<td><strong>Segmentation</strong></td>\n<td>A classification label used to group or route cases for processing, analytics, or prioritization purposes. Provided during case registration.</td>\n</tr>\n<tr>\n<td><strong>Tracking ID</strong></td>\n<td>A unique identifier returned by the API for each asynchronous POST request. It is used to retrieve the final processing status of the submitted operation via the <code>/tracking</code> endpoint.</td>\n</tr>\n<tr>\n<td><strong>Withdrawal</strong></td>\n<td>The act of retracting an invoice from the collection process. This can be initiated via a dedicated withdrawal endpoint and requires a reason code.</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"noauth","isInherited":false},"_postman_id":"303d1ef8-3534-4888-a47b-3384cf6b0be7"},{"name":"Change Log","item":[],"id":"ba351366-2562-4f59-bce7-d8a882265202","description":"<h3 id=\"version-history\">Version History</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Version</th>\n<th>Date</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>v1.0.0</td>\n<td>2025-04-01</td>\n<td>Initial public draft version. Introduced OAuth2.0, async operations, idempotency, tracking, and full portfolio &amp; invoice lifecycle support.</td>\n</tr>\n<tr>\n<td>v1.0.0</td>\n<td>2025-05-28</td>\n<td>Corrected: Replaced response field <code>amount</code> with <code>paidInvoiceAmount</code> and <code>paidClientCostAmount</code> in <code>/portfolio/payments</code>.</td>\n</tr>\n<tr>\n<td>v1.0.0</td>\n<td>2025-09-10</td>\n<td>Added caseNumber as response field to /portfolio/statusUpdate</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"backward-compatibility-notes\">Backward Compatibility Notes</h3>\n<ul>\n<li><p>The API is designed with <strong>non-breaking change principles</strong>.</p>\n</li>\n<li><p>All new endpoints or fields will be <strong>additive</strong> in nature.</p>\n</li>\n<li><p>No optional fields will become required in future versions, as this would break existing integrations. Required fields may become optional if it enhances flexibility without affecting current clients.</p>\n</li>\n<li><p>Deprecation of endpoints, if necessary, will follow a communicated lifecycle including:</p>\n<ul>\n<li><p><strong>Deprecation announcement</strong> with timeline</p>\n</li>\n<li><p>Continued support for at least <strong>6 months</strong> post-announcement</p>\n</li>\n<li><p>Optional feature flags or version negotiation mechanisms if adopted</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Future enhancements (e.g., customer-level endpoints, webhooks support, reporting APIs) will be released under version <code>v1.x</code> as long as they do not break existing integrations.</p>\n<p>For any breaking changes, a major version bump to <code>v2.0</code> will be applied with migration guidance.</p>\n","auth":{"type":"noauth","isInherited":false},"_postman_id":"ba351366-2562-4f59-bce7-d8a882265202"},{"name":"portfolio","item":[{"name":"registration","item":[{"name":"/portfolio/registration","id":"ab4ad159-5814-458f-88f8-76bff53d2b52","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"claimType\": \"DEL\",\n  \"customer\": {\n    \"address\": {\n      \"countryCode\": \"BG\",\n      \"street\": \"<string>\",\n      \"town\": \"<string>\",\n      \"zipCode\": \"<string>\",\n      \"houseNumber\": \"<string>\",\n      \"coAddress\": \"<string>\"\n    },\n    \"customerReference\": \"<string>\",\n    \"customerType\": \"COMPANY\",\n    \"customerVATNumber\": \"<string>\",\n    \"companyRegistrationNumber\": \"<string>\",\n    \"companyName\": \"<string>\",\n    \"language\": \"UNKNOWN\",\n    \"lastName\": \"<string>\",\n    \"firstName\": \"<string>\",\n    \"middleName\": \"<string>\",\n    \"phoneNumber\": \"<string>\",\n    \"email\": \"<string>\",\n    \"mobileNumber\": \"<string>\",\n    \"gender\": \"MALE\",\n    \"birthdate\": \"<date>\"\n  },\n  \"invoices\": [\n    {\n      \"dueDate\": \"<date>\",\n      \"invoiceClaimedAmount\": \"<double>\",\n      \"invoiceDate\": \"<date>\",\n      \"invoiceNumber\": \"<string>\",\n      \"invoiceClientCosts\": \"<double>\",\n      \"interestRate\": \"<double>\",\n      \"attachments\": [\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        },\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        }\n      ],\n      \"invoiceAttributes\": [\n        {\n          \"attributeType\": \"contractId\",\n          \"attributeValue\": \"<string>\"\n        },\n        {\n          \"attributeType\": \"internalCustomerId\",\n          \"attributeValue\": \"<string>\"\n        }\n      ]\n    },\n    {\n      \"dueDate\": \"<date>\",\n      \"invoiceClaimedAmount\": \"<double>\",\n      \"invoiceDate\": \"<date>\",\n      \"invoiceNumber\": \"<string>\",\n      \"invoiceClientCosts\": \"<double>\",\n      \"interestRate\": \"<double>\",\n      \"attachments\": [\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        },\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"FIRST_REMINDER\"\n        }\n      ],\n      \"invoiceAttributes\": [\n        {\n          \"attributeType\": \"qrReference\",\n          \"attributeValue\": \"<string>\"\n        },\n        {\n          \"attributeType\": \"contractId\",\n          \"attributeValue\": \"<string>\"\n        }\n      ]\n    }\n  ],\n  \"currency\": \"MUR\",\n  \"clientRef\": \"<string>\",\n  \"claimConcern\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/registration","description":"<h2 id=\"endpoint\">Endpoint</h2>\n<p><strong>URL:</strong> <code>POST /portfolio/registration</code></p>\n<p><strong>Environment URLs:</strong></p>\n<ul>\n<li><p><strong>Integration (INT):</strong> <code>https://collection.test-api-intrum.ch/restServices/v1/portfolio/registration</code></p>\n</li>\n<li><p><strong>Production (PROD):</strong> <code>https://collection.api-intrum.ch/restServices/v1/portfolio/registration</code></p>\n</li>\n</ul>\n<p><strong>Authentication:</strong> OAuth 2.0 (Client Credentials Flow) – <code>Authorization: Bearer</code></p>\n<p><strong>Idempotency:</strong> Supported via <code>Idempotency-Key</code> header (UUIDv4 recommended). Keys remain valid for 7 days.</p>\n<h2 id=\"headers\">Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>string</td>\n<td>Yes</td>\n<td>Bearer token obtained via OAuth2.0</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>string</td>\n<td>Yes</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Accept</td>\n<td>string</td>\n<td>Yes</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Idempotency-Key</td>\n<td>string</td>\n<td>No</td>\n<td>UUIDv4 key to ensure safe retries</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"request-body-schema\">Request Body Schema</h2>\n<p>Top-level attributes:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>claimType</td>\n<td>string</td>\n<td>Yes</td>\n<td>Defines the nature of the claim. Must match one of the supported values listed below.</td>\n</tr>\n<tr>\n<td>claimConcern</td>\n<td>string</td>\n<td>No</td>\n<td>Description or reason for the claim</td>\n</tr>\n<tr>\n<td>clientRef</td>\n<td>string</td>\n<td>No</td>\n<td>Logical client identifier used to determine the target tenant within the collection system. The value must be agreed upon with Intrum prior to go-live.</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>string</td>\n<td>Yes</td>\n<td>ISO-4217 currency code (e.g., \"CHF\")</td>\n</tr>\n<tr>\n<td>customer</td>\n<td>Object</td>\n<td>Yes</td>\n<td>Customer details (see below)</td>\n</tr>\n<tr>\n<td>inovices</td>\n<td>arry of objects</td>\n<td>Yes</td>\n<td>List of invoices/claims being submitted (see below)</td>\n</tr>\n</tbody>\n</table>\n</div><p>Supported <code>claimType</code> Values:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>INV</td>\n<td>Invoice</td>\n</tr>\n<tr>\n<td>DEL</td>\n<td>Delivery of Goods</td>\n</tr>\n<tr>\n<td>MED</td>\n<td>Medical Invoice</td>\n</tr>\n<tr>\n<td>ACC</td>\n<td>Account Statement</td>\n</tr>\n<tr>\n<td>PUR</td>\n<td>Purchase Agreement</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"customer-object\"><code>customer</code> Object</h3>\n<p><em>Note: Fields marked as \"Expected when customerType = X\" are not required, but strongly recommended for optimal processing. They should be included based on the customer classification.</em></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>customerReference</td>\n<td>string</td>\n<td>Yes</td>\n<td>Client-side ID that identifies the customer</td>\n</tr>\n<tr>\n<td>customerType</td>\n<td>string</td>\n<td>No</td>\n<td>Enum: <code>PERSON</code>, <code>COMPANY</code>; defines customer category</td>\n</tr>\n<tr>\n<td>companyName</td>\n<td>string</td>\n<td>Conditionally</td>\n<td>Expected when customerType = COMPANY</td>\n</tr>\n<tr>\n<td>companyRegistrationNumber</td>\n<td>string</td>\n<td>No</td>\n<td>Business registry number</td>\n</tr>\n<tr>\n<td>customerVATNumber</td>\n<td>string</td>\n<td>No</td>\n<td>VAT identifier</td>\n</tr>\n<tr>\n<td>language</td>\n<td>string</td>\n<td>No</td>\n<td>ISO 639-1 – allowed values: <code>DE</code>, <code>EN</code>, <code>FR</code>, <code>IT</code></td>\n</tr>\n<tr>\n<td>firstName</td>\n<td>string</td>\n<td>Conditionally</td>\n<td>Expected when customerType = PERSON</td>\n</tr>\n<tr>\n<td>middleName</td>\n<td>string</td>\n<td>No</td>\n<td>Optional if customerType is PERSON</td>\n</tr>\n<tr>\n<td>lastName</td>\n<td>string</td>\n<td>Conditionally</td>\n<td>Expected when customerType = PERSON</td>\n</tr>\n<tr>\n<td>birthdate</td>\n<td>date</td>\n<td>No</td>\n<td>Optional birth date (Format: YYYY-MM-DD).  <br />Only applicable when customerType = PERSON</td>\n</tr>\n<tr>\n<td>gender</td>\n<td>string</td>\n<td>No</td>\n<td>Enum: <code>MALE</code>, <code>FEMALE</code>, <code>UNKNOWN</code>  <br />Only applicable when customerType = PERSON</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>string</td>\n<td>No</td>\n<td>Validated E.164 format (e.g., <code>+41791234567</code>)</td>\n</tr>\n<tr>\n<td>mobileNumber</td>\n<td>string</td>\n<td>No</td>\n<td>Validated E.164 format (e.g., <code>+41791234567</code>)</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>No</td>\n<td>Email address</td>\n</tr>\n<tr>\n<td>address</td>\n<td>object</td>\n<td>Yes</td>\n<td>Full postal address (see below)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"address-sub-object\"><code>address</code> Sub-Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>street</td>\n<td>string</td>\n<td>Yes</td>\n<td>Street name</td>\n</tr>\n<tr>\n<td>houseNumber</td>\n<td>string</td>\n<td>No</td>\n<td>House number or suffix</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>string</td>\n<td>Yes</td>\n<td>Postal/ZIP code</td>\n</tr>\n<tr>\n<td>town</td>\n<td>string</td>\n<td>Yes</td>\n<td>Town or city</td>\n</tr>\n<tr>\n<td>countryCode</td>\n<td>string</td>\n<td>Yes</td>\n<td>ISO 3166-1 alpha-2 code (e.g., <code>CH</code>, <code>DE</code>)</td>\n</tr>\n<tr>\n<td>coAddress</td>\n<td>string</td>\n<td>No</td>\n<td>Care-of address or secondary delivery reference</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"invoices-array\"><code>invoices[]</code> Array</h3>\n<p>Each invoice includes:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>invoiceNumber</td>\n<td>string</td>\n<td>Yes</td>\n<td>Unique invoice identifier</td>\n</tr>\n<tr>\n<td>invoiceDate</td>\n<td>date</td>\n<td>Yes</td>\n<td>Format: YYYY-MM-DD</td>\n</tr>\n<tr>\n<td>dueDate</td>\n<td>date</td>\n<td>Yes</td>\n<td>Format: YYYY-MM-DD</td>\n</tr>\n<tr>\n<td>invoiceClaimedAmount</td>\n<td>number</td>\n<td>Yes</td>\n<td>Amount owed</td>\n</tr>\n<tr>\n<td>invoiceClientCosts</td>\n<td>number</td>\n<td>No</td>\n<td>Additional client-side charges</td>\n</tr>\n<tr>\n<td>interestRate</td>\n<td>number</td>\n<td>No</td>\n<td>Interest applied annually (% value)</td>\n</tr>\n<tr>\n<td>attachments</td>\n<td>array</td>\n<td>No</td>\n<td>Supporting documents (see below)</td>\n</tr>\n<tr>\n<td>invoiceAttributes</td>\n<td>array</td>\n<td>No</td>\n<td>Attributes like <code>itemId</code>, <code>contractId</code>, <code>qrReference (see below)</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"attachments-array\"><code>attachments[]</code> Array</h3>\n<p><em>Note: The</em> <code>_attachments[]_</code> <em>array is optional. However, when attachments are included, all listed fields become mandatory for each item.</em></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>filename</td>\n<td>string</td>\n<td>Yes</td>\n<td>Name of the file being submitted</td>\n</tr>\n<tr>\n<td>url</td>\n<td>string</td>\n<td>Yes</td>\n<td>Direct link to the document, must be accessible during processing</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>Yes</td>\n<td>Enum: <code>ORIGINAL_INVOICE</code>, <code>FIRST_REMINDER</code>, <code>LAST_REMINDER</code>, <code>CONTRACT</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"invoiceattributes-array\"><code>invoiceAttributes[]</code> Array</h3>\n<p><em>Note: The</em> <code>_invoiceAttributes[]_</code> <em>array is optional. However, when attachments are included, all listed fields become mandatory for each item.</em></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>attributeType</td>\n<td>string</td>\n<td>Yes</td>\n<td>Enum: <code>itemId</code>, <code>contractId</code>, <code>qrReference</code>, <code>internalCustomerId</code>, <code>segmentation</code>, <code>billingAccount</code>, <code>collectionSubId</code></td>\n</tr>\n<tr>\n<td>attributeValue</td>\n<td>string</td>\n<td>Yes</td>\n<td>Corresponding value for the attributeType. Must be unique and meaningful in the context of the claim.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"attributetype-glossary\"><code>attributeType</code> Glossary</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>itemId</code></td>\n<td>Unique open item identifier from the client's system, uniqueness is validated upon submission</td>\n</tr>\n<tr>\n<td><code>contractId</code></td>\n<td>Contract number or reference associated with the invoice</td>\n</tr>\n<tr>\n<td><code>qrReference</code></td>\n<td>Swiss QR-bill compatible reference number, validated upon submission</td>\n</tr>\n<tr>\n<td><code>internalCustomerId</code></td>\n<td>Internal system-specific identifier for the customer (not shown to end customers)</td>\n</tr>\n<tr>\n<td><code>segmentation</code></td>\n<td>Custom grouping identifier used by the client for routing or analytics</td>\n</tr>\n<tr>\n<td><code>billingAccount</code></td>\n<td>Account identifier used for internal billing purposes</td>\n</tr>\n<tr>\n<td><code>collectionSubId</code></td>\n<td>Identifier for mapping debt to a specific collection configuration or sub-portfolio</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"processing-model\">Processing Model</h2>\n<ul>\n<li><p><strong>Asynchronous:</strong> Clients receive a <code>trackingId</code> and must poll <code>/tracking</code> to monitor processing status (e.g., REGISTERED, IN PROGRESS, COMPLETED, FAILED).</p>\n</li>\n<li><p><strong>Retention:</strong> Tracking data is retained for 90 days.</p>\n</li>\n</ul>\n<h2 id=\"best-practices\">Best Practices</h2>\n<ul>\n<li><p>Ensure uniqueness of <code>invoiceNumber</code> and <code>itemId</code> per client portfolio.</p>\n</li>\n<li><p>Always include <code>Idempotency-Key</code> on retries to prevent unintended duplicates.</p>\n</li>\n<li><p>Include all mandatory address fields and comply with ISO standards for codes.</p>\n</li>\n</ul>\n","urlObject":{"path":["portfolio","registration"],"host":["https://collection.test-api-intrum.ch/restServices/v1"],"query":[],"variable":[]}},"response":[{"id":"b8ea6417-57b5-4e1a-83f6-92a0e74a5389","name":"successful request","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"claimType\": \"DEL\",\n  \"customer\": {\n    \"address\": {\n      \"countryCode\": \"BG\",\n      \"street\": \"<string>\",\n      \"town\": \"<string>\",\n      \"zipCode\": \"<string>\",\n      \"houseNumber\": \"<string>\",\n      \"coAddress\": \"<string>\"\n    },\n    \"customerReference\": \"<string>\",\n    \"customerType\": \"COMPANY\",\n    \"customerVATNumber\": \"<string>\",\n    \"companyRegistrationNumber\": \"<string>\",\n    \"companyName\": \"<string>\",\n    \"language\": \"UNKNOWN\",\n    \"lastName\": \"<string>\",\n    \"firstName\": \"<string>\",\n    \"middleName\": \"<string>\",\n    \"phoneNumber\": \"<string>\",\n    \"email\": \"<string>\",\n    \"mobileNumber\": \"<string>\",\n    \"gender\": \"MALE\",\n    \"birthdate\": \"<date>\"\n  },\n  \"invoices\": [\n    {\n      \"dueDate\": \"<date>\",\n      \"invoiceClaimedAmount\": \"<double>\",\n      \"invoiceDate\": \"<date>\",\n      \"invoiceNumber\": \"<string>\",\n      \"invoiceClientCosts\": \"<double>\",\n      \"interestRate\": \"<double>\",\n      \"attachments\": [\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        },\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        }\n      ],\n      \"invoiceAttributes\": [\n        {\n          \"attributeType\": \"contractId\",\n          \"attributeValue\": \"<string>\"\n        },\n        {\n          \"attributeType\": \"internalCustomerId\",\n          \"attributeValue\": \"<string>\"\n        }\n      ]\n    },\n    {\n      \"dueDate\": \"<date>\",\n      \"invoiceClaimedAmount\": \"<double>\",\n      \"invoiceDate\": \"<date>\",\n      \"invoiceNumber\": \"<string>\",\n      \"invoiceClientCosts\": \"<double>\",\n      \"interestRate\": \"<double>\",\n      \"attachments\": [\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        },\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"FIRST_REMINDER\"\n        }\n      ],\n      \"invoiceAttributes\": [\n        {\n          \"attributeType\": \"qrReference\",\n          \"attributeValue\": \"<string>\"\n        },\n        {\n          \"attributeType\": \"contractId\",\n          \"attributeValue\": \"<string>\"\n        }\n      ]\n    }\n  ],\n  \"currency\": \"MUR\",\n  \"clientRef\": \"<string>\",\n  \"claimConcern\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://dev.test-api-intrum.ch/restServices/v1/portfolio/registration"},"status":"Accepted","code":202,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"trackingId\": \"<integer>\",\n  \"message\": \"<string>\"\n}"},{"id":"a3dded2f-b389-4a67-ad84-5fd20a8e626f","name":"authentication issue","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"claimType\": \"DEL\",\n  \"customer\": {\n    \"address\": {\n      \"countryCode\": \"BG\",\n      \"street\": \"<string>\",\n      \"town\": \"<string>\",\n      \"zipCode\": \"<string>\",\n      \"houseNumber\": \"<string>\",\n      \"coAddress\": \"<string>\"\n    },\n    \"customerReference\": \"<string>\",\n    \"customerType\": \"COMPANY\",\n    \"customerVATNumber\": \"<string>\",\n    \"companyRegistrationNumber\": \"<string>\",\n    \"companyName\": \"<string>\",\n    \"language\": \"UNKNOWN\",\n    \"lastName\": \"<string>\",\n    \"firstName\": \"<string>\",\n    \"middleName\": \"<string>\",\n    \"phoneNumber\": \"<string>\",\n    \"email\": \"<string>\",\n    \"mobileNumber\": \"<string>\",\n    \"gender\": \"MALE\",\n    \"birthdate\": \"<date>\"\n  },\n  \"invoices\": [\n    {\n      \"dueDate\": \"<date>\",\n      \"invoiceClaimedAmount\": \"<double>\",\n      \"invoiceDate\": \"<date>\",\n      \"invoiceNumber\": \"<string>\",\n      \"invoiceClientCosts\": \"<double>\",\n      \"interestRate\": \"<double>\",\n      \"attachments\": [\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        },\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        }\n      ],\n      \"invoiceAttributes\": [\n        {\n          \"attributeType\": \"contractId\",\n          \"attributeValue\": \"<string>\"\n        },\n        {\n          \"attributeType\": \"internalCustomerId\",\n          \"attributeValue\": \"<string>\"\n        }\n      ]\n    },\n    {\n      \"dueDate\": \"<date>\",\n      \"invoiceClaimedAmount\": \"<double>\",\n      \"invoiceDate\": \"<date>\",\n      \"invoiceNumber\": \"<string>\",\n      \"invoiceClientCosts\": \"<double>\",\n      \"interestRate\": \"<double>\",\n      \"attachments\": [\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        },\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"FIRST_REMINDER\"\n        }\n      ],\n      \"invoiceAttributes\": [\n        {\n          \"attributeType\": \"qrReference\",\n          \"attributeValue\": \"<string>\"\n        },\n        {\n          \"attributeType\": \"contractId\",\n          \"attributeValue\": \"<string>\"\n        }\n      ]\n    }\n  ],\n  \"currency\": \"MUR\",\n  \"clientRef\": \"<string>\",\n  \"claimConcern\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/registration"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Access denied\"\n}"},{"id":"1fe816eb-1b47-4629-bcaa-bfc5716e1767","name":"error","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"claimType\": \"DEL\",\n  \"customer\": {\n    \"address\": {\n      \"countryCode\": \"BG\",\n      \"street\": \"<string>\",\n      \"town\": \"<string>\",\n      \"zipCode\": \"<string>\",\n      \"houseNumber\": \"<string>\",\n      \"coAddress\": \"<string>\"\n    },\n    \"customerReference\": \"<string>\",\n    \"customerType\": \"COMPANY\",\n    \"customerVATNumber\": \"<string>\",\n    \"companyRegistrationNumber\": \"<string>\",\n    \"companyName\": \"<string>\",\n    \"language\": \"UNKNOWN\",\n    \"lastName\": \"<string>\",\n    \"firstName\": \"<string>\",\n    \"middleName\": \"<string>\",\n    \"phoneNumber\": \"<string>\",\n    \"email\": \"<string>\",\n    \"mobileNumber\": \"<string>\",\n    \"gender\": \"MALE\",\n    \"birthdate\": \"<date>\"\n  },\n  \"invoices\": [\n    {\n      \"dueDate\": \"<date>\",\n      \"invoiceClaimedAmount\": \"<double>\",\n      \"invoiceDate\": \"<date>\",\n      \"invoiceNumber\": \"<string>\",\n      \"invoiceClientCosts\": \"<double>\",\n      \"interestRate\": \"<double>\",\n      \"attachments\": [\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        },\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        }\n      ],\n      \"invoiceAttributes\": [\n        {\n          \"attributeType\": \"contractId\",\n          \"attributeValue\": \"<string>\"\n        },\n        {\n          \"attributeType\": \"internalCustomerId\",\n          \"attributeValue\": \"<string>\"\n        }\n      ]\n    },\n    {\n      \"dueDate\": \"<date>\",\n      \"invoiceClaimedAmount\": \"<double>\",\n      \"invoiceDate\": \"<date>\",\n      \"invoiceNumber\": \"<string>\",\n      \"invoiceClientCosts\": \"<double>\",\n      \"interestRate\": \"<double>\",\n      \"attachments\": [\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"ORIGINAL_INVOICE\"\n        },\n        {\n          \"filename\": \"<string>\",\n          \"url\": \"<string>\",\n          \"type\": \"FIRST_REMINDER\"\n        }\n      ],\n      \"invoiceAttributes\": [\n        {\n          \"attributeType\": \"qrReference\",\n          \"attributeValue\": \"<string>\"\n        },\n        {\n          \"attributeType\": \"contractId\",\n          \"attributeValue\": \"<string>\"\n        }\n      ]\n    }\n  ],\n  \"currency\": \"MUR\",\n  \"clientRef\": \"<string>\",\n  \"claimConcern\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/registration"},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"<string>\"\n}"}],"_postman_id":"ab4ad159-5814-458f-88f8-76bff53d2b52"}],"id":"f7604a0c-b307-436e-abf9-7f268cb76459","description":"<h2 id=\"overview\">Overview</h2>\n<p>The <code>POST /portfolio/registration</code> endpoint is used to register new outstanding debts for collection. This is the primary method by which clients submit cases comprising customer, invoice, and claim-related data to Intrum’s Case Processing System (CPS). All submitted requests are processed asynchronously and return a <code>trackingId</code> for status monitoring via the <code>/tracking</code> endpoint.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"692ef8bb-a8b6-4451-8f8a-d2a185520d42","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"cc44b65f-cdd5-4d81-99b3-af63b525c3b8","type":"text/javascript","exec":[""]}}],"_postman_id":"f7604a0c-b307-436e-abf9-7f268cb76459"},{"name":"query","item":[{"name":"/portfolio/query","id":"d3c13fe8-e83b-449c-acf8-649d7738213d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/query?caseNumber=<integer>&customerReference=<string>&minClaimed=<number>&maxClaimed=<number>&caseOpeningDateFrom=<date>&caseOpeningDateTo=<date>&addProductHistory=false&addStatusHistory=false&startingAfter=<string>&endingBefore=<string>&limit=10","description":"<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>URL:</strong> <code>GET /portfolio/query</code></p>\n<p><strong>Environment URLs:</strong></p>\n<ul>\n<li><p><strong>Integration (INT):</strong> <code>https://collection.test-api-intrum.ch/restServices/v1/portfolio/query</code></p>\n</li>\n<li><p><strong>Production (PROD):</strong> <code>https://collection.api-intrum.ch/restServices/v1/portfolio/query</code></p>\n</li>\n</ul>\n<p><strong>Authentication:</strong> OAuth 2.0 (Client Credentials Flow)</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>caseNumber</td>\n<td>integer</td>\n<td>No</td>\n<td>Unique identifier for a registered case</td>\n</tr>\n<tr>\n<td>customerReference</td>\n<td>string</td>\n<td>No</td>\n<td>External reference used by client to identify the customer</td>\n</tr>\n<tr>\n<td>minClaimed</td>\n<td>number</td>\n<td>No</td>\n<td>Minimum claimed amount for the case</td>\n</tr>\n<tr>\n<td>maxClaimed</td>\n<td>number</td>\n<td>No</td>\n<td>Maximum claimed amount for the case</td>\n</tr>\n<tr>\n<td>caseOpeningDateFrom</td>\n<td>date</td>\n<td>No</td>\n<td>Start date for case opening (YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>caseOpeningDateTo</td>\n<td>date</td>\n<td>No</td>\n<td>End date for case opening (YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>startingAfter</td>\n<td>string</td>\n<td>No</td>\n<td>Cursor for forward pagination based on last result ID, using caseNumber</td>\n</tr>\n<tr>\n<td>endingBefore</td>\n<td>string</td>\n<td>No</td>\n<td>Cursor for backward pagination, using caseNumber</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>integer</td>\n<td>No</td>\n<td>Max number of records per page (default: 10, max: 100)</td>\n</tr>\n<tr>\n<td>addProductHistory</td>\n<td>Boolean</td>\n<td>No</td>\n<td>If true, includes product assignment history in the response. FALSE by default.</td>\n</tr>\n<tr>\n<td>addStatusHistory</td>\n<td>Boolean</td>\n<td>No</td>\n<td>If true, includes status transitions over time in the response. FALSE by default</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>caseNumber</td>\n<td>integer</td>\n<td>Unique case identifier</td>\n</tr>\n<tr>\n<td>caseOpeningDate</td>\n<td>date</td>\n<td>Date when the case was opened (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>customerReference</td>\n<td>string</td>\n<td>External customer reference used by the client</td>\n</tr>\n<tr>\n<td>customerName</td>\n<td>string</td>\n<td>Name of the customer</td>\n</tr>\n<tr>\n<td>interestCalculationDate</td>\n<td>date</td>\n<td>Date used for interest calculation (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>claimConcern</td>\n<td>string</td>\n<td>Client-provided reason or description of the claim</td>\n</tr>\n<tr>\n<td>currentProductCode</td>\n<td>integer</td>\n<td>Code of the currently assigned collection product</td>\n</tr>\n<tr>\n<td>productDescription</td>\n<td>string</td>\n<td>Human-readable label of the product</td>\n</tr>\n<tr>\n<td>currentMainStatusCode</td>\n<td>integer</td>\n<td>This field contains the aggregated status of the case, providing a normalized view of its current processing state</td>\n</tr>\n<tr>\n<td>mainStatusDescription</td>\n<td>string</td>\n<td>Description of the main case status</td>\n</tr>\n<tr>\n<td>currentDetailStatusCode</td>\n<td>integer</td>\n<td>Detailed status code reflecting the current operational stage of the case</td>\n</tr>\n<tr>\n<td>detailStatusDescription</td>\n<td>string</td>\n<td>Description of the detailed case status</td>\n</tr>\n<tr>\n<td>closingDate</td>\n<td>string</td>\n<td>Date when the case was closed, if applicable (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>closingCode</td>\n<td>integer</td>\n<td>Closure reason code</td>\n</tr>\n<tr>\n<td>closingCodeDescription</td>\n<td>string</td>\n<td>Human-readable label for the closing code</td>\n</tr>\n<tr>\n<td>totalClaimedAmount</td>\n<td>number</td>\n<td>Sum of all claimed amounts including fees, interest, and costs</td>\n</tr>\n<tr>\n<td>totalClaimedInvoiceAmount</td>\n<td>number</td>\n<td>Claimed amount related to the invoices only</td>\n</tr>\n<tr>\n<td>totalClaimedClientCostsAmount</td>\n<td>number</td>\n<td>Claimed client costs</td>\n</tr>\n<tr>\n<td>totalClaimedInterestAmount</td>\n<td>number</td>\n<td>Claimed interest amount</td>\n</tr>\n<tr>\n<td>totalClaimedCustomerFeesAmount</td>\n<td>number</td>\n<td>Claimed customer fees</td>\n</tr>\n<tr>\n<td>totalClaimedOutlaysAmount</td>\n<td>number</td>\n<td>Claimed outlays</td>\n</tr>\n<tr>\n<td>totalRemainingAmount</td>\n<td>number</td>\n<td>Total remaining balance</td>\n</tr>\n<tr>\n<td>totalRemainingInvoiceAmount</td>\n<td>number</td>\n<td>Remaining invoice amount</td>\n</tr>\n<tr>\n<td>totalRemainingClientCostsAmount</td>\n<td>number</td>\n<td>Remaining client costs</td>\n</tr>\n<tr>\n<td>totalRemainingInterestAmount</td>\n<td>number</td>\n<td>Remaining interest</td>\n</tr>\n<tr>\n<td>totalRemainingCustomerFeesAmount</td>\n<td>number</td>\n<td>Remaining customer fees</td>\n</tr>\n<tr>\n<td>totalRemainingOutlaysAmount</td>\n<td>number</td>\n<td>Remaining outlays</td>\n</tr>\n<tr>\n<td>invoiceNumbers</td>\n<td>array</td>\n<td>Invoice numbers associated with this case</td>\n</tr>\n<tr>\n<td>hasMore</td>\n<td>Boolean</td>\n<td>Indicates whether more records are available beyond the current page. Returns <code>true</code> if additional pages exist and can be retrieved using <code>startingAfter</code>; otherwise returns <code>false</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>The caseNumber field is used as the <code>sortBy</code> attribute for pagination purposes in this endpoint.</p>\n<h3 id=\"invoices-array\"><code>invoices[]</code> Array</h3>\n<p>📘 <strong>Note:</strong> In the default response, the <code>invoices</code> array only contains a list of <code>invoiceNumber</code> values — it serves as a simple enumeration of all invoice references associated with the case. To access complete invoice-level financial and status data, each <code>invoiceNumber</code> can be used with the /invoices/query API.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>invoiceNumber</td>\n<td>string</td>\n<td>Unique invoice reference</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"producthistory-array-if-addproducthistorytrue\"><code>productHistory[]</code> Array (if addProductHistory=true)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>productCode</td>\n<td>integer</td>\n<td>Code representing the assigned product</td>\n</tr>\n<tr>\n<td>productDescription</td>\n<td>string</td>\n<td>Human-readable label of the assigned product</td>\n</tr>\n<tr>\n<td>productStartDate</td>\n<td>date-time</td>\n<td>Start timestamp of the product's validity (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n<tr>\n<td>productEndDate</td>\n<td>date-time</td>\n<td>End timestamp of the product's validity, if applicable (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"statushistory-array-if-addstatushistorytrue\"><code>statusHistory[]</code> Array <em>(if addStatusHistory=true)</em></h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>detailStatusCode</td>\n<td>integer</td>\n<td>Detailed status code</td>\n</tr>\n<tr>\n<td>detailStatusDescription</td>\n<td>string</td>\n<td>Human-readable description of the status</td>\n</tr>\n<tr>\n<td>detailStatusStartDate</td>\n<td>date-time</td>\n<td>Start timestamp of the status validity period (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n<tr>\n<td>detailStatusEndDate</td>\n<td>date-time</td>\n<td>End timestamp of the status validity period (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n<tr>\n<td>mainStatusCode</td>\n<td>integer</td>\n<td>Aggregated status code</td>\n</tr>\n<tr>\n<td>mainStatusDescription</td>\n<td>string</td>\n<td>Aggregated status description</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"best-practices\">Best Practices</h3>\n<ul>\n<li><p>Prefer <code>customerReference</code> and <code>caseOpeningDateFrom</code> for filtering new case registrations</p>\n</li>\n<li><p>Use <code>limit</code> and <code>startingAfter</code> for robust pagination</p>\n</li>\n<li><p>When <code>hasMore</code> is <code>true</code>, continue requesting pages until all results are retrieved</p>\n</li>\n</ul>\n","urlObject":{"path":["portfolio","query"],"host":["https://collection.test-api-intrum.ch/restServices/v1"],"query":[{"description":{"content":"<p>Unique identifier for a registered case</p>\n","type":"text/plain"},"key":"caseNumber","value":"<integer>"},{"description":{"content":"<p>External reference used by client to identify the customer</p>\n","type":"text/plain"},"key":"customerReference","value":"<string>"},{"description":{"content":"<p>Minimum claimed amount for the case</p>\n","type":"text/plain"},"key":"minClaimed","value":"<number>"},{"description":{"content":"<p>Maximum claimed amount for the case</p>\n","type":"text/plain"},"key":"maxClaimed","value":"<number>"},{"description":{"content":"<p>Start date for case opening (YYYY-MM-DD)</p>\n","type":"text/plain"},"key":"caseOpeningDateFrom","value":"<date>"},{"description":{"content":"<p>End date for case opening (YYYY-MM-DD)</p>\n","type":"text/plain"},"key":"caseOpeningDateTo","value":"<date>"},{"description":{"content":"<p>If <code>true</code>, includes product assignment history in the response. <code>false</code> by default.</p>\n","type":"text/plain"},"key":"addProductHistory","value":"false"},{"description":{"content":"<p>If <code>true</code>, includes status transitions over time in the response. <code>false</code> by default</p>\n","type":"text/plain"},"key":"addStatusHistory","value":"false"},{"description":{"content":"<p>Cursor for forward pagination based on last result ID, using caseNumber</p>\n","type":"text/plain"},"key":"startingAfter","value":"<string>"},{"description":{"content":"<p>Cursor for backward pagination, using caseNumber</p>\n","type":"text/plain"},"key":"endingBefore","value":"<string>"},{"description":{"content":"<p>Max number of records per page (default: 10, max: 100)</p>\n","type":"text/plain"},"key":"limit","value":"10"}],"variable":[]}},"response":[{"id":"0ddd8b07-948c-43fd-93ca-15c307e5251c","name":"successful request: default response","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/query?caseNumber=<integer>&customerReference=<string>&minClaimed=<number>&maxClaimed=<number>&caseOpeningDateFrom=<date>&caseOpeningDateTo=<date>&addProductHistory=false&addStatusHistory=false&startingAfter=<string>&endingBefore=<string>&limit=10","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","query"],"query":[{"description":"Unique identifier for a registered case","key":"caseNumber","value":"<integer>"},{"description":"External reference used by client to identify the customer","key":"customerReference","value":"<string>"},{"description":"Minimum claimed amount for the case","key":"minClaimed","value":"<number>"},{"description":"Maximum claimed amount for the case\n","key":"maxClaimed","value":"<number>"},{"description":"Start date for case opening (YYYY-MM-DD)","key":"caseOpeningDateFrom","value":"<date>"},{"description":"End date for case opening (YYYY-MM-DD)","key":"caseOpeningDateTo","value":"<date>"},{"description":"If ``true``, includes product assignment history in the response. ``false`` by default.","key":"addProductHistory","value":"false"},{"description":"If ``true``, includes status transitions over time in the response. ``false`` by default","key":"addStatusHistory","value":"false"},{"description":"Cursor for forward pagination based on last result ID, using caseNumber","key":"startingAfter","value":"<string>"},{"description":"Cursor for backward pagination, using caseNumber","key":"endingBefore","value":"<string>"},{"description":"Max number of records per page (default: 10, max: 100)","key":"limit","value":"10"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"matchingResults\": [\n    {\n      \"caseNumber\": 123456,\n      \"caseOpeningDate\": \"2024-06-19\",\n      \"customerReference\": \"Testing\",\n      \"customerName\": \"Meier Lisa\",\n      \"interestCalculationDate\": \"2024-06-20\",\n      \"claimConcern\": \"Testing is fun\",\n      \"currentProductCode\": 1,\n      \"productDescription\": \"Collection\",\n      \"currentMainStatusCode\": 1,\n      \"mainStatusDescription\": \"Amicable collection\",\n      \"currentDetailStatusCode\": 11,\n      \"detailStatusDescription\": \"Forderung rechtlich anerkannt\",\n      \"closingDate\": \"<date>\",\n      \"closingCode\": \"<integer>\",\n      \"closingCodeDescription\": \"<string>\",\n      \"totalClaimedAmount\": 500.5,\n      \"totalClaimedInvoiceAmount\": 500.5,\n      \"totalClaimedClientCostsAmount\": 42.95,\n      \"totalClaimedInterestAmount\": 0.05,\n      \"totalClaimedCustomerFeesAmount\": 195,\n      \"totalClaimedOutlaysAmount\": 0,\n      \"totalRemainingAmount\": 500.5,\n      \"totalRemainingInvoiceAmount\": 500.5,\n      \"totalRemainingClientCostsAmount\": 42.95,\n      \"totalRemainingInterestAmount\": 0.05,\n      \"totalRemainingCustomerFeesAmount\": 195,\n      \"totalRemainingOutlaysAmount\": 0,\n      \"invoiceNumbers\": [\n        \"12345\"\n      ]\n    }\n  ],\n  \"hasMore\": true\n}"},{"id":"427c5693-a82f-4af9-bc77-307f591fd682","name":"successful request: response with status history","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/query?caseNumber=<integer>&customerReference=<string>&minClaimed=<number>&maxClaimed=<number>&caseOpeningDateFrom=<date>&caseOpeningDateTo=<date>&addProductHistory=false&addStatusHistory=false&startingAfter=<string>&endingBefore=<string>&limit=10","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","query"],"query":[{"description":"Unique identifier for a registered case","key":"caseNumber","value":"<integer>"},{"description":"External reference used by client to identify the customer","key":"customerReference","value":"<string>"},{"description":"Minimum claimed amount for the case","key":"minClaimed","value":"<number>"},{"description":"Maximum claimed amount for the case\n","key":"maxClaimed","value":"<number>"},{"description":"Start date for case opening (YYYY-MM-DD)","key":"caseOpeningDateFrom","value":"<date>"},{"description":"End date for case opening (YYYY-MM-DD)","key":"caseOpeningDateTo","value":"<date>"},{"description":"If ``true``, includes product assignment history in the response. ``false`` by default.","key":"addProductHistory","value":"false"},{"description":"If ``true``, includes status transitions over time in the response. ``false`` by default","key":"addStatusHistory","value":"false"},{"description":"Cursor for forward pagination based on last result ID, using caseNumber","key":"startingAfter","value":"<string>"},{"description":"Cursor for backward pagination, using caseNumber","key":"endingBefore","value":"<string>"},{"description":"Max number of records per page (default: 10, max: 100)","key":"limit","value":"10"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"matchingResults\": [\n    {\n      \"caseNumber\": 123456,\n      \"caseOpeningDate\": \"2024-06-19\",\n      \"customerReference\": \"Testing\",\n      \"customerName\": \"Meier Lisa\",\n      \"interestCalculationDate\": \"2024-06-20\",\n      \"claimConcern\": \"Testing is fun\",\n      \"currentProductCode\": 1,\n      \"productDescription\": \"Collection\",\n      \"currentMainStatusCode\": 1,\n      \"mainStatusDescription\": \"Amicable collection\",\n      \"currentDetailStatusCode\": 11,\n      \"detailStatusDescription\": \"Forderung rechtlich anerkannt\",\n      \"closingDate\": \"<date>\",\n      \"closingCode\": \"<integer>\",\n      \"closingCodeDescription\": \"<string>\",\n      \"totalClaimedAmount\": 500.5,\n      \"totalClaimedInvoiceAmount\": 500.5,\n      \"totalClaimedClientCostsAmount\": 42.95,\n      \"totalClaimedInterestAmount\": 0.05,\n      \"totalClaimedCustomerFeesAmount\": 195,\n      \"totalClaimedOutlaysAmount\": 0,\n      \"totalRemainingAmount\": 500.5,\n      \"totalRemainingInvoiceAmount\": 500.5,\n      \"totalRemainingClientCostsAmount\": 42.95,\n      \"totalRemainingInterestAmount\": 0.05,\n      \"totalRemainingCustomerFeesAmount\": 195,\n      \"totalRemainingOutlaysAmount\": 0,\n      \"invoiceNumbers\": [\n        \"12345\"\n      ],\n      \"statusHistory\": [\n        {\n          \"mainStatusCode\": 1,\n          \"mainStatusDescription\": \"Amicable collection\",\n          \"detailStatusCode\": 11,\n          \"detailStatusDescription\": \"Forderung rechtlich anerkannt\",\n          \"detailStatusStartDate\": \"2020-01-01T12:34:56Z\",\n          \"detailStatusEndDate\": \"<dateTime>\"\n        }\n      ]\n    }\n  ],\n  \"hasMore\": true\n}"},{"id":"08a76411-8eec-4f7f-9a6f-5f9d96ed35c8","name":"successful request: response with product history","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/query?caseNumber=<integer>&customerReference=<string>&minClaimed=<number>&maxClaimed=<number>&caseOpeningDateFrom=<date>&caseOpeningDateTo=<date>&addProductHistory=false&addStatusHistory=false&startingAfter=<string>&endingBefore=<string>&limit=10","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","query"],"query":[{"description":"Unique identifier for a registered case","key":"caseNumber","value":"<integer>"},{"description":"External reference used by client to identify the customer","key":"customerReference","value":"<string>"},{"description":"Minimum claimed amount for the case","key":"minClaimed","value":"<number>"},{"description":"Maximum claimed amount for the case\n","key":"maxClaimed","value":"<number>"},{"description":"Start date for case opening (YYYY-MM-DD)","key":"caseOpeningDateFrom","value":"<date>"},{"description":"End date for case opening (YYYY-MM-DD)","key":"caseOpeningDateTo","value":"<date>"},{"description":"If ``true``, includes product assignment history in the response. ``false`` by default.","key":"addProductHistory","value":"false"},{"description":"If ``true``, includes status transitions over time in the response. ``false`` by default","key":"addStatusHistory","value":"false"},{"description":"Cursor for forward pagination based on last result ID, using caseNumber","key":"startingAfter","value":"<string>"},{"description":"Cursor for backward pagination, using caseNumber","key":"endingBefore","value":"<string>"},{"description":"Max number of records per page (default: 10, max: 100)","key":"limit","value":"10"}]}},"_postman_previewlanguage":"json","header":[{"description":{"content":"","type":"text/plain"},"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"matchingResults\": [\n    {\n      \"caseNumber\": 123456,\n      \"caseOpeningDate\": \"2024-06-19\",\n      \"customerReference\": \"Testing\",\n      \"customerName\": \"Meier Lisa\",\n      \"interestCalculationDate\": \"2024-06-20\",\n      \"claimConcern\": \"Testing is fun\",\n      \"currentProductCode\": 1,\n      \"productDescription\": \"Collection\",\n      \"currentMainStatusCode\": 1,\n      \"mainStatusDescription\": \"Amicable collection\",\n      \"currentDetailStatusCode\": 11,\n      \"detailStatusDescription\": \"Forderung rechtlich anerkannt\",\n      \"closingDate\": \"<date>\",\n      \"closingCode\": \"<integer>\",\n      \"closingCodeDescription\": \"<string>\",\n      \"totalClaimedAmount\": 500.5,\n      \"totalClaimedInvoiceAmount\": 500.5,\n      \"totalClaimedClientCostsAmount\": 42.95,\n      \"totalClaimedInterestAmount\": 0.05,\n      \"totalClaimedCustomerFeesAmount\": 195,\n      \"totalClaimedOutlaysAmount\": 0,\n      \"totalRemainingAmount\": 500.5,\n      \"totalRemainingInvoiceAmount\": 500.5,\n      \"totalRemainingClientCostsAmount\": 42.95,\n      \"totalRemainingInterestAmount\": 0.05,\n      \"totalRemainingCustomerFeesAmount\": 195,\n      \"totalRemainingOutlaysAmount\": 0,\n      \"invoiceNumbers\": [\n        \"12345\"\n      ],\n      \"productHistory\": [\n        {\n          \"productCode\": 1,\n          \"productDescription\": \"Collection\",\n          \"startDate\": \"2020-01-01T12:34:56Z\",\n          \"endDate\": \"<dateTime>\"\n        }\n      ]\n    }\n  ],\n  \"hasMore\": true\n}"},{"id":"25ef7488-f746-4a39-ae37-b6b8530104e4","name":"authentication issue","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/query?caseNumber=<integer>&customerReference=<string>&minClaimed=<number>&maxClaimed=<number>&caseOpeningDateFrom=<date>&caseOpeningDateTo=<date>&addProductHistory=false&addStatusHistory=false&startingAfter=<string>&endingBefore=<string>&limit=10","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","query"],"query":[{"description":"Unique identifier for a registered case","key":"caseNumber","value":"<integer>"},{"description":"External reference used by client to identify the customer","key":"customerReference","value":"<string>"},{"description":"Minimum claimed amount for the case","key":"minClaimed","value":"<number>"},{"description":"Maximum claimed amount for the case\n","key":"maxClaimed","value":"<number>"},{"description":"Start date for case opening (YYYY-MM-DD)","key":"caseOpeningDateFrom","value":"<date>"},{"description":"End date for case opening (YYYY-MM-DD)","key":"caseOpeningDateTo","value":"<date>"},{"description":"If ``true``, includes product assignment history in the response. ``false`` by default.","key":"addProductHistory","value":"false"},{"description":"If ``true``, includes status transitions over time in the response. ``false`` by default","key":"addStatusHistory","value":"false"},{"description":"Cursor for forward pagination based on last result ID, using caseNumber","key":"startingAfter","value":"<string>"},{"description":"Cursor for backward pagination, using caseNumber","key":"endingBefore","value":"<string>"},{"description":"Max number of records per page (default: 10, max: 100)","key":"limit","value":"10"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Access denied\"\n}"},{"id":"45270489-c707-41b4-ad16-daf064ffed05","name":"error","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/query?caseNumber=<integer>&customerReference=<string>&minClaimed=<number>&maxClaimed=<number>&caseOpeningDateFrom=<date>&caseOpeningDateTo=<date>&addProductHistory=false&addStatusHistory=false&startingAfter=<string>&endingBefore=<string>&limit=10","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","query"],"query":[{"description":"Unique identifier for a registered case","key":"caseNumber","value":"<integer>"},{"description":"External reference used by client to identify the customer","key":"customerReference","value":"<string>"},{"description":"Minimum claimed amount for the case","key":"minClaimed","value":"<number>"},{"description":"Maximum claimed amount for the case\n","key":"maxClaimed","value":"<number>"},{"description":"Start date for case opening (YYYY-MM-DD)","key":"caseOpeningDateFrom","value":"<date>"},{"description":"End date for case opening (YYYY-MM-DD)","key":"caseOpeningDateTo","value":"<date>"},{"description":"If ``true``, includes product assignment history in the response. ``false`` by default.","key":"addProductHistory","value":"false"},{"description":"If ``true``, includes status transitions over time in the response. ``false`` by default","key":"addStatusHistory","value":"false"},{"description":"Cursor for forward pagination based on last result ID, using caseNumber","key":"startingAfter","value":"<string>"},{"description":"Cursor for backward pagination, using caseNumber","key":"endingBefore","value":"<string>"},{"description":"Max number of records per page (default: 10, max: 100)","key":"limit","value":"10"}]}},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"<string>\"\n}"}],"_postman_id":"d3c13fe8-e83b-449c-acf8-649d7738213d"}],"id":"0226bc22-8405-43f0-98de-de6e687b8ff0","description":"<h3 id=\"overview\">Overview</h3>\n<p>The <code>GET /portfolio/query</code> endpoint allows clients to retrieve case-level debt information, including financial status details at the case level and a listing of invoice numbers related to each case, based on flexible search criteria. This enables clients to query registered cases for reconciliation, tracking, and reporting purposes.</p>\n<p>By default, the endpoint returns only the most relevant case-level and invoice-level data, which includes case-level financials and status fields. To obtain additional historical details such as product assignment or full status change timelines, clients can explicitly include the query parameters <code>addProductHistory=true</code> and/or <code>addStatusHistory=true</code>. Both parameters default to <code>false</code>.</p>\n<p>This endpoint supports advanced filtering, pagination, and optional inclusion of case lifecycle data such as product and status history.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"b5efaee3-9a1b-42ca-8910-32f431c9c337","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"900baa44-1bb4-4fcb-9ff3-2575fe731c22","type":"text/javascript","exec":[""]}}],"_postman_id":"0226bc22-8405-43f0-98de-de6e687b8ff0"},{"name":"statusUpdate","item":[{"name":"/portfolio/statusUpdate","id":"7afc0873-6088-4e4c-8cf0-b5cc8680ecb5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/statusUpdate?lastUpdatedFrom=<dateTime>&limit=10&startingAfterTimestamp=<dateTime>&endingBeforeTimestamp=<dateTime>&startingAfterInvoiceNumber=<string>&endingBeforeInvoiceNumber=<string>","description":"<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>URL:</strong> <code>GET /portfolio/statusUpdate</code></p>\n<p><strong>Environment URLs:</strong></p>\n<ul>\n<li><p><strong>Integration (INT):</strong> <code>https://collection.test-api-intrum.ch/restServices/v1/portfolio/statusUpdate</code></p>\n</li>\n<li><p><strong>Production (PROD):</strong> <code>https://collection.api-intrum.ch/restServices/v1/portfolio/statusUpdate</code></p>\n</li>\n</ul>\n<p><strong>Authentication:</strong> OAuth 2.0 (Client Credentials Flow)</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>lastUpdatedFrom</td>\n<td>date-time</td>\n<td>Yes</td>\n<td>Return updates occurring after this timestamp (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>int</td>\n<td>No</td>\n<td>Max number of records per page (default: 10, max: 100)</td>\n</tr>\n<tr>\n<td>startingAfterTimestamp</td>\n<td>date-time</td>\n<td>No</td>\n<td>Forward cursor (part 1). Must be used together with startingAfterInvoiceNumber (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n<tr>\n<td>startingAfterInvoiceNumber</td>\n<td>string</td>\n<td>No</td>\n<td>Forward cursor (part 2). Must be used together with startingAfterTimestamp (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n<tr>\n<td>endingBeforeTimestamp</td>\n<td>date-time</td>\n<td>No</td>\n<td>Backward cursor (part 1). Must be used together with endingBeforeInvoiceNumber (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n<tr>\n<td>endingBeforeInvoiceNumber</td>\n<td>string</td>\n<td>No</td>\n<td>Backward cursor (part 2). Must be used together with endingBeforeTimestamp (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>Note:<br />Do <strong>not</strong> send forward and backward cursors in the same request; use one direction per call (cursor-based best practice). </p>\n</blockquote>\n<h3 id=\"sorting--pagination\">Sorting &amp; Pagination</h3>\n<ul>\n<li><p>Results are <strong>sorted by</strong> <code>lastUpdatedTimestamp</code> <strong>ascending</strong>, then by <code>invoiceNumber</code> <strong>ascending</strong> for deterministic ordering.</p>\n</li>\n<li><p>The dual-cursor scheme uses <strong>both</strong> the last item’s (<code>lastUpdatedTimestamp</code>, <code>invoiceNumber</code>) as the stable position for the next/previous page.</p>\n</li>\n<li><p>The response includes <code>hasMore</code> to indicate if additional pages are available.</p>\n</li>\n</ul>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>caseNumber</td>\n<td>integer</td>\n<td>Unique identifier for a registered case</td>\n</tr>\n<tr>\n<td>customerReference</td>\n<td>string</td>\n<td>External customer reference</td>\n</tr>\n<tr>\n<td>invoiceNumber</td>\n<td>string</td>\n<td>Identifier of the updated invoice</td>\n</tr>\n<tr>\n<td>invoiceRemainingAmount</td>\n<td>number</td>\n<td>Remaining invoice principal</td>\n</tr>\n<tr>\n<td>clientCostsRemainingAmount</td>\n<td>number</td>\n<td>Remaining client charges</td>\n</tr>\n<tr>\n<td>closingCode</td>\n<td>integer</td>\n<td>Final closing reason code, if applicable</td>\n</tr>\n<tr>\n<td>closingCodeDescription</td>\n<td>string</td>\n<td>Human-readable closing reason</td>\n</tr>\n<tr>\n<td>productCode</td>\n<td>integer</td>\n<td>Code for the current assigned collection product</td>\n</tr>\n<tr>\n<td>productCodeDescription</td>\n<td>string</td>\n<td>Description of the assigned product</td>\n</tr>\n<tr>\n<td>mainStatusCode</td>\n<td>integer</td>\n<td>This field contains the aggregated status of the case, providing a normalized view of its current processing state</td>\n</tr>\n<tr>\n<td>mainStatusDescription</td>\n<td>string</td>\n<td>Description of the main status</td>\n</tr>\n<tr>\n<td>detailStatusCode</td>\n<td>integer</td>\n<td>Detailed status code reflecting the current operational stage of the case</td>\n</tr>\n<tr>\n<td>detailStatusDescription</td>\n<td>string</td>\n<td>Description of the detailed status</td>\n</tr>\n<tr>\n<td>lastUpdatedTimestamp</td>\n<td>date-time</td>\n<td>When this invoice's snapshot last changed. Used for ordering and pagination (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n<tr>\n<td>hasMore</td>\n<td>Boolean</td>\n<td>Indicates whether more records are available beyond the current page. Returns true if additional pages exist and can be retrieved using startingAfter; otherwise returns false.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"best-practices\">Best Practices</h3>\n<ul>\n<li><p>Always set <code>lastUpdatedFrom</code> and persist the most recent <code>lastUpdatedTimestamp</code> you processed to drive your next poll.</p>\n</li>\n<li><p>Use cursor-based pagination (startingAfter* / endingBefore*), check hasMore to iterate</p>\n</li>\n<li><p>Store the latest sync timestamp to ensure efficient incremental fetches</p>\n</li>\n<li><p>Results may include newly opened invoices/cases as update events; handle all four update types (status, product, balance, closure).</p>\n</li>\n</ul>\n","urlObject":{"path":["portfolio","statusUpdate"],"host":["https://collection.test-api-intrum.ch/restServices/v1"],"query":[{"description":{"content":"<p>(Required) Return updates occurring after this timestamp (Format: YYYY-MM-DDTHH:MM:SSZ)</p>\n","type":"text/plain"},"key":"lastUpdatedFrom","value":"<dateTime>"},{"description":{"content":"<p>Max number of records per page (default: 10, max: 100)</p>\n","type":"text/plain"},"key":"limit","value":"10"},{"description":{"content":"<p>Cursor for forward pagination, using lastUpdatedTimestamp (Format: YYYY-MM-DDTHH:MM:SSZ). Can only be used jointly with <code>startingAfterInvoiceNumber</code>.</p>\n","type":"text/plain"},"key":"startingAfterTimestamp","value":"<dateTime>"},{"description":{"content":"<p>Cursor for backward pagination, using lastUpdatedTimestamp (Format: YYYY-MM-DDTHH:MM:SSZ). Can only be used jointly with <code>endingBeforeInvoiceNumber</code>.</p>\n","type":"text/plain"},"key":"endingBeforeTimestamp","value":"<dateTime>"},{"description":{"content":"<p>Cursor for forward pagination, using invoiceNumber. Can only be used jointly with <code>startingAfterTimestamp</code>.</p>\n","type":"text/plain"},"key":"startingAfterInvoiceNumber","value":"<string>"},{"description":{"content":"<p>Cursor for backward pagination, using invoiceNumber. Can only be used jointly with <code>endingBeforeTimestamp</code>.</p>\n","type":"text/plain"},"key":"endingBeforeInvoiceNumber","value":"<string>"}],"variable":[]}},"response":[{"id":"f953550b-5001-4cc5-bff3-f95ce3cc1e56","name":"successful request","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"<token>","description":"Added as a part of security scheme: oauth2"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/statusUpdate?lastUpdatedFrom=<dateTime>&limit=10&startingAfterTimestamp=<dateTime>&endingBeforeTimestamp=<dateTime>&startingAfterInvoiceNumber=<string>&endingBeforeInvoiceNumber=<string>","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","statusUpdate"],"query":[{"key":"lastUpdatedFrom","value":"<dateTime>","description":"(Required) Return updates occurring after this timestamp (Format: YYYY-MM-DDTHH:MM:SSZ)"},{"key":"limit","value":"10","description":"Max number of records per page (default: 10, max: 100)"},{"key":"startingAfterTimestamp","value":"<dateTime>","description":"Cursor for forward pagination, using lastUpdatedTimestamp (Format: YYYY-MM-DDTHH:MM:SSZ). Can only be used jointly with `startingAfterInvoiceNumber`."},{"key":"endingBeforeTimestamp","value":"<dateTime>","description":"Cursor for backward pagination, using lastUpdatedTimestamp (Format: YYYY-MM-DDTHH:MM:SSZ). Can only be used jointly with `endingBeforeInvoiceNumber`."},{"key":"startingAfterInvoiceNumber","value":"<string>","description":"Cursor for forward pagination, using invoiceNumber. Can only be used jointly with `startingAfterTimestamp`."},{"key":"endingBeforeInvoiceNumber","value":"<string>","description":"Cursor for backward pagination, using invoiceNumber. Can only be used jointly with `endingBeforeTimestamp`."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"updates\": [\n    {\n      \"customerReference\": \"string\",\n      \"caseNumber\": 0,\n      \"invoiceNumber\": \"string\",\n      \"invoiceRemainingAmount\": 0,\n      \"clientCostsRemainingAmount\": 0,\n      \"closingCode\": 0,\n      \"closingCodeDescription\": \"string\",\n      \"productCode\": 0,\n      \"productCodeDescription\": \"string\",\n      \"mainStatusCode\": 0,\n      \"mainStatusDescription\": \"string\",\n      \"detailStatusCode\": 0,\n      \"detailStatusDescription\": \"string\",\n      \"lastUpdatedTimestamp\": \"2020-01-01T12:34:56Z\"\n    }\n  ],\n  \"hasMore\": true\n}"},{"id":"b98e39bf-a845-431a-8f5c-feb13046ea15","name":"authentication issue","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"<token>","description":"Added as a part of security scheme: oauth2"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/statusUpdate?lastUpdatedFrom=<dateTime>&limit=10&startingAfterTimestamp=<dateTime>&endingBeforeTimestamp=<dateTime>&startingAfterInvoiceNumber=<string>&endingBeforeInvoiceNumber=<string>","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","statusUpdate"],"query":[{"key":"lastUpdatedFrom","value":"<dateTime>","description":"(Required) Return updates occurring after this timestamp (Format: YYYY-MM-DDTHH:MM:SSZ)"},{"key":"limit","value":"10","description":"Max number of records per page (default: 10, max: 100)"},{"key":"startingAfterTimestamp","value":"<dateTime>","description":"Cursor for forward pagination, using lastUpdatedTimestamp (Format: YYYY-MM-DDTHH:MM:SSZ). Can only be used jointly with `startingAfterInvoiceNumber`."},{"key":"endingBeforeTimestamp","value":"<dateTime>","description":"Cursor for backward pagination, using lastUpdatedTimestamp (Format: YYYY-MM-DDTHH:MM:SSZ). Can only be used jointly with `endingBeforeInvoiceNumber`."},{"key":"startingAfterInvoiceNumber","value":"<string>","description":"Cursor for forward pagination, using invoiceNumber. Can only be used jointly with `startingAfterTimestamp`."},{"key":"endingBeforeInvoiceNumber","value":"<string>","description":"Cursor for backward pagination, using invoiceNumber. Can only be used jointly with `endingBeforeTimestamp`."}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Access denied\"\n}"},{"id":"00ff2e5d-99a0-4b88-901f-0355ff649ab0","name":"error","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"<token>","description":"Added as a part of security scheme: oauth2"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/statusUpdate?lastUpdatedFrom=<dateTime>&limit=10&startingAfterTimestamp=<dateTime>&endingBeforeTimestamp=<dateTime>&startingAfterInvoiceNumber=<string>&endingBeforeInvoiceNumber=<string>","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","statusUpdate"],"query":[{"key":"lastUpdatedFrom","value":"<dateTime>","description":"(Required) Return updates occurring after this timestamp (Format: YYYY-MM-DDTHH:MM:SSZ)"},{"key":"limit","value":"10","description":"Max number of records per page (default: 10, max: 100)"},{"key":"startingAfterTimestamp","value":"<dateTime>","description":"Cursor for forward pagination, using lastUpdatedTimestamp (Format: YYYY-MM-DDTHH:MM:SSZ). Can only be used jointly with `startingAfterInvoiceNumber`."},{"key":"endingBeforeTimestamp","value":"<dateTime>","description":"Cursor for backward pagination, using lastUpdatedTimestamp (Format: YYYY-MM-DDTHH:MM:SSZ). Can only be used jointly with `endingBeforeInvoiceNumber`."},{"key":"startingAfterInvoiceNumber","value":"<string>","description":"Cursor for forward pagination, using invoiceNumber. Can only be used jointly with `startingAfterTimestamp`."},{"key":"endingBeforeInvoiceNumber","value":"<string>","description":"Cursor for backward pagination, using invoiceNumber. Can only be used jointly with `endingBeforeTimestamp`."}]}},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"<string>\"\n}"}],"_postman_id":"7afc0873-6088-4e4c-8cf0-b5cc8680ecb5"}],"id":"decaf0de-e0cf-4b3f-b097-0a4cd281f903","description":"<h3 id=\"overview\">Overview</h3>\n<p>The <code>GET /portfolio/statusUpdate</code> endpoint provides a list of invoices that have been updated since a given timestamp. It is intended for <strong>incremental synchronization</strong> of invoice status and a snapshot of current balances within Intrum’s collection system. These balance figures are for informational purposes only and must not be used for financial reconciliation or transaction processing. They are informational only and represent current system state at the invoice level.</p>\n<p>This endpoint supports <strong>cursor-based pagination</strong>, and provides <strong>snapshot-like updates</strong> without full case histories.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"b0b42277-6c07-433f-815c-f1f9a1d3ced3","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"341c38cf-21a6-4152-b81d-48466bd4f673","type":"text/javascript","exec":[""]}}],"_postman_id":"decaf0de-e0cf-4b3f-b097-0a4cd281f903"},{"name":"payments","item":[{"name":"/portfolio/payments","id":"530d4329-24c5-4eba-8f61-004e38a2f3a7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/payments?fromJournalizedDate=<date>&toJournalizedDate=<date>&startingAfter=<string>&endingBefore=<string>&limit=10","description":"<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>URL:</strong> <code>GET /portfolio/payments</code></p>\n<p><strong>Environment URLs:</strong></p>\n<ul>\n<li><p><strong>Integration (INT):</strong> <code>https://collection.test-api-intrum.ch/restServices/v1/portfolio/payments</code></p>\n</li>\n<li><p><strong>Production (PROD):</strong> <code>https://collection.api-intrum.ch/restServices/v1/portfolio/payments</code></p>\n</li>\n</ul>\n<p><strong>Authentication:</strong> OAuth 2.0 (Client Credentials Flow)</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>fromJournalizedDate</td>\n<td>date</td>\n<td>Yes</td>\n<td>Start of journalization window (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>toJournalizedDate</td>\n<td>date</td>\n<td>Yes</td>\n<td>End of journalization window (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>startingAfter</td>\n<td>string</td>\n<td>No</td>\n<td>Cursor for forward pagination, using recordId</td>\n</tr>\n<tr>\n<td>endingBefore</td>\n<td>string</td>\n<td>No</td>\n<td>Cursor for backward pagination, using recordId</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>integer</td>\n<td>No</td>\n<td>Max records per page (default: 10; range: 1–100)</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>⚠️ Maximum allowed window: 100 days. Requests beyond this window return an error. </p>\n</blockquote>\n<h3 id=\"response-fields\">Response Fields</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>recordId</td>\n<td>integer</td>\n<td>Unique ID of the provided record</td>\n</tr>\n<tr>\n<td>intPaymentId</td>\n<td>string</td>\n<td>Internal transaction ID</td>\n</tr>\n<tr>\n<td>paidInvoiceAmount</td>\n<td>number</td>\n<td>Amount paid toward the invoice</td>\n</tr>\n<tr>\n<td>paidClientCostAmount</td>\n<td>number</td>\n<td>Amount paid toward client collection costs</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>string</td>\n<td>ISO 4217 currency code (e.g., CHF, EUR)</td>\n</tr>\n<tr>\n<td>caseNumber</td>\n<td>integer</td>\n<td>Case linked to the transaction</td>\n</tr>\n<tr>\n<td>invoiceNumber</td>\n<td>string</td>\n<td>Invoice reference</td>\n</tr>\n<tr>\n<td>journalizationDate</td>\n<td>date</td>\n<td>Journalized date (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>paymentDate</td>\n<td>date</td>\n<td>Original payment date (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>itemId</td>\n<td>string</td>\n<td>Client-provided item reference, if available</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td><code>PAYMENT</code> or <code>REVERSAL</code></td>\n</tr>\n<tr>\n<td>hasMore</td>\n<td>Boolean</td>\n<td>Indicates whether more records are available beyond the current page. Returns true if additional pages exist and can be retrieved using startingAfter; otherwise returns false.</td>\n</tr>\n</tbody>\n</table>\n</div><p>The <code>recordId</code> field is used as the <code>sortBy</code> attribute for pagination purposes in this endpoint.</p>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>This endpoint does <strong>not</strong> expose intermediate/unjournalized financial data</p>\n</li>\n<li><p>Reversals are included with clear <code>type: REVERSAL</code></p>\n</li>\n<li><p>Returned records are <strong>immutable</strong> — no updates or deletions allowed</p>\n</li>\n<li><p>Pagination via <code>startingAfter</code>, <code>endingBefore</code>, and <code>hasMore</code></p>\n</li>\n</ul>\n","urlObject":{"path":["portfolio","payments"],"host":["https://collection.test-api-intrum.ch/restServices/v1"],"query":[{"description":{"content":"<p>(Required) Start of journalization window (Format: YYYY-MM-DD)</p>\n","type":"text/plain"},"key":"fromJournalizedDate","value":"<date>"},{"description":{"content":"<p>(Required) End of journalization window (Format: YYYY-MM-DD)</p>\n","type":"text/plain"},"key":"toJournalizedDate","value":"<date>"},{"description":{"content":"<p>Cursor for forward pagination, using recordId</p>\n","type":"text/plain"},"key":"startingAfter","value":"<string>"},{"description":{"content":"<p>Cursor for backward pagination, using recordId</p>\n","type":"text/plain"},"key":"endingBefore","value":"<string>"},{"description":{"content":"<p>Max records per page (default: 10; range: 1–100)</p>\n","type":"text/plain"},"key":"limit","value":"10"}],"variable":[]}},"response":[{"id":"1b1566ea-6b1d-428e-91ec-6785d12729aa","name":"successful request","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/payments?fromJournalizedDate=<date>&toJournalizedDate=<date>&startingAfter=<string>&endingBefore=<string>&limit=10","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","payments"],"query":[{"description":"(Required) Start of journalization window (Format: YYYY-MM-DD)","key":"fromJournalizedDate","value":"<date>"},{"description":"(Required) End of journalization window (Format: YYYY-MM-DD)","key":"toJournalizedDate","value":"<date>"},{"description":"Cursor for forward pagination, using recordId","key":"startingAfter","value":"<string>"},{"description":"Cursor for backward pagination, using recordId","key":"endingBefore","value":"<string>"},{"description":"Max records per page (default: 10; range: 1–100)","key":"limit","value":"10"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"payments\": [\n    {\n      \"recordId\": \"<integer>\",\n      \"intPaymentId\": \"<string>\",\n      \"paidInvoiceAmount\": \"<number>\",\n      \"paidClientCostAmount\": \"<number>\",\n      \"currency\": \"CHF\",\n      \"caseNumber\": \"<integer>\",\n      \"invoiceNumber\": \"<string>\",\n      \"journalizationDate\": \"<date>\",\n      \"paymentDate\": \"<date>\",\n      \"itemId\": \"<string>\",\n      \"type\": \"REVERSAL\"\n    },\n    {\n      \"recordId\": \"<integer>\",\n      \"intPaymentId\": \"<string>\",\n      \"paidInvoiceAmount\": \"<number>\",\n      \"paidClientCostAmount\": \"<number>\",\n      \"currency\": \"USS\",\n      \"caseNumber\": \"<integer>\",\n      \"invoiceNumber\": \"<string>\",\n      \"journalizationDate\": \"<date>\",\n      \"paymentDate\": \"<date>\",\n      \"itemId\": \"<string>\",\n      \"type\": \"PAYMENT\"\n    }\n  ],\n  \"hasMore\": \"<boolean>\"\n}"},{"id":"0bca383a-b69f-4200-813f-684bb23c0ae5","name":"authentication issue","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/payments?fromJournalizedDate=<date>&toJournalizedDate=<date>&startingAfter=<string>&endingBefore=<string>&limit=10","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","payments"],"query":[{"description":"(Required) Start of journalization window (Format: YYYY-MM-DD)","key":"fromJournalizedDate","value":"<date>"},{"description":"(Required) End of journalization window (Format: YYYY-MM-DD)","key":"toJournalizedDate","value":"<date>"},{"description":"Cursor for forward pagination, using recordId","key":"startingAfter","value":"<string>"},{"description":"Cursor for backward pagination, using recordId","key":"endingBefore","value":"<string>"},{"description":"Max records per page (default: 10; range: 1–100)","key":"limit","value":"10"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Access denied\"\n}"},{"id":"d446a209-6e02-46cf-b079-07a4dbe92a84","name":"error","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/portfolio/payments?fromJournalizedDate=<date>&toJournalizedDate=<date>&startingAfter=<string>&endingBefore=<string>&limit=10","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["portfolio","payments"],"query":[{"description":"(Required) Start of journalization window (Format: YYYY-MM-DD)","key":"fromJournalizedDate","value":"<date>"},{"description":"(Required) End of journalization window (Format: YYYY-MM-DD)","key":"toJournalizedDate","value":"<date>"},{"description":"Cursor for forward pagination, using recordId","key":"startingAfter","value":"<string>"},{"description":"Cursor for backward pagination, using recordId","key":"endingBefore","value":"<string>"},{"description":"Max records per page (default: 10; range: 1–100)","key":"limit","value":"10"}]}},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"<string>\"\n}"}],"_postman_id":"530d4329-24c5-4eba-8f61-004e38a2f3a7"}],"id":"288fa664-73a7-45b1-a2b2-880e6747b650","description":"<h3 id=\"overview\">Overview</h3>\n<p>The <code>GET /portfolio/payments</code> endpoint enables clients to retrieve <strong>journalized payment transactions</strong> and <strong>payment reversals</strong> collected by Intrum on their behalf. This is a post-journalization reporting endpoint and is optimized for integration into clients’ financial and reconciliation systems.</p>\n<p>Key features:</p>\n<ul>\n<li><p>Includes both payments and reversals</p>\n</li>\n<li><p>Strictly post-journalization (1-day delay)</p>\n</li>\n<li><p>Read-only; immutable financial data</p>\n</li>\n<li><p>Supports date range filtering and cursor-based pagination</p>\n</li>\n<li><p>100-day retention limit</p>\n</li>\n</ul>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"786cd2a7-bc4d-4f1a-8ce7-cecd33465f86","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"504ab366-83ae-4911-96a7-fab7f73d3abe","type":"text/javascript","exec":[""]}}],"_postman_id":"288fa664-73a7-45b1-a2b2-880e6747b650"}],"id":"461ec4b1-a8cc-446e-9262-76ee54d9d25f","description":"<h3 id=\"description\">Description</h3>\n<p>The <code>/portfolio</code> resource represents the <strong>client's portfolio of receivables</strong> in the collection system. It provides structured access to all portfolio-related operations, including debt registration, portfolio-level status tracking, and querying.</p>\n<h3 id=\"strategic-rationale\">Strategic Rationale</h3>\n<p>The introduction of <code>/portfolio</code> as a dedicated resource in API V1 supports the following goals:</p>\n<ul>\n<li><p>Align the API model with typical client workflows</p>\n</li>\n<li><p>Provide predictable endpoint design for registration, query, and reporting</p>\n</li>\n<li><p>Improve API extensibility for future features</p>\n</li>\n</ul>\n<h3 id=\"included-endpoints\">Included Endpoints</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Method</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>/portfolio/registration</code></td>\n<td>POST</td>\n<td>Submit new claims for collection</td>\n</tr>\n<tr>\n<td><code>/portfolio/query</code></td>\n<td>GET</td>\n<td>Retrieve status of cases at the portfolio level</td>\n</tr>\n<tr>\n<td><code>/portfolio/statusUpdate</code></td>\n<td>GET</td>\n<td>Retrieve incremental invoice-level status changes</td>\n</tr>\n<tr>\n<td><code>/portfolio/payments</code></td>\n<td>GET</td>\n<td>Retrieve journalized payments and reversals</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"domain-logic\">Domain Logic</h3>\n<p>The <code>/portfolio</code> resource supports the concept of <strong>multi-tenant client separation</strong> using a <code>clientRef</code>. Each API client may submit claims on behalf of multiple legal entities or business divisions, and the portfolio logic ensures routing and case management are handled per tenant.</p>\n<p>The <code>invoiceNumber</code> must be globally unique <strong>within the API client context</strong>, and must not be reused across any tenants associated with that <code>clientRef</code>.</p>\n<blockquote>\n<p>The <code>clientRef</code> value must be agreed with Intrum during onboarding and mapped to internal tenant identifiers. </p>\n</blockquote>\n<h3 id=\"future-direction\">Future Direction</h3>\n<p>The <code>/portfolio</code> resource is designed to support additional capabilities over time, including:</p>\n<ul>\n<li><p>Aggregated reporting (e.g., <code>/portfolio/statusReport</code>)</p>\n</li>\n<li><p>Multi-portfolio segregation</p>\n</li>\n<li><p>Real-time sync enhancements</p>\n</li>\n</ul>\n<h3 id=\"related-resources\">Related Resources</h3>\n<p><strong>Active:</strong></p>\n<ul>\n<li><code>/invoices</code> — Invoice-specific financial operations (e.g., payments, credit notes, withdrawals)</li>\n</ul>\n<p><strong>Planned:</strong></p>\n<ul>\n<li><code>/customers</code> — Reserved for future customer-level interactions (not yet implemented)</li>\n</ul>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"05d08a40-3b88-4040-939b-93f7a5b399e3","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"01cfa25a-0e8c-473a-8433-b5d02e5d48ce","type":"text/javascript","exec":[""]}}],"_postman_id":"461ec4b1-a8cc-446e-9262-76ee54d9d25f"},{"name":"invoices","item":[{"name":"creditNote","item":[{"name":"/invoices/creditNote","id":"05adc620-20c8-4d97-a802-c04b2d3fdfb0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"creditNoteAmount\": \"<number>\",\n  \"creditNoteDate\": \"<date>\",\n  \"invoiceNumber\": \"<string>\",\n  \"itemId\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/creditNote","description":"<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>URL:</strong> <code>POST /invoices/creditNote</code></p>\n<p><strong>Environment URLs:</strong></p>\n<ul>\n<li><p><strong>Integration (INT):</strong> <code>https://collection.test-api-intrum.ch/restServices/v1/invoices/creditNote</code></p>\n</li>\n<li><p><strong>Production (PROD):</strong> <code>https://collection.api-intrum.ch/restServices/v1/invoices/creditNote</code></p>\n</li>\n</ul>\n<p><strong>Authentication:</strong> OAuth 2.0 (Client Credentials Flow)</p>\n<p><strong>Idempotency:</strong> Supported via <code>Idempotency-Key</code> header (valid for 7 days)</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>string</td>\n<td>Yes</td>\n<td>Bearer token from OAuth2.0</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>string</td>\n<td>Yes</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Accept</td>\n<td>string</td>\n<td>Yes</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Idempotency-Key</td>\n<td>string</td>\n<td>Optional</td>\n<td>Used to safely retry identical requests within 7 days</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>creditNoteAmount</td>\n<td>number</td>\n<td>Yes</td>\n<td>Amount to be credited; must not exceed the original invoice amount</td>\n</tr>\n<tr>\n<td>creditNoteDate</td>\n<td>date</td>\n<td>Yes</td>\n<td>Date of the credit note (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>invoiceNumber</td>\n<td>string</td>\n<td>Conditional</td>\n<td>Required if <code>itemId</code> is not provided</td>\n</tr>\n<tr>\n<td>itemId</td>\n<td>string</td>\n<td>Conditional</td>\n<td>Required if <code>invoiceNumber</code> is not provided</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"business-rules\">Business Rules</h3>\n<ul>\n<li><p>Credit notes must reference an invoice — standalone credits are not supported</p>\n</li>\n<li><p>Credited amount must not exceed the invoice total</p>\n</li>\n<li><p>Recalculates collection fees upon credit note registration</p>\n</li>\n<li><p>Requests with the same <code>Idempotency-Key</code> return the same response</p>\n</li>\n</ul>\n<h3 id=\"best-practices\">Best Practices</h3>\n<ul>\n<li><p>Always use <code>Idempotency-Key</code> to guard against retry duplicates</p>\n</li>\n<li><p>Use <code>invoiceNumber</code> or <code>itemId</code> as primary identifiers for precision</p>\n</li>\n<li><p>Track processing results using the <code>/tracking?trackingId=...</code> endpoint</p>\n</li>\n</ul>\n","urlObject":{"path":["invoices","creditNote"],"host":["https://collection.test-api-intrum.ch/restServices/v1"],"query":[],"variable":[]}},"response":[{"id":"e76b2fda-db38-49c2-b5aa-3ba0808a717d","name":"successful request","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"creditNoteAmount\": \"<number>\",\n  \"creditNoteDate\": \"<date>\",\n  \"invoiceNumber\": \"<string>\",\n  \"itemId\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/creditNote"},"status":"Accepted","code":202,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"trackingId\": \"<integer>\",\n  \"message\": \"<string>\"\n}"},{"id":"6602f4f9-8440-4b4f-9fdb-fb276a1e5318","name":"authentication issue","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"creditNoteAmount\": \"<number>\",\n  \"creditNoteDate\": \"<date>\",\n  \"invoiceNumber\": \"<string>\",\n  \"itemId\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/creditNote"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Access denied\"\n}"},{"id":"85cf5ac5-d8d6-4848-a299-234158265c2f","name":"error","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"creditNoteAmount\": \"<number>\",\n  \"creditNoteDate\": \"<date>\",\n  \"invoiceNumber\": \"<string>\",\n  \"itemId\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/creditNote"},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"<string>\"\n}"}],"_postman_id":"05adc620-20c8-4d97-a802-c04b2d3fdfb0"}],"id":"74e644a6-6ec4-4927-9f9b-5385e1198bc5","description":"<h3 id=\"overview\">Overview</h3>\n<p>The <code>POST /invoices/creditNote</code> endpoint allows clients to submit credit notes against previously registered invoices. This ensures proper financial adjustment handling, such as a full or partial invoice cancellation, and is processed asynchronously.</p>\n<p>Each credit note is:</p>\n<ul>\n<li><p>Strictly linked to an existing invoice via <code>invoiceNumber</code> or <code>itemId</code></p>\n</li>\n<li><p>Validated to ensure the credited amount does not exceed the remaining invoice amount</p>\n</li>\n<li><p>Registered using a <code>trackingId</code> for later lookup via the <code>/tracking</code> endpoint</p>\n</li>\n</ul>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"ed99bd93-7237-418b-bfaa-d29a81cd7ae4","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"7933d2ed-acfc-4918-a892-06401ab7358d","type":"text/javascript","exec":[""]}}],"_postman_id":"74e644a6-6ec4-4927-9f9b-5385e1198bc5"},{"name":"payment","item":[{"name":"/invoices/payment","id":"222a9277-e707-403c-be4e-bc1923aa5872","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"totalPaymentAmount\": \"<number>\",\n  \"paymentDate\": \"<date>\",\n  \"paymentId\": \"<string>\",\n  \"invoices\": [\n    {\n      \"paymentAmount\": \"<number>\",\n      \"invoiceNumber\": \"<string>\",\n      \"itemId\": \"<string>\"\n    },\n    {\n      \"paymentAmount\": \"<number>\",\n      \"invoiceNumber\": \"<string>\",\n      \"itemId\": \"<string>\"\n    }\n  ],\n  \"comment\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/payment","description":"<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>URL:</strong> <code>POST /invoices/payment</code></p>\n<p><strong>Environment URLs:</strong></p>\n<ul>\n<li><p><strong>Integration (INT):</strong> <code>https://collection.test-api-intrum.ch/restServices/v1/invoices/payment</code></p>\n</li>\n<li><p><strong>Production (PROD):</strong> <code>https://collection.api-intrum.ch/restServices/v1/invoices/payment</code></p>\n</li>\n</ul>\n<p><strong>Authentication:</strong> OAuth 2.0 (Client Credentials Flow)</p>\n<p><strong>Idempotency:</strong> Supported via <code>Idempotency-Key</code> header (valid for 7 days)</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>string</td>\n<td>Yes</td>\n<td>Bearer token</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>string</td>\n<td>Yes</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Accept</td>\n<td>string</td>\n<td>Yes</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Idempotency-Key</td>\n<td>string</td>\n<td>Optional</td>\n<td>Prevents duplicate processing during retries (valid 7 days)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>paymentId</td>\n<td>string</td>\n<td>Yes</td>\n<td>Unique identifier for the payment (used for business validation)</td>\n</tr>\n<tr>\n<td>totalPaymentAmount</td>\n<td>number</td>\n<td>Yes</td>\n<td>Must be a strictly positive number</td>\n</tr>\n<tr>\n<td>paymentDate</td>\n<td>date</td>\n<td>Yes</td>\n<td>Date of the payment (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>comment</td>\n<td>string</td>\n<td>No</td>\n<td>Optional client-side comment or note</td>\n</tr>\n<tr>\n<td>invoices</td>\n<td>array</td>\n<td>Yes</td>\n<td>List of invoice allocations (see structure below)</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"invoices-array\">invoices[] Array</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>invoiceNumber</td>\n<td>string</td>\n<td>Conditional</td>\n<td>Required if <code>itemId</code> is not provided</td>\n</tr>\n<tr>\n<td>itemId</td>\n<td>string</td>\n<td>Conditional</td>\n<td>Required if <code>invoiceNumber</code> is not provided</td>\n</tr>\n<tr>\n<td>paymentAmount</td>\n<td>number</td>\n<td>Yes</td>\n<td>Positive amount applied to the given invoice</td>\n</tr>\n</tbody>\n</table>\n</div><p>At least one of <code>invoiceNumber</code> or <code>itemId</code> must be provided per invoice object</p>\n<h3 id=\"business-rules\">Business Rules</h3>\n<ul>\n<li><p>Payment amounts must be greater than zero</p>\n</li>\n<li><p>Reversals are not supported in this endpoint (use <code>/invoices/paymentReversal</code>)</p>\n</li>\n<li><p>A unique <code>paymentId</code> must be used per invoice to avoid duplicates</p>\n</li>\n<li><p>Idempotency key is optional but recommended for network resiliency</p>\n</li>\n</ul>\n<h3 id=\"best-practices\">Best Practices</h3>\n<p><strong>Important:</strong> Clients must ensure that payments originally forwarded from Intrum to the client are never reported back via this endpoint. This avoids duplicate processing and prevents misaligned balances in the collection system.</p>\n<ul>\n<li><p>Always use <code>paymentId</code> and <code>invoiceNumber</code> or <code>itemId</code> together for traceability</p>\n</li>\n<li><p>Apply <code>Idempotency-Key</code> during retries to prevent accidental duplicates</p>\n</li>\n<li><p>Use <code>/tracking</code> endpoint with the returned <code>trackingId</code> to monitor processing</p>\n</li>\n</ul>\n","urlObject":{"path":["invoices","payment"],"host":["https://collection.test-api-intrum.ch/restServices/v1"],"query":[],"variable":[]}},"response":[{"id":"5cc5acdc-078d-42ee-8031-60802f35a446","name":"successful request","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"totalPaymentAmount\": \"<number>\",\n  \"paymentDate\": \"<date>\",\n  \"paymentId\": \"<string>\",\n  \"invoices\": [\n    {\n      \"paymentAmount\": \"<number>\",\n      \"invoiceNumber\": \"<string>\",\n      \"itemId\": \"<string>\"\n    },\n    {\n      \"paymentAmount\": \"<number>\",\n      \"invoiceNumber\": \"<string>\",\n      \"itemId\": \"<string>\"\n    }\n  ],\n  \"comment\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/payment"},"status":"Accepted","code":202,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"trackingId\": \"<integer>\",\n  \"message\": \"<string>\"\n}"},{"id":"2e704965-79a8-4b20-a6b4-2f69e1522426","name":"authentication issue","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"totalPaymentAmount\": \"<number>\",\n  \"paymentDate\": \"<date>\",\n  \"paymentId\": \"<string>\",\n  \"invoices\": [\n    {\n      \"paymentAmount\": \"<number>\",\n      \"invoiceNumber\": \"<string>\",\n      \"itemId\": \"<string>\"\n    },\n    {\n      \"paymentAmount\": \"<number>\",\n      \"invoiceNumber\": \"<string>\",\n      \"itemId\": \"<string>\"\n    }\n  ],\n  \"comment\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/payment"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Access denied\"\n}"},{"id":"89b82b7b-854c-4d5f-b1a9-59fe78d0cdc3","name":"error","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"totalPaymentAmount\": \"<number>\",\n  \"paymentDate\": \"<date>\",\n  \"paymentId\": \"<string>\",\n  \"invoices\": [\n    {\n      \"paymentAmount\": \"<number>\",\n      \"invoiceNumber\": \"<string>\",\n      \"itemId\": \"<string>\"\n    },\n    {\n      \"paymentAmount\": \"<number>\",\n      \"invoiceNumber\": \"<string>\",\n      \"itemId\": \"<string>\"\n    }\n  ],\n  \"comment\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/payment"},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"<string>\"\n}"}],"_postman_id":"222a9277-e707-403c-be4e-bc1923aa5872"}],"id":"08956ed9-a04f-490a-85b1-5a24605742b5","description":"<h3 id=\"overview\">Overview</h3>\n<p>The <code>POST /invoices/payment</code> endpoint allows clients to report payments made directly to them that relate to outstanding debts in Intrum's system. Clients must ensure that payments originally forwarded from Intrum to the client are never reported back via this endpoint. This avoids duplicate processing and prevents misaligned balances in the collection system.</p>\n<ul>\n<li><p>Positive payment registration only (no reversals)</p>\n</li>\n<li><p>Invoice-level allocations</p>\n</li>\n<li><p>Safe retries via idempotency</p>\n</li>\n<li><p>Tracking of asynchronous processing</p>\n</li>\n</ul>\n<p>Each payment must be uniquely identifiable by a <code>paymentId</code> and associated with at least one invoice via <code>invoiceNumber</code> or <code>itemId</code>.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"22cc2bcb-94df-415d-a9a7-5917edc0e871","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"e86b2e02-7e4b-468e-a8a8-1614e038b614","type":"text/javascript","exec":[""]}}],"_postman_id":"08956ed9-a04f-490a-85b1-5a24605742b5"},{"name":"paymentReversal","item":[{"name":"/invoices/paymentReversal","id":"0c9e7617-cc5e-4e4e-ab1e-1d75110b6192","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"paymentId\": \"<string>\",\n  \"reversalDate\": \"<date>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/paymentReversal","description":"<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>URL:</strong> <code>POST /invoices/paymentReversal</code></p>\n<p><strong>Environment URLs:</strong></p>\n<ul>\n<li><p><strong>Integration (INT):</strong> <code>https://collection.test-api-intrum.ch/restServices/v1/invoices/paymentReversal</code></p>\n</li>\n<li><p><strong>Production (PROD):</strong> <code>https://collection.api-intrum.ch/restServices/v1/invoices/paymentReversal</code></p>\n</li>\n</ul>\n<p><strong>Authentication:</strong> OAuth 2.0 (Client Credentials Flow)</p>\n<p><strong>Idempotency:</strong> Supported via <code>Idempotency-Key</code> header (valid for 7 days)</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>string</td>\n<td>Yes</td>\n<td>Bearer token</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>string</td>\n<td>Yes</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Accept</td>\n<td>string</td>\n<td>Yes</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Idempotency-Key</td>\n<td>string</td>\n<td>Optional</td>\n<td>Prevents duplicate reversal processing (valid 7 days)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>paymentId</td>\n<td>string</td>\n<td>Yes</td>\n<td>Identifier of the original payment to reverse</td>\n</tr>\n<tr>\n<td>reversalDate</td>\n<td>date</td>\n<td>Yes</td>\n<td>Date of the reversal (Format: YYYY-MM-DD)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"business-rules\">Business Rules</h3>\n<ul>\n<li><p>Reversals must be for the <strong>full original payment amount</strong></p>\n</li>\n<li><p>Partial reversals are <strong>not supported</strong></p>\n</li>\n<li><p>Reversals must reference an **existing and valid ****<code>paymentId</code>**</p>\n</li>\n<li><p>Reused <code>Idempotency-Key</code> within 7 days returns original response</p>\n</li>\n<li><p>Tracking information (<code>trackingId</code>) is valid for up to 90 days</p>\n</li>\n</ul>\n<h3 id=\"best-practices\">Best Practices</h3>\n<ul>\n<li><p>Validate payment status before initiating a reversal</p>\n</li>\n<li><p>Store the original <code>paymentId</code> to support reversal use cases</p>\n</li>\n<li><p>Apply <code>Idempotency-Key</code> for retry-safe submissions</p>\n</li>\n<li><p>Use the <code>/tracking?trackingId=...</code> endpoint to monitor progress</p>\n</li>\n</ul>\n","urlObject":{"path":["invoices","paymentReversal"],"host":["https://collection.test-api-intrum.ch/restServices/v1"],"query":[],"variable":[]}},"response":[{"id":"e58fe2ed-21f2-4754-80d3-aaf05f2c65fd","name":"successful request","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"paymentId\": \"<string>\",\n  \"reversalDate\": \"<date>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/paymentReversal"},"status":"Accepted","code":202,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"trackingId\": \"<integer>\",\n  \"message\": \"<string>\"\n}"},{"id":"2bb72cc1-1d9a-42f0-a583-263d14a88aee","name":"authentication issue","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"paymentId\": \"<string>\",\n  \"reversalDate\": \"<date>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/paymentReversal"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Access denied\"\n}"},{"id":"55405144-ca7b-49e5-91c8-6cc58d376830","name":"error","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"paymentId\": \"<string>\",\n  \"reversalDate\": \"<date>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/paymentReversal"},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"<string>\"\n}"}],"_postman_id":"0c9e7617-cc5e-4e4e-ab1e-1d75110b6192"}],"id":"dfd94a44-00b2-4fb5-aa1f-6f5ab2341308","description":"<h3 id=\"overview\">Overview</h3>\n<p>The <code>POST /invoices/paymentReversal</code> endpoint allows clients to explicitly reverse a previously reported payment. It provides a clear mechanism for correcting payment errors.</p>\n<p>This endpoint ensures:</p>\n<ul>\n<li><p>Separation of reversal logic from the standard payment flow</p>\n</li>\n<li><p>One-to-one reversal matching based on <code>paymentId</code></p>\n</li>\n<li><p>Support for idempotent retries</p>\n</li>\n<li><p>Tracking of reversal requests via <code>trackingId</code></p>\n</li>\n</ul>\n<p>Partial reversals are <strong>not supported</strong>. Clients must reverse the full payment and submit a new payment with the corrected amount if needed.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"c1b10ed7-6405-4a7f-91b1-97cc6b1717eb","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"5c432016-0922-49d6-813d-5413f8beb7af","type":"text/javascript","exec":[""]}}],"_postman_id":"dfd94a44-00b2-4fb5-aa1f-6f5ab2341308"},{"name":"withdrawal","item":[{"name":"/invoices/withdrawal","id":"c1597611-5f1f-4afc-bde5-75fb3695a22b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"invoiceNumber\": \"<string>\",\n  \"itemId\": \"<string>\",\n  \"reasonCode\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/withdrawal","description":"<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>URL:</strong> <code>POST /invoices/withdrawal</code></p>\n<p><strong>Environment URLs:</strong></p>\n<ul>\n<li><p><strong>Integration (INT):</strong> <code>https://collection.test-api-intrum.ch/restServices/v1/invoices/withdrawal</code></p>\n</li>\n<li><p><strong>Production (PROD):</strong> <code>https://collection.api-intrum.ch/restServices/v1/invoices/withdrawal</code></p>\n</li>\n</ul>\n<p><strong>Authentication:</strong> OAuth 2.0 (Client Credentials Flow)</p>\n<p><strong>Idempotency:</strong> Supported via <code>Idempotency-Key</code> header (valid for 7 days)</p>\n<h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>string</td>\n<td>Yes</td>\n<td>Bearer token</td>\n</tr>\n<tr>\n<td>Content-Type</td>\n<td>string</td>\n<td>Yes</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Accept</td>\n<td>string</td>\n<td>Yes</td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td>Idempotency-Key</td>\n<td>string</td>\n<td>Optional</td>\n<td>Prevents duplicate processing during retries (valid 7 days)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"request-body\">Request Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>invoiceNumber</td>\n<td>string</td>\n<td>Conditional</td>\n<td>Required if <code>itemId</code> is not provided</td>\n</tr>\n<tr>\n<td>itemId</td>\n<td>string</td>\n<td>Conditional</td>\n<td>Required if <code>invoiceNumber</code> is not provided</td>\n</tr>\n<tr>\n<td>reasonCode</td>\n<td>string</td>\n<td>No</td>\n<td>Code describing the reason for withdrawal. Enum: <code>BY_CLIENT</code>, <code>RETURN_GOODS_TO_CLIENT</code></td>\n</tr>\n</tbody>\n</table>\n</div><p>One of <code>invoiceNumber</code> or <code>itemId</code> must be provided to identify the invoice to withdraw.</p>\n<h3 id=\"business-rules\">Business Rules</h3>\n<ul>\n<li><p>At least one of <code>invoiceNumber</code> or <code>itemId</code> must be present</p>\n</li>\n<li><p>If the withdrawn invoice is the last open invoice in a case, the case is closed automatically</p>\n</li>\n<li><p>Idempotency prevents duplicate handling of retries (valid for 7 days)</p>\n</li>\n<li><p><code>trackingId</code> is generated for each accepted request and remains valid for 90 days</p>\n</li>\n</ul>\n<h3 id=\"best-practices\">Best Practices</h3>\n<ul>\n<li><p>Use <code>Idempotency-Key</code> to ensure safe retries, especially in case of network errors</p>\n</li>\n<li><p>Store and track each <code>trackingId</code> for post-submission auditability</p>\n</li>\n<li><p>Ensure invoice identifiers are current and valid before submitting the request</p>\n</li>\n</ul>\n","urlObject":{"path":["invoices","withdrawal"],"host":["https://collection.test-api-intrum.ch/restServices/v1"],"query":[],"variable":[]}},"response":[{"id":"9810663e-5dee-4384-8863-b79bd86473d6","name":"successful request","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"invoiceNumber\": \"<string>\",\n  \"itemId\": \"<string>\",\n  \"reasonCode\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/withdrawal"},"status":"Accepted","code":202,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"trackingId\": \"<integer>\",\n  \"message\": \"<string>\"\n}"},{"id":"6c5499d2-17e6-4235-9863-ed97e6ca9e6d","name":"authentication issue","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"invoiceNumber\": \"<string>\",\n  \"itemId\": \"<string>\",\n  \"reasonCode\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/withdrawal"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Access denied\"\n}"},{"id":"2d5cedf1-abd7-4e49-8ffd-b0293d23b88c","name":"error","originalRequest":{"method":"POST","header":[{"key":"Idempotency-Key","value":"<uuid>"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"body":{"mode":"raw","raw":"{\n  \"invoiceNumber\": \"<string>\",\n  \"itemId\": \"<string>\",\n  \"reasonCode\": \"<string>\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/withdrawal"},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"<string>\"\n}"}],"_postman_id":"c1597611-5f1f-4afc-bde5-75fb3695a22b"}],"id":"a25bb408-ae43-481b-932f-70b850573cfc","description":"<h3 id=\"overview\">Overview</h3>\n<p>The <code>POST /invoices/withdrawal</code> endpoint allows clients to withdraw individual invoices from the collection process. This ensures greater flexibility in portfolio management and aligns with real-world client workflows, where invoice-level actions are often necessary.</p>\n<p>Key features include:</p>\n<ul>\n<li><p>Independent withdrawal of single invoices</p>\n</li>\n<li><p>Automatic case closure if all associated invoices are withdrawn</p>\n</li>\n<li><p>Request tracking and idempotency support for safe retries</p>\n</li>\n</ul>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"9ddb1a78-dab1-43c2-95d2-8fe9db0259d4","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"1ae28a64-aaec-4aef-b4fe-9d9b2f61b879","type":"text/javascript","exec":[""]}}],"_postman_id":"a25bb408-ae43-481b-932f-70b850573cfc"},{"name":"query","item":[{"name":"/invoices/query","id":"7eff92bd-4cae-4beb-bb79-323606407bfb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://collection.test-api-intrum.ch/restServices/v1/invoices/query?invoiceNumber=<string>&itemId=<string>&addInvoiceAttributes=false","description":"<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>URL:</strong> <code>GET /invoices/query</code></p>\n<p><strong>Environment URLs:</strong></p>\n<ul>\n<li><p><strong>Integration (INT):</strong> <code>https://collection.test-api-intrum.ch/restServices/v1/invoices/query</code></p>\n</li>\n<li><p><strong>Production (PROD):</strong> <code>https://collection.api-intrum.ch/restServices/v1/invoices/query</code></p>\n</li>\n</ul>\n<p><strong>Authentication:</strong> OAuth 2.0 (Client Credentials Flow)</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>invoiceNumber</td>\n<td>string</td>\n<td>Conditional</td>\n<td>Unique invoice reference. Required if <code>itemId</code> is not provided</td>\n</tr>\n<tr>\n<td>itemId</td>\n<td>string</td>\n<td>Conditional</td>\n<td>Internal identifier. Required if <code>invoiceNumber</code> is not provided</td>\n</tr>\n<tr>\n<td>addInvoiceAttributes</td>\n<td>Boolean</td>\n<td>No</td>\n<td>If true, includes the <code>invoiceAttributesInformation</code> bucket in the response  <br />Defaults to \"FALSE\"</td>\n</tr>\n</tbody>\n</table>\n</div><p>One of <code>invoiceNumber</code> or <code>itemId</code> must be specified. Supplying both is valid, but at least one is required.</p>\n<h3 id=\"response-structure\">Response Structure</h3>\n<h4 id=\"default-invoiceinformation\">Default: <code>invoiceInformation</code></h4>\n<h3 id=\"response-body\">Response Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>invoiceDate</td>\n<td>date</td>\n<td>Invoice issuance date (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>dueDate</td>\n<td>date</td>\n<td>Payment due date (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>invoiceNumber</td>\n<td>string</td>\n<td>Unique invoice reference</td>\n</tr>\n<tr>\n<td>invoiceReason</td>\n<td>string</td>\n<td>Description of invoiced service/product</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>string</td>\n<td>ISO 4217 currency code (e.g., CHF)</td>\n</tr>\n<tr>\n<td>interestRate</td>\n<td>number</td>\n<td>Annual interest rate (%)</td>\n</tr>\n<tr>\n<td>invoiceClaimedAmount</td>\n<td>number</td>\n<td>Original invoice amount</td>\n</tr>\n<tr>\n<td>invoiceClientCosts</td>\n<td>number</td>\n<td>Additional client-billed costs</td>\n</tr>\n<tr>\n<td>invoiceRemainingAmount</td>\n<td>number</td>\n<td>Remaining principal</td>\n</tr>\n<tr>\n<td>invoiceRemainingClientCosts</td>\n<td>number</td>\n<td>Remaining client-billed costs</td>\n</tr>\n<tr>\n<td>currentMainStatusCode</td>\n<td>integer</td>\n<td>This field contains the aggregated status of the case, providing a normalized view of its current processing state</td>\n</tr>\n<tr>\n<td>mainStatusDescription</td>\n<td>string</td>\n<td>Description of the main status</td>\n</tr>\n<tr>\n<td>currentDetailStatusCode</td>\n<td>integer</td>\n<td>Detailed status code reflecting the current operational stage of the case</td>\n</tr>\n<tr>\n<td>detailStatusDescription</td>\n<td>string</td>\n<td>Description of the detailed status</td>\n</tr>\n<tr>\n<td>claimConcern</td>\n<td>string</td>\n<td>Claim theme or categorization</td>\n</tr>\n<tr>\n<td>openingDate</td>\n<td>date</td>\n<td>Claim opening date (Format: YYYY-MM-DD)</td>\n</tr>\n<tr>\n<td>closingCode</td>\n<td>integer</td>\n<td>Closing code, if applicable</td>\n</tr>\n<tr>\n<td>closingCodeDescription</td>\n<td>string</td>\n<td>Description of closing reason</td>\n</tr>\n<tr>\n<td>currentProductCode</td>\n<td>integer</td>\n<td>Collection product code</td>\n</tr>\n<tr>\n<td>productDescription</td>\n<td>string</td>\n<td>Label of assigned collection product</td>\n</tr>\n<tr>\n<td>caseNumber</td>\n<td>integer</td>\n<td>Case identifier linked to the invoice</td>\n</tr>\n<tr>\n<td>customerReference</td>\n<td>string</td>\n<td>External customer ID provided by client</td>\n</tr>\n</tbody>\n</table>\n</div><p>The <code>invoiceNumber</code> field is used as the <code>sortBy</code> attribute for pagination purposes in this endpoint.</p>\n<h4 id=\"optional-invoiceattributes\">Optional: <code>invoiceAttributes</code></h4>\n<h4 id=\"invoiceattributes-array\">invoiceAttributes[] Array</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>attributeType</td>\n<td>string</td>\n<td>One of: <code>itemId</code>, <code>internalCustomerId</code>, <code>contractId</code>, etc.</td>\n</tr>\n<tr>\n<td>attributeValue</td>\n<td>string</td>\n<td>Attribute value</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"business-rules\">Business Rules</h3>\n<ul>\n<li><p>Request must include either <code>invoiceNumber</code> or <code>itemId</code></p>\n</li>\n<li><p>Invalid or non-matching identifiers return a 422 error</p>\n</li>\n</ul>\n","urlObject":{"path":["invoices","query"],"host":["https://collection.test-api-intrum.ch/restServices/v1"],"query":[{"description":{"content":"<p>Unique invoice reference. Required if <code>itemId</code> is not provided</p>\n","type":"text/plain"},"key":"invoiceNumber","value":"<string>"},{"description":{"content":"<p>Internal identifier. Required if <code>invoiceNumber</code> is not provided</p>\n","type":"text/plain"},"key":"itemId","value":"<string>"},{"description":{"content":"<p>If <code>true</code>, includes the invoiceAttributesInformation bucket in the response\nDefaults to <code>false</code></p>\n","type":"text/plain"},"key":"addInvoiceAttributes","value":"false"}],"variable":[]}},"response":[{"id":"b2c5f36e-07b4-46cb-91d4-1bf3657e2947","name":"successful request: default response","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/invoices/query?invoiceNumber=<string>&itemId=<string>&addInvoiceAttributes=false","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["invoices","query"],"query":[{"description":"Unique invoice reference. Required if ``itemId`` is not provided","key":"invoiceNumber","value":"<string>"},{"description":"Internal identifier. Required if ``invoiceNumber`` is not provided","key":"itemId","value":"<string>"},{"description":"If ``true``, includes the invoiceAttributesInformation bucket in the response\nDefaults to ``false``","key":"addInvoiceAttributes","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"invoiceDate\": \"2023-06-19\",\n  \"dueDate\": \"2023-07-19\",\n  \"invoiceNumber\": \"12345\",\n  \"invoiceReason\": \"Testing is fun\",\n  \"currency\": \"CHF\",\n  \"interestRate\": 5,\n  \"invoiceClaimedAmount\": 500.5,\n  \"invoiceClientCosts\": 20,\n  \"invoiceRemainingAmount\": 500.5,\n  \"invoiceRemainingClientCosts\": 20,\n  \"currentMainStatusCode\": 1,\n  \"mainStatusDescription\": \"Amicable collection\",\n  \"currentDetailStatusCode\": 11,\n  \"detailStatusDescription\": \"Forderung rechtlich anerkannt\",\n  \"claimConcern\": \"Testing is fun\",\n  \"openingDate\": \"2024-06-19\",\n  \"closingCode\": \"<integer>\",\n  \"closingCodeDescription\": \"<string>\",\n  \"currentProductCode\": 1,\n  \"productDescription\": \"Collection\",\n  \"caseNumber\": 123456,\n  \"customerReference\": \"Testing\"\n}"},{"id":"da9d389e-e0f1-4ecc-894e-3a837f77e901","name":"successful request: response with invoice attributes","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/invoices/query?invoiceNumber=<string>&itemId=<string>&addInvoiceAttributes=false","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["invoices","query"],"query":[{"description":"Unique invoice reference. Required if ``itemId`` is not provided","key":"invoiceNumber","value":"<string>"},{"description":"Internal identifier. Required if ``invoiceNumber`` is not provided","key":"itemId","value":"<string>"},{"description":"If ``true``, includes the invoiceAttributesInformation bucket in the response\nDefaults to ``false``","key":"addInvoiceAttributes","value":"false"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"invoiceDate\": \"2023-06-19\",\n  \"dueDate\": \"2023-07-19\",\n  \"invoiceNumber\": \"12345\",\n  \"invoiceReason\": \"Testing is fun\",\n  \"currency\": \"CHF\",\n  \"interestRate\": 5,\n  \"invoiceClaimedAmount\": 500.5,\n  \"invoiceClientCosts\": 20,\n  \"invoiceRemainingAmount\": 500.5,\n  \"invoiceRemainingClientCosts\": 20,\n  \"currentMainStatusCode\": 1,\n  \"mainStatusDescription\": \"Amicable collection\",\n  \"currentDetailStatusCode\": 11,\n  \"detailStatusDescription\": \"Forderung rechtlich anerkannt\",\n  \"claimConcern\": \"Testing is fun\",\n  \"openingDate\": \"2024-06-19\",\n  \"closingCode\": \"<integer>\",\n  \"closingCodeDescription\": \"<string>\",\n  \"currentProductCode\": 1,\n  \"productDescription\": \"Collection\",\n  \"caseNumber\": 123456,\n  \"customerReference\": \"Testing\",\n  \"invoiceAttributes\": [\n    {\n      \"attributeType\": \"itemId\",\n      \"attributeValue\": \"INV-123\"\n    }\n  ]\n}"},{"id":"b4e8fb46-6a06-430f-af5b-0a5a2c531bce","name":"authentication issue","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/invoices/query?invoiceNumber=<string>&itemId=<string>&addInvoiceAttributes=false","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["invoices","query"],"query":[{"description":"Unique invoice reference. Required if ``itemId`` is not provided","key":"invoiceNumber","value":"<string>"},{"description":"Internal identifier. Required if ``invoiceNumber`` is not provided","key":"itemId","value":"<string>"},{"description":"If ``true``, includes the invoiceAttributesInformation bucket in the response\nDefaults to ``false``","key":"addInvoiceAttributes","value":"false"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Access denied\"\n}"},{"id":"dbf3dbc0-8766-44d8-8b6e-a48723280e94","name":"error","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/invoices/query?invoiceNumber=<string>&itemId=<string>&addInvoiceAttributes=false","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["invoices","query"],"query":[{"description":"Unique invoice reference. Required if ``itemId`` is not provided","key":"invoiceNumber","value":"<string>"},{"description":"Internal identifier. Required if ``invoiceNumber`` is not provided","key":"itemId","value":"<string>"},{"description":"If ``true``, includes the invoiceAttributesInformation bucket in the response\nDefaults to ``false``","key":"addInvoiceAttributes","value":"false"}]}},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"<string>\"\n}"}],"_postman_id":"7eff92bd-4cae-4beb-bb79-323606407bfb"}],"id":"5b043ef2-0d40-479c-8bb7-3450508ca564","description":"<h3 id=\"overview\">Overview</h3>\n<p>The <code>GET /invoices/query</code> endpoint allows clients to retrieve detailed invoice-level information based on a unique invoice identifier. It is primarily used by clients who need to track status at the invoice level rather than the case level. Financial data returned by this endpoint represents a snapshot of the current state and must not be used for reconciliation or audit purposes.</p>\n<p>By default, the response includes only the <code>invoiceInformation</code> bucket. Optional enrichment is available via the <code>addInvoiceAttributes</code> parameter.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"05605ef3-6584-47b1-a824-71bf880297f2","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"3a94825e-47f0-4edb-953e-e7428a6f55fd","type":"text/javascript","exec":[""]}}],"_postman_id":"5b043ef2-0d40-479c-8bb7-3450508ca564"}],"id":"1f68bd6c-93d4-4272-902d-637e9aaef443","description":"<h3 id=\"description\">Description</h3>\n<p>The <code>/invoices</code> resource represents <strong>individual financial claims</strong> that clients have submitted for collection. It is the core financial transaction surface of the CPS API and provides dedicated functionality to manage and monitor invoice-level processes.</p>\n<p>The resource provides full support for operational lifecycle events like payment reporting, credit note submission, invoice withdrawal, and status lookups.</p>\n<h3 id=\"strategic-purpose\">Strategic Purpose</h3>\n<p>The introduction of <code>/invoices</code> as a top-level resource:</p>\n<ul>\n<li><p>Replaces case-centric logic with <strong>invoice-native financial workflows</strong></p>\n</li>\n<li><p>Enables precise, targeted operations at the <strong>invoice level</strong></p>\n</li>\n<li><p>Establishes a scalable structure for financial process automation</p>\n</li>\n<li><p>Allows fine-grained status monitoring and reversal control</p>\n</li>\n</ul>\n<h3 id=\"included-endpoints\">Included Endpoints</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Method</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>/invoices/payment</code></td>\n<td>POST</td>\n<td>Report a direct payment received by the client</td>\n</tr>\n<tr>\n<td><code>/invoices/paymentReversal</code></td>\n<td>POST</td>\n<td>Revoke a previously submitted client-side payment</td>\n</tr>\n<tr>\n<td><code>/invoices/creditNote</code></td>\n<td>POST</td>\n<td>Submit a credit note to reduce outstanding invoice value</td>\n</tr>\n<tr>\n<td><code>/invoices/withdrawal</code></td>\n<td>POST</td>\n<td>Withdraw an invoice from the collection process</td>\n</tr>\n<tr>\n<td><code>/invoices/query</code></td>\n<td>GET</td>\n<td>Retrieve financial and status information of a given invoice</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"resource-characteristics\">Resource Characteristics</h3>\n<ul>\n<li><p>Focuses on <strong>financial updates</strong> related to specific invoices</p>\n</li>\n<li><p>Supports <strong>immutable</strong> records for finalized financial operations (e.g., payment registration)</p>\n</li>\n<li><p>All invoice endpoints are <strong>asynchronous</strong>, using <code>trackingId</code> for status polling</p>\n</li>\n<li><p>Operates independently from customer grouping and registration</p>\n</li>\n</ul>\n<h3 id=\"separation-of-concerns\">Separation of Concerns</h3>\n<p>The <code>/invoices</code> resource is designed to clearly separate <strong>invoice lifecycle</strong> from:</p>\n<ul>\n<li><p><code>/portfolio</code> (case and registration level operations)</p>\n</li>\n<li><p><code>/customers</code> (planned resource for customer-specific actions)</p>\n</li>\n</ul>\n<p>This ensures:</p>\n<ul>\n<li><p>Cleaner, modular API design</p>\n</li>\n<li><p>Enhanced integration with ERP and A/R tools</p>\n</li>\n<li><p>Easier automation for status and transaction reporting</p>\n</li>\n</ul>\n<h3 id=\"related-resources\">Related Resources</h3>\n<p><strong>Active:</strong></p>\n<ul>\n<li><code>/portfolio</code> — Portfolio-level registration, query, and journalized payments</li>\n</ul>\n<p><strong>Planned:</strong></p>\n<ul>\n<li><code>/customers</code> — Reserved for future customer record maintenance and status tracking</li>\n</ul>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"2f464951-aa98-4536-8505-adc49923a1b9","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"f7581caa-16be-4ea3-9319-372b74c38d15","type":"text/javascript","exec":[""]}}],"_postman_id":"1f68bd6c-93d4-4272-902d-637e9aaef443"},{"name":"tracking","item":[{"name":"/tracking","id":"8a4374be-e025-4f95-baf0-a7e7a5ca9141","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"https://collection.test-api-intrum.ch/restServices/v1/tracking?trackingId=<integer>","description":"<h3 id=\"endpoint\">Endpoint</h3>\n<p><strong>URL:</strong> <code>GET /tracking</code></p>\n<p><strong>Environment URLs:</strong></p>\n<ul>\n<li><p><strong>Integration (INT):</strong> <code>https://collection.test-api-intrum.ch/restServices/v1/tracking</code></p>\n</li>\n<li><p><strong>Production (PROD):</strong> <code>https://collection.api-intrum.ch/restServices/v1/tracking</code></p>\n</li>\n</ul>\n<p><strong>Authentication:</strong> OAuth 2.0 (Client Credentials Flow)</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>trackingId</td>\n<td>integer</td>\n<td>Yes</td>\n<td>Unique ID provided at time of original request</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response-body\">Response Body</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>trackingId</td>\n<td>integer</td>\n<td>Echo of the submitted tracking ID</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>date-time</td>\n<td>Timestamp when the original request was received ((Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n<tr>\n<td>transactions</td>\n<td>array</td>\n<td>List of tracked sub-operations (see structure below)</td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"transactions-array\">transactions[] Array</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>One of: <code>REGISTERED</code>, <code>IN_PROGRESS</code>, <code>COMPLETED</code>, <code>FAILED</code></td>\n</tr>\n<tr>\n<td>message</td>\n<td>string</td>\n<td>Human-readable explanation of the current state</td>\n</tr>\n<tr>\n<td>lastUpdated</td>\n<td>date-time</td>\n<td>Timestamp of the last update (Format: YYYY-MM-DDTHH:MM:SSZ)</td>\n</tr>\n<tr>\n<td>identifiers</td>\n<td>object</td>\n<td>Key-value pairs referencing linked identifiers (e.g., invoiceNumber, caseNumber)</td>\n</tr>\n<tr>\n<td>errors</td>\n<td>string</td>\n<td>Optional. Will contain error details if <code>status</code> is <code>FAILED</code> (future use)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"status-lifecycle\">Status Lifecycle</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>REGISTERED</td>\n<td>The request has been received and logged, but processing has not started</td>\n</tr>\n<tr>\n<td>IN_PROGRESS</td>\n<td>The request is currently being processed by Intrum’s system</td>\n</tr>\n<tr>\n<td>COMPLETED</td>\n<td>The request has been processed successfully</td>\n</tr>\n<tr>\n<td>FAILED</td>\n<td>The request was rejected or encountered a permanent error during processing</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Only the authenticated client can access their tracking data</p>\n</li>\n<li><p>Each <code>trackingId</code> is valid for 90 days from creation</p>\n</li>\n<li><p>The tracking API does not allow cancelation or modification of a request</p>\n</li>\n</ul>\n","urlObject":{"path":["tracking"],"host":["https://collection.test-api-intrum.ch/restServices/v1"],"query":[{"description":{"content":"<p>(Required) Unique ID provided at time of original request</p>\n","type":"text/plain"},"key":"trackingId","value":"<integer>"}],"variable":[]}},"response":[{"id":"3fcfe8a2-c65f-47c1-adfa-cbe38ab380e6","name":"successful request","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/tracking?trackingId=<integer>","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["tracking"],"query":[{"description":"(Required) Unique ID provided at time of original request","key":"trackingId","value":"<integer>"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"trackingId\": \"<integer>\",\n  \"createdAt\": \"<dateTime>\",\n  \"transactions\": [\n    {\n      \"status\": \"IN_PROGRESS\",\n      \"message\": \"<string>\",\n      \"lastUpdated\": \"<dateTime>\",\n      \"identifiers\": {\n        \"invoiceNumber\": \"<string>\"\n      },\n      \"errors\": \"<string>\"\n    },\n    {\n      \"status\": \"IN_PROGRESS\",\n      \"message\": \"<string>\",\n      \"lastUpdated\": \"<dateTime>\",\n      \"identifiers\": {\n        \"invoiceNumber\": \"<string>\"\n      },\n      \"errors\": \"<string>\"\n    }\n  ]\n}"},{"id":"4caa6a73-a757-4660-9117-031335fc15a5","name":"authentication issue","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/tracking?trackingId=<integer>","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["tracking"],"query":[{"description":"(Required) Unique ID provided at time of original request","key":"trackingId","value":"<integer>"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"Access denied\"\n}"},{"id":"e14f91e3-3da1-4d21-9e6e-3f73f56f2189","name":"error","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"description":"Added as a part of security scheme: oauth2","key":"Authorization","value":"<token>"}],"url":{"raw":"https://collection.test-api-intrum.ch/restServices/v1/tracking?trackingId=<integer>","host":["https://collection.test-api-intrum.ch/restServices/v1"],"path":["tracking"],"query":[{"description":"(Required) Unique ID provided at time of original request","key":"trackingId","value":"<integer>"}]}},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"<string>\"\n}"}],"_postman_id":"8a4374be-e025-4f95-baf0-a7e7a5ca9141"}],"id":"b7e5b86c-8c73-482e-a4ee-d50eb1ba5070","description":"<h3 id=\"overview\">Overview</h3>\n<p>The <code>GET /tracking</code> endpoint allows clients to retrieve the current processing status and metadata of a previously submitted asynchronous request. Clients use the <code>trackingId</code> received in the response of a POST request (e.g., <code>/registration</code>, <code>/payment</code>, <code>/creditNote</code>) to check whether the operation is still pending, completed, or has failed.</p>\n<p>This service is read-only, and only tracking records created by the authenticated client can be queried. Tracking data is retained for up to <strong>90 days</strong> after submission.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"b43dc131-2c13-4fc1-8853-33518afa40e8","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"7049e575-34dd-4273-bd45-084e8a410d18","type":"text/javascript","exec":[""]}}],"_postman_id":"b7e5b86c-8c73-482e-a4ee-d50eb1ba5070"}],"event":[{"listen":"prerequest","script":{"id":"4cedbc5c-bfb3-42af-9f41-ba4559e87b71","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"d1476c5c-3eaf-4cb3-96ff-bfb99a1295eb","type":"text/javascript","exec":[""]}}],"variable":[{"key":"baseUrl","value":"https://collection.test-api-intrum.ch/restServices/v1","type":"any"}]}