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

# Update Business Details

> Updates the business application of a business account. Each provided section is merged into the stored data, so you can save progress incrementally. Applications can no longer be edited once submitted or approved.

Updates the application of a business account. Each section you send (`business_info`, `business_address`, `contact_info`, `banking_info`) is merged into the stored application, so you can save progress incrementally — one section per call or everything at once.

## Required fields to submit

These must be present before the application can move from `draft` to `submitted`. Everything else is optional. Check what's still outstanding at any time with [Get Requirements](/api-reference/endpoint/accounts/requirements) — its `readyToSubmit` flag and `missingFields` array list exactly what's missing.

| Section            | Required fields                                                                                                                                                                                                               |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `business_info`    | `legalName`, `businessType`, `incorporationDate`, `incorporationCountry`, `registrationNumber`, `taxId`, `description`, `monthlyVolume`, `annualRevenue`, `primaryFundingSource`                                              |
| `business_address` | `street`, `city`, `state`, `postalCode`, `country`                                                                                                                                                                            |
| `contact_info`     | `email`, `phone`                                                                                                                                                                                                              |
| Documents          | `certificate_of_incorporation`, `articles_of_association`, `proof_of_address`, `director_register`, `shareholder_register`, `bank_statement` — upload via [Upload Document](/api-reference/endpoint/accounts/upload-document) |

<Info>
  Every **beneficial owner / director** must complete identity verification (Sumsub **GREEN**) before the application can be submitted. Add them via [Add Related Person](/api-reference/endpoint/accounts/add-related-person) and send each their KYC link.
</Info>

<Tip>
  **`taxId`** — for a business, use the company's **tax identification / business-license (registration) number**.
</Tip>

## Example Request

```bash theme={null}
curl -X PUT "https://api.rolla.xyz/api/v1/external/accounts/eec3cbed-79d8-4370-87a0-b6be9e287337/business" \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "business_info": {
      "legalName": "Beta Logistics LLC",
      "businessType": "Limited Liability Company",
      "incorporationDate": "2020-03-01",
      "incorporationCountry": "US",
      "registrationNumber": "LLC-123987",
      "taxId": "98-7654321",
      "description": "Freight and logistics services across West Africa",
      "monthlyVolume": "100000",
      "annualRevenue": "1200000",
      "primaryFundingSource": "Business Revenue"
    },
    "business_address": {
      "street": "77 Commerce Ave",
      "city": "Wilmington",
      "state": "DE",
      "postalCode": "19801",
      "country": "US"
    },
    "contact_info": {
      "email": "ops@betalogistics.com",
      "phone": "+13025550123"
    }
  }'
```

## Example Response

```json theme={null}
{
  "success": true,
  "message": "Application updated successfully",
  "data": {
    "application": {
      "id": "fbb45236-881a-4c58-8954-22759499eab4",
      "status": "draft",
      "entity_type": "business",
      "business_info": {
        "legalName": "Beta Logistics LLC",
        "businessType": "Limited Liability Company"
      }
    },
    "documents": []
  }
}
```

## Key Behaviours

<Info>
  Sections are **merged**, not replaced: fields you omit keep their stored values.
</Info>

<Warning>
  Applications can no longer be edited once their status is `submitted` or `approved`. If the review team requests changes, the application becomes editable again.
</Warning>


## OpenAPI

````yaml PUT /accounts/{accountId}/business
openapi: 3.1.0
info:
  title: Rolla Developer API
  description: >-
    API for programmatic transaction management on the Rolla platform. Monetary
    `amount` fields use the smallest unit of the referenced currency unless an
    endpoint says otherwise (e.g. NGN = kobo, USD = cents, where **100 cents =
    USD 1.00**).
  version: 1.0.0
servers:
  - url: https://api.rolla.xyz/api/v1/external
    description: Production server
security:
  - apiKeyAuth: []
