Source: https://docs.debitura.com/api/customer-api/payments

# Payments — Customer API

Base URL: `https://customer-api.debitura.com`

Authentication: `XApiKey` API key; see [authentication](https://docs.debitura.com/developer-concepts/authentication.md).

Generated from [OpenAPI](https://docs.debitura.com/openapi/customer-api.json). Examples are schema illustrations, not observed responses. Complete schemas, including recursive types, are in OpenAPI.

<a id="list-payments"></a>

## List payments

`GET /Payments`

Returns a paginated list of all payments recorded on your account across all cases.

**Pagination:**
- Page (default: 1) - Page number, starting from 1
- PageSize (default: 10, max: 100) - Number of results per page

**Response:**
- Returns PaymentListApiDTO with page metadata and payments array
- Each payment includes case reference, amount, currency, date, payment type, and status
- Page metadata includes: totalResults, currentPage, skipped, pageSize

**Note:** This endpoint returns ALL payments across all your cases. To get payments for a specific case, use GET /cases/{id}/payments instead.

### Query parameters

- `Page` (integer): 
- `PageSize` (integer): 

### Response 200

Payments returned

- `page` (object, required): 
- `page.totalResults` (integer): 
- `page.pageSize` (integer): 
- `page.currentPage` (integer): 
- `page.responseCount` (integer): 
- `page.totalPages` (integer): 
- `payments` (array of objects, nullable): 
- `payments[].id` (uuid): 
- `payments[].dateCreated` (datetime): 
- `payments[].dateUpdated` (datetime, nullable): 
- `payments[].date` (datetime): 
- `payments[].grossAmount` (number): 
- `payments[].recipient` (string, required, nullable): 
- `payments[].method` (string, required, nullable): 
- `payments[].currency` (string, required, nullable): 
- `payments[].invoice` (object, required): 
- `payments[].invoice.status` (string, required, nullable): 
- `payments[].invoice.reference` (string, required, nullable): 
- `payments[].invoice.invoiceId` (uuid): 

```json
{
  "page": {
    "totalResults": 42,
    "pageSize": 25,
    "currentPage": 1,
    "responseCount": 42,
    "totalPages": 1
  },
  "payments": [
    {
      "id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31",
      "dateCreated": "2026-10-01T14:05:00Z",
      "dateUpdated": "2026-10-01T14:05:00Z",
      "date": "2026-10-01T14:05:00Z",
      "grossAmount": 2500,
      "recipient": "string",
      "method": "string",
      "currency": "EUR",
      "invoice": {
        "status": "string",
        "reference": "INV-2026-0042",
        "invoiceId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31"
      }
    }
  ]
}
```

### Response 400

Invalid pagination parameters

- `error` (string, nullable): Short human-readable error label (legacy field — preserved for backward compatibility).
- `message` (string, nullable): Human-readable error description (legacy field — preserved for backward compatibility).
- `businessErrors` (array of objects, nullable): Canonical structured error array. Consumers should migrate to reading this field.
- `businessErrors[].type` (string, nullable): The type of business error (e.g., "MissingDebtCollectionContract", "MissingPowerOfAttorney", "NoPartnerAvailable").
- `businessErrors[].message` (string, nullable): A human-readable description of the error.
- `businessErrors[].solutionUrl` (string, nullable): A URL where the user can resolve this <i>specific</i> error (e.g., sign a contract).
            

Partners who want a <b>single URL</b> that walks the user through every pending
signing in one chain — instead of forwarding one URL per
`BusinessErrorApiDTO` — should use
SigningHandoff's `CombinedSigningUrl`.
The two are complementary: `SolutionUrl` is granular per-error;
`CombinedSigningUrl` is the chain-walking alternative for signing-related errors.

```json
{
  "error": null,
  "message": "Payment plan agreed with the debtor.",
  "businessErrors": [
    {
      "type": "string",
      "message": "Payment plan agreed with the debtor.",
      "solutionUrl": "https://app.debitura.com/…"
    }
  ]
}
```

<a id="fetch-payment-by-id"></a>

## Fetch payment by ID

`GET /Payments/{id}`

Returns payment details for the supplied payment ID.

### Path parameters

- `id` (uuid, required): 

### Response 200

Payment found

- `id` (uuid): 
- `dateCreated` (datetime): 
- `dateUpdated` (datetime, nullable): 
- `date` (datetime): 
- `grossAmount` (number): 
- `recipient` (string, required, nullable): 
- `method` (string, required, nullable): 
- `currency` (string, required, nullable): 
- `invoice` (object, required): 
- `invoice.status` (string, required, nullable): 
- `invoice.reference` (string, required, nullable): 
- `invoice.invoiceId` (uuid): 

```json
{
  "id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31",
  "dateCreated": "2026-10-01T14:05:00Z",
  "dateUpdated": "2026-10-01T14:05:00Z",
  "date": "2026-10-01T14:05:00Z",
  "grossAmount": 2500,
  "recipient": "string",
  "method": "string",
  "currency": "EUR",
  "invoice": {
    "status": "string",
    "reference": "INV-2026-0042",
    "invoiceId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31"
  }
}
```

### Response 400

ID missing or empty

- `error` (string, nullable): Short human-readable error label (legacy field — preserved for backward compatibility).
- `message` (string, nullable): Human-readable error description (legacy field — preserved for backward compatibility).
- `businessErrors` (array of objects, nullable): Canonical structured error array. Consumers should migrate to reading this field.
- `businessErrors[].type` (string, nullable): The type of business error (e.g., "MissingDebtCollectionContract", "MissingPowerOfAttorney", "NoPartnerAvailable").
- `businessErrors[].message` (string, nullable): A human-readable description of the error.
- `businessErrors[].solutionUrl` (string, nullable): A URL where the user can resolve this <i>specific</i> error (e.g., sign a contract).
            

Partners who want a <b>single URL</b> that walks the user through every pending
signing in one chain — instead of forwarding one URL per
`BusinessErrorApiDTO` — should use
SigningHandoff's `CombinedSigningUrl`.
The two are complementary: `SolutionUrl` is granular per-error;
`CombinedSigningUrl` is the chain-walking alternative for signing-related errors.

```json
{
  "error": null,
  "message": "Payment plan agreed with the debtor.",
  "businessErrors": [
    {
      "type": "string",
      "message": "Payment plan agreed with the debtor.",
      "solutionUrl": "https://app.debitura.com/…"
    }
  ]
}
```

### Response 404

Payment not found

- `error` (string, nullable): Short human-readable error label (legacy field — preserved for backward compatibility).
- `message` (string, nullable): Human-readable error description (legacy field — preserved for backward compatibility).
- `businessErrors` (array of objects, nullable): Canonical structured error array. Consumers should migrate to reading this field.
- `businessErrors[].type` (string, nullable): The type of business error (e.g., "MissingDebtCollectionContract", "MissingPowerOfAttorney", "NoPartnerAvailable").
- `businessErrors[].message` (string, nullable): A human-readable description of the error.
- `businessErrors[].solutionUrl` (string, nullable): A URL where the user can resolve this <i>specific</i> error (e.g., sign a contract).
            

Partners who want a <b>single URL</b> that walks the user through every pending
signing in one chain — instead of forwarding one URL per
`BusinessErrorApiDTO` — should use
SigningHandoff's `CombinedSigningUrl`.
The two are complementary: `SolutionUrl` is granular per-error;
`CombinedSigningUrl` is the chain-walking alternative for signing-related errors.

```json
{
  "error": null,
  "message": "Payment plan agreed with the debtor.",
  "businessErrors": [
    {
      "type": "string",
      "message": "Payment plan agreed with the debtor.",
      "solutionUrl": "https://app.debitura.com/…"
    }
  ]
}
```
