> ## Documentation Index
> Fetch the complete documentation index at: https://docs.platform.chipper.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Set your organization representative

> Creates or replaces the representative. Required before your first GHS virtual account in production (sandbox fills in a default, and setting one replaces it): the partner bank (UMB) opens accounts against a named Ghanaian identity. **Owners and admins only**: set it in the dashboard (**Add funds → Bank transfer** in GHS asks for it) or with a team-member session; API keys get `403`.

The first GHS virtual account registers this person with the bank. Changing `fullName` or `idNumber` afterwards updates your record here but not the bank's, so email api-support@chippercash.com if the representative genuinely changes.



## OpenAPI

````yaml /api-reference/openapi.json put /v1/organization/representative
openapi: 3.1.0
info:
  title: Chipper Platform API
  version: '2026-02-20'
  description: >-
    Payouts, collections, and FX across African rails (bank, mobile money, and
    stablecoins) through one API.
servers:
  - url: https://api.platform.chipper.ai
    description: Production (sk_live_ keys)
  - url: https://sandbox-api.platform.chipper.ai
    description: 'Sandbox (sk_test_ keys: simulated rails, no real money)'
security:
  - bearerAuth: []
paths:
  /v1/organization/representative:
    put:
      tags:
        - Organization
      summary: Set your organization representative
      description: >-
        Creates or replaces the representative. Required before your first GHS
        virtual account in production (sandbox fills in a default, and setting
        one replaces it): the partner bank (UMB) opens accounts against a named
        Ghanaian identity. **Owners and admins only**: set it in the dashboard
        (**Add funds → Bank transfer** in GHS asks for it) or with a team-member
        session; API keys get `403`.


        The first GHS virtual account registers this person with the bank.
        Changing `fullName` or `idNumber` afterwards updates your record here
        but not the bank's, so email api-support@chippercash.com if the
        representative genuinely changes.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                fullName:
                  type: string
                  minLength: 2
                  maxLength: 120
                phone:
                  type: string
                  pattern: ^\+\d{8,15}$
                idType:
                  type: string
                  enum:
                    - ghana_card
                  default: ghana_card
                idNumber:
                  type: string
                  pattern: ^GHA-\d{9}-\d$
                country:
                  type: string
                  minLength: 2
                  maxLength: 2
                metadata:
                  type: object
                  additionalProperties: {}
              required:
                - fullName
                - phone
                - idNumber
                - country
      responses:
        '200':
          description: The representative as stored.
          content:
            application/json:
              schema:
                type: object
                properties:
                  representative:
                    $ref: '#/components/schemas/OrganizationRepresentative'
                required:
                  - representative
        '400':
          description: >-
            A field failed validation: `phone` must be E.164, `idNumber` must
            look like GHA-123456789-0.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: validation_error
                message: Request validation failed
                requestId: req_q7vei435zifs51ia0lqr
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: unauthorized
                message: Invalid API key
                requestId: req_q7vei435zifs51ia0lqr
        '403':
          description: Not an owner or admin (API keys included).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: forbidden
                message: Only owners and admins can set the organization representative
                requestId: req_q7vei435zifs51ia0lqr
      security:
        - bearerAuth: []
components:
  schemas:
    OrganizationRepresentative:
      type: object
      properties:
        id:
          type: string
          example: rep_coh2serzlkn9chsl1zac
        fullName:
          type: string
          example: Ama Mensah
        phone:
          type: string
          example: '+233240000123'
        idType:
          type: string
          enum:
            - ghana_card
          example: ghana_card
        idNumber:
          type: string
          description: Returned in full; only your own organization can read it.
          example: GHA-123456789-0
        country:
          type: string
          example: GH
        status:
          type: string
          enum:
            - active
            - sandbox_default
          description: >-
            `sandbox_default`: sandbox filled this in from your owner's name,
            with placeholder `phone` and `idNumber`. Production needs a real
            representative.
          example: active
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
        - id
        - fullName
        - phone
        - idType
        - idNumber
        - country
        - status
        - createdAt
        - updatedAt
    Error:
      type: object
      properties:
        error:
          type: string
          description: Stable machine-readable code.
        message:
          type: string
          description: Human-readable explanation.
        requestId:
          type: string
          description: Echoed in the x-request-id response header. Quote it to support.
      required:
        - error
        - message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key: `sk_test_…` (sandbox) or `sk_live_…` (production).'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.