paths:
  /accounts/{accountId}/business:
    put:
      summary: Update Business Details
      description: >-
        Updates the business application of a business account. Each provided
        section is merged into the stored data, so you can save progress
        incrementally. Applications can no longer be edited once submitted or
        approved.
      operationId: updateAccountBusiness
      parameters:
        - name: accountId
          in: path
          required: true
          description: >-
            Identifier of an account owned by the same user as your API key's
            business
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                business_info:
                  $ref: '#/components/schemas/BusinessInfo'
                business_address:
                  $ref: '#/components/schemas/BusinessAddress'
                contact_info:
                  $ref: '#/components/schemas/ContactInfo'
                banking_info:
                  $ref: '#/components/schemas/BankingInfo'
      responses:
        '200':
          description: Application updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: Application updated successfully
                  data:
                    type: object
                    properties:
                      application:
                        $ref: '#/components/schemas/KybApplication'
                      documents:
                        type: array
                        items:
                          $ref: '#/components/schemas/KybDocument'
        '400':
          description: >-
            Validation error, non-business account, or application already
            submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Account not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    BusinessInfo:
      type: object
      properties:
        legalName:
          type: string
          example: Acme Corp Ltd
        tradingName:
          type: string
        businessType:
          type: string
          example: Limited Company
        incorporationDate:
          type: string
          example: '2020-01-15'
        incorporationCountry:
          type: string
          example: NG
        registrationNumber:
          type: string
          example: RC-1234567
        taxId:
          type: string
          example: 12345678-0001
        website:
          type: string
          format: uri
        description:
          type: string
        monthlyVolume:
          type: string
        annualRevenue:
          type: string
        primaryFundingSource:
          type: string
    BusinessAddress:
      type: object
      properties:
        street:
          type: string
          example: 123 Main Street
        city:
          type: string
          example: Lagos
        state:
          type: string
          example: Lagos
        postalCode:
          type: string
          example: '100001'
        country:
          type: string
          example: NG
    ContactInfo:
      type: object
      properties:
        email:
          type: string
          format: email
          example: contact@acmecorp.com
        phone:
          type: string
          example: '+2341234567890'
    BankingInfo:
      type: object
      properties:
        bankName:
          type: string
        accountNumber:
          type: string
        routingNumber:
          type: string
        accountType:
          type: string
          enum:
            - checking
            - savings
        currency:
          type: string
    KybApplication:
      type: object
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - draft
            - submitted
            - approved
            - rejected
            - changes_requested
        current_step:
          type: integer
        is_complete:
          type: boolean
        business_info:
          $ref: '#/components/schemas/BusinessInfo'
        business_address:
          $ref: '#/components/schemas/BusinessAddress'
        contact_info:
          $ref: '#/components/schemas/ContactInfo'
        related_persons:
          type: array
          items:
            $ref: '#/components/schemas/RelatedPerson'
        banking_info:
          $ref: '#/components/schemas/BankingInfo'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    KybDocument:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Document identifier
        applicationId:
          type: string
          description: Associated KYB application ID
        documentType:
          type: string
          description: Type of document
          enum:
            - certificate_of_incorporation
            - articles_of_association
            - proof_of_address
            - director_register
            - shareholder_register
        fileName:
          type: string
          description: Uploaded file name
        fileUrl:
          type: string
          format: uri
          description: Document download URL
        relatedPersonKey:
          type: string
          description: Associated related person
        created_at:
          type: string
          format: date-time
          description: Upload timestamp
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
    RelatedPerson:
      type: object
      properties:
        id:
          type: string
        firstName:
          type: string
          example: John
        lastName:
          type: string
          example: Doe
        roles:
          type: array
          items:
            type: string
            enum:
              - Beneficial Owner
              - Director
        email:
          type: string
          format: email
        phone:
          type: string
        dateOfBirth:
          type: string
          example: '1990-01-15'
        ownershipPercentage:
          type: number
          minimum: 0
          maximum: 100
        currentAddress:
          $ref: '#/components/schemas/BusinessAddress'
        sourceOfWealthExplanation:
          type: string
        taxId:
          type: string
          description: >-
            The person's government identifier, in the format their country of
            residence issues — Mainland China: 18-character resident ID; Hong
            Kong: HKID; United States: SSN or ITIN; elsewhere: national ID or
            tax number as issued. Nigerian residents send `nin` instead.
            Required before the application can be submitted, and can be patched
            onto an existing person. The format is validated by the USD provider
            when the account is issued.
          example: '440301199209153216'
        bvn:
          type: string
          description: Bank Verification Number (11 digits). Nigerian residents only.
        nin:
          type: string
          description: >-
            National Identification Number (11 digits). Nigerian residents only;
            accepted in place of `taxId`.
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your Rolla API key

````