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

# Store encrypted backup data

> Stores encrypted backup data securely. Accepts multiple backup items in a single request via the backup array (limited to a maximum of 3 items). Requires a verification_id that exists in the identity_verifications table and belongs to the user associated with the organisation. Each backup item's item_key (e.g., "seed_phrase", "private_key") is stored in the hot-keys database metadata as backup_item_key for recovery operations. This endpoint calls the hot-keys orchestrator partner-secure-data endpoint.



## OpenAPI

````yaml /specs/retail.openapi.json post /v1/backup/store
openapi: 3.0.3
info:
  title: Control Orchestrator API
  description: API for orchestrating identity verification and key management workflows
  version: 1.0.0
servers:
  - url: https://orchestrator.control.coincover.com
    description: Production server
  - url: https://orchestrator.uat-control.coincover.com
    description: Development server
security:
  - ApiKeyAuth: []
  - BearerAuth: []
tags:
  - name: Verification
    description: Start, check, and simulate biometric identity verification.
  - name: Keys
    description: Generate, assign, and verify cryptographic keys.
  - name: Backups
    description: Store and recover encrypted backup data.
paths:
  /v1/backup/store:
    post:
      tags:
        - Backups
      summary: Store encrypted backup data
      description: >-
        Stores encrypted backup data securely. Accepts multiple backup items in
        a single request via the backup array (limited to a maximum of 3 items).
        Requires a verification_id that exists in the identity_verifications
        table and belongs to the user associated with the organisation. Each
        backup item's item_key (e.g., "seed_phrase", "private_key") is stored in
        the hot-keys database metadata as backup_item_key for recovery
        operations. This endpoint calls the hot-keys orchestrator
        partner-secure-data endpoint.
      operationId: storeBackup
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BackupStoreRequest'
      responses:
        '200':
          description: Backup stored successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackupStoreResponse'
components:
  schemas:
    BackupStoreRequest:
      type: object
      properties:
        user_identifier:
          type: string
          description: User identifier (REQUIRED)
          example: john.doe@example.com
        verification_id:
          type: string
          description: >-
            Verification ID from a previous verification. (REQUIRED) Must exist
            in identity_verifications table and belong to the user associated
            with the organisation.
          example: a7b8c9d0-e1f2-4345-a678-901234567890
        public_key:
          type: string
          description: >-
            Public key in hexadecimal format. (REQUIRED) 32-4096 characters
            long.
          example: 30820122300d06092a86486f70d...
          minLength: 32
          maxLength: 4096
          pattern: ^[0-9a-fA-F]+$
        backup:
          type: array
          description: >-
            Array of backup items to store. (REQUIRED) Allows multiple pieces of
            data to be backed up in a single request. Limited to a maximum of 3
            items.
          minItems: 1
          maxItems: 3
          items:
            type: object
            properties:
              item_key:
                type: string
                description: >-
                  Unique identifier for the backup item (e.g., "seed_phrase",
                  "private_key", "wallet_config"). (REQUIRED)
                example: seed_phrase
              item_value:
                type: string
                format: base64
                description: Base64 encoded encrypted data. (REQUIRED)
                example: SGVsbG8gV29ybGQhIFRoaXMgaXMgbXk...
              item_checksum:
                type: string
                description: SHA-256 hash of the data. (REQUIRED) 64 hex characters.
                example: e3b0c44298fc1c149afbf4c8996f...
                pattern: ^[a-fA-F0-9]{64}$
            required:
              - item_key
              - item_value
              - item_checksum
        metadata:
          type: object
          description: >-
            Optional metadata associated with the backup. Allows custom
            key-value pairs.
          properties:
            description:
              type: string
              description: Description of the backup (OPTIONAL)
              example: User's private seed phrase
            content_type:
              type: string
              description: MIME type of the content (OPTIONAL)
              example: text/plain
            original_filename:
              type: string
              description: Original filename if applicable (OPTIONAL)
              example: seed.txt
          additionalProperties: true
      required:
        - user_identifier
        - verification_id
        - public_key
        - backup
    BackupStoreResponse:
      type: object
      properties:
        backup_type:
          type: string
          enum:
            - data
          description: Type of backup. Always present. Value is always "data".
          example: data
        metadata:
          type: object
          description: >-
            Metadata associated with the backup (echoed from request + enhanced
            with system metadata such as API key info, stored_at timestamp, and
            backup_items_count). Always present.
          properties:
            description:
              type: string
              description: Description of the backup
              example: Test backup with 3 items
            content_type:
              type: string
              description: MIME type of the content
              example: application/json
            original_filename:
              type: string
              description: Original filename if applicable
              example: backup.json
            api_key_entity_type:
              type: string
              description: Entity type from API key authorizer context
              example: PARTNER
            stored_at:
              type: string
              format: date-time
              description: ISO timestamp when backups were stored
              example: '2025-11-30T20:15:20.123Z'
            backup_items_count:
              type: integer
              description: Number of backup items successfully stored
              example: 3
              minimum: 0
          additionalProperties: true
        backup:
          type: array
          description: >-
            Array of stored backup items. Each item contains the item_key,
            backup_id, checksum, and data_size.
          minItems: 1
          items:
            $ref: '#/components/schemas/BackupStoreItemResponse'
      required:
        - backup_type
        - metadata
        - backup
    BackupStoreItemResponse:
      type: object
      properties:
        item_key:
          type: string
          description: >-
            Unique identifier for the backup item (e.g., "seed_phrase",
            "private_key", "wallet_config"). Always present.
          example: seed_phrase
        backup_id:
          type: string
          format: uuid
          description: >-
            Unique identifier for the stored backup (UUID format). Always
            present.
          example: 550e8400-e29b-41d4-a716-446655440000
        checksum:
          type: string
          description: >-
            SHA-256 checksum of the stored data (echoed from request). Always
            present.
          example: c557eec878dfd852ba3f88087c4f350f09c55537ab5e549c3cd14320ec3cef38
          pattern: ^[a-fA-F0-9]{64}$
        data_size:
          type: integer
          description: Size of the stored data in bytes. Always present.
          example: 1024
          minimum: 0
      required:
        - item_key
        - backup_id
        - checksum
        - data_size
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key for authentication and authorization
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: ID token as Bearer token

````