> 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

# Add case note

POST https://api-sandbox.payabli.com/api/v2/cases/{caseUuid}/messages
Content-Type: application/json

Adds a note to a case.

Available to both Platform and Enterprise Partners.

This endpoint is in development and not yet available for API use. To
add a note for now, use Case Management in the
[Payabli Portal](/guides/pay-ops-portal-bank-account-changes-manage).
To read existing notes on a case, use
[List case notes](/developers/api-reference/caseManagement/list-case-notes).


Reference: https://docs.payabli.com/developers/api-reference/caseManagement/add-case-note

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: payabliApi-oas
  version: 1.0.0
paths:
  /v2/cases/{caseUuid}/messages:
    post:
      operationId: PostMessage
      summary: Add case note
      description: >
        Adds a note to a case.


        Available to both Platform and Enterprise Partners.


        This endpoint is in development and not yet available for API use. To

        add a note for now, use Case Management in the

        [Payabli Portal](/guides/pay-ops-portal-bank-account-changes-manage).

        To read existing notes on a case, use

        [List case
        notes](/developers/api-reference/caseManagement/list-case-notes).
      tags:
        - caseManagement
      parameters:
        - name: caseUuid
          in: path
          description: The case's UUID.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '201':
          description: The posted note
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostedMessage'
        '400':
          description: Bad request / invalid data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayabliErrorBody'
        '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'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostCaseMessageRequest'
servers:
  - url: https://api-sandbox.payabli.com/api
    description: Sandbox
  - url: https://api.payabli.com/api
    description: Production
components:
  schemas:
    PostCaseMessageRequest:
      type: object
      properties:
        content:
          type: string
          description: The note text (1 to 4000 characters).
      required:
        - content
      description: A note to add to a case.
      title: PostCaseMessageRequest
    PostedMessage:
      type: object
      properties:
        messageId:
          type: integer
          format: int64
          description: The new message's identifier.
        roomId:
          type: integer
          format: int64
          description: The message room the note was posted to.
        createdAt:
          type: string
          format: date-time
          description: When the note was posted.
      required:
        - messageId
        - roomId
        - createdAt
      description: The result of posting a note to a case.
      title: PostedMessage
    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



**Request**

```json
{
  "content": "Reviewed supporting documents; account ownership confirmed."
}
```

**Response**

```json
{
  "messageId": 4821,
  "roomId": 96369,
  "createdAt": "2026-01-15T11:05:00Z"
}
```

**SDK Code**

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

async function main() {
    const client = new PayabliClient();
    await client.caseManagement.postMessage("9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70", {
        content: "Reviewed supporting documents; account ownership confirmed.",
    });
}
main();

```

```python
from payabli import payabli

client = payabli()

client.case_management.post_message(
    case_uuid="9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
    content="Reviewed supporting documents; account ownership confirmed.",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliPayabliApiOasClient;
import io.github.payabli.api.resources.casemanagement.requests.PostCaseMessageRequest;

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

        client.caseManagement().postMessage(
            "9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
            PostCaseMessageRequest
                .builder()
                .content("Reviewed supporting documents; account ownership confirmed.")
                .build()
        );
    }
}
```

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

namespace Usage;

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

        await client.CaseManagement.PostMessageAsync(
            "9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
            new PostCaseMessageRequest {
                Content = "Reviewed supporting documents; account ownership confirmed."
            }
        );
    }

}

```

```go
package example

import (
    context "context"

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

func do() {
    client := client.NewClient()
    request := &payabli.PostCaseMessageRequest{
        Content: "Reviewed supporting documents; account ownership confirmed.",
    }
    client.CaseManagement.PostMessage(
        context.TODO(),
        "9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70",
        request,
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\CaseManagement\Requests\PostCaseMessageRequest;

$client = new PayabliClient();
$client->caseManagement->postMessage(
    '9c2b7e14-3a5f-4d21-b8e0-1f6a4c9d2e70',
    new PostCaseMessageRequest([
        'content' => 'Reviewed supporting documents; account ownership confirmed.',
    ]),
);

```

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

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

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

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"content\": \"Reviewed supporting documents; account ownership confirmed.\"\n}"

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

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = ["content": "Reviewed supporting documents; account ownership confirmed."] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

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

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()
```