> This is Payabli documentation. For a complete page index, fetch https://docs.payabli.com/llms.txt — append .md to any page URL for lightweight markdown. For section-level indexes, query parameters, and other AI-optimized access methods, see https://docs.payabli.com/ai-agents.md

# List case attachments

GET https://api-sandbox.payabli.com/api/v2/cases/{caseUuid}/attachments

Lists the files attached to a case.

Available to both Platform and Enterprise Partners.


Reference: https://docs.payabli.com/developers/api-reference/caseManagement/list-case-attachments

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: payabliApi-oas
  version: 1.0.0
paths:
  /v2/cases/{caseUuid}/attachments:
    get:
      operationId: ListAttachments
      summary: List case attachments
      description: |
        Lists the files attached to a case.

        Available to both Platform and Enterprise Partners.
      tags:
        - caseManagement
      parameters:
        - name: caseUuid
          in: path
          description: The case's UUID.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: The attachments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AttachmentResponse'
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayabliErrorBody'
        '403':
          description: Consent error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayabliErrorBody'
        '404':
          description: The case doesn't exist.
          content:
            application/json:
              schema:
                description: Any type
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayabliErrorBody'
servers:
  - url: https://api-sandbox.payabli.com/api
    description: Sandbox
  - url: https://api.payabli.com/api
    description: Production
components:
  schemas:
    UserRef:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: The user's numeric identifier.
        name:
          type:
            - string
            - 'null'
          description: The user's display name. Null when the name can't be resolved.
      required:
        - id
        - name
      description: A reference to a user, with the display name resolved when available.
      title: UserRef
    AttachmentResponse:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: The attachment's identifier.
        caseUuid:
          type: string
          format: uuid
          description: The case the attachment belongs to.
        fileType:
          type: string
          description: The file's content type.
        filename:
          type: string
          description: The file's name.
        fileUrl:
          type: string
          description: A reference to the stored file.
        uploadedAt:
          type: string
          format: date-time
          description: When the file was uploaded.
        uploadedBy:
          type: string
          description: The id of the user who uploaded the file.
        uploadedByUser:
          oneOf:
            - $ref: '#/components/schemas/UserRef'
            - type: 'null'
          description: The resolved user who uploaded the file. Null when not enriched.
      required:
        - uuid
        - caseUuid
        - fileType
        - filename
        - fileUrl
        - uploadedAt
        - uploadedBy
        - uploadedByUser
      description: A file attached to a case.
      title: AttachmentResponse
    PayabliErrorBodyResponseData:
      type: object
      properties:
        explanation:
          type: string
          description: Human-readable explanation of what happened.
        todoAction:
          type: string
          description: Suggested resolution.
      description: Object with detailed error context.
      title: PayabliErrorBodyResponseData
    PayabliErrorBody:
      type: object
      properties:
        isSuccess:
          type: boolean
          description: Always `false` for error responses.
        responseCode:
          type: integer
          description: |
            Code for the response. Learn more in
            [API Response Codes](/developers/api-reference/api-responses).
        responseText:
          type: string
          description: Error text describing what went wrong.
        responseData:
          $ref: '#/components/schemas/PayabliErrorBodyResponseData'
          description: Object with detailed error context.
      required:
        - isSuccess
        - responseText
      description: |
        Shape returned by every Payabli API error response. The `responseData`
        object carries human-readable error context.
      title: PayabliErrorBody

```

## Examples



**Response**

```json
[
  {
    "uuid": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
    "caseUuid": "9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
    "fileType": "application/pdf",
    "filename": "voided-check.pdf",
    "fileUrl": "cases/9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70/attachments/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
    "uploadedAt": "2026-01-15T10:45:00Z",
    "uploadedBy": "4238",
    "uploadedByUser": null
  }
]
```

**SDK Code**

```typescript
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient();
    await client.caseManagement.listAttachments("9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70");
}
main();

```

```python
from payabli import payabli

client = payabli()

client.case_management.list_attachments(
    case_uuid="9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliPayabliApiOasClient;

public class Example {
    public static void main(String[] args) {
        PayabliPayabliApiOasClient client = PayabliPayabliApiOasClient
            .builder()
            .build();

        client.caseManagement().listAttachments("9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70");
    }
}
```

```csharp
using PayabliPayabliApiOas;
using System.Threading.Tasks;

namespace Usage;

public class Example
{
    public async Task Do() {
        var client = new PayabliPayabliApiOasClient();

        await client.CaseManagement.ListAttachmentsAsync(
            "9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70"
        );
    }

}

```

```go
package example

import (
    context "context"

    client "github.com/payabli/sdk-go/client"
)

func do() {
    client := client.NewClient()
    client.CaseManagement.ListAttachments(
        context.TODO(),
        "9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;

$client = new PayabliClient();
$client->caseManagement->listAttachments(
    '9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70',
);

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/v2/cases/9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70/attachments")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/cases/9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70/attachments")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```