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

> ## Agent Instructions
> Money amounts are always major-unit decimal strings (e.g. "1000.00"), never floats and never minor units, in every request, response, and webhook payload.
> Authentication is OAuth 2.0 client credentials: exchange the Client ID and Client Secret at the Token URL for a 24-hour JWT and cache it; do not request a token per call.
> Set a unique clientRef on every money-moving request; it is the idempotency key, and retries return the original resource.
> Quotes are single-use, intent-locked, and expire fast: always read expiresAt, consume the quote with the executor matching its intent, and re-quote on expiry instead of retrying.
> Prefer webhooks over polling for payout, order, application, and virtual-account status tracking.
> Use the sandbox (api.sandbox.zuba.com) with its deterministic magic values before touching production.

# Get an upload URL for a document question

> PUT the file (PDF, JPG or PNG, up to 10 MB) to the returned URL with the Content-Type it was declared with, then attach it with `documentKey`.



## OpenAPI

````yaml /openapi.json post /v1/information-requests/{id}/items/{itemId}/document/upload-url
openapi: 3.0.0
info:
  contact: {}
  description: >-
    Comprehensive payment platform API supporting fiat and crypto payments,
    currency conversion, and compliance management
  title: Zuba Payment Platform API
  version: '1.0'
servers: []
security: []
tags:
  - description: Manage M2M API keys and credentials
    name: API Keys
  - description: Per-country bank directories and bank-account enquiries
    name: Banks
  - description: Internal ledger accounts and transactions
    name: Ledger
  - description: Handle incoming payments and deposits
    name: Pay-ins
  - description: Manage payouts, beneficiaries, and SEPA transfers
    name: Payouts
  - description: Manage outbound webhook endpoints and deliveries
    name: Webhooks
paths:
  /v1/information-requests/{id}/items/{itemId}/document/upload-url:
    post:
      tags:
        - Information requests
      summary: Get an upload URL for a document question
      description: >-
        PUT the file (PDF, JPG or PNG, up to 10 MB) to the returned URL with the
        Content-Type it was declared with, then attach it with `documentKey`.
      operationId: InformationRequestsController_requestDocumentUploadUrl
      parameters:
        - description: >-
            Optional. Names an owned sub-account (UUID) to read and answer that
            sub-account’s requests. Omit for your master account’s own requests.
          in: header
          name: Zuba-Account-Id
          required: false
          schema:
            format: uuid
            type: string
        - description: The request
          in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
        - description: The question
          in: path
          name: itemId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestInformationRequestDocumentUploadDto'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InformationRequestDocumentUploadUrlDto'
          description: ''
        '400':
          description: >-
            A question not answered with a document, a type not accepted, an
            empty file or one over 10 MB, or a file name over 255 characters or
            holding control characters, slashes or backslashes
        '401':
          description: Unauthorized
        '403':
          description: >-
            A key without the scope this route needs, a member whose role may
            not do this, or not_account_owner (Zuba-Account-Id names an account
            you do not own)
        '404':
          description: No such request or question
        '409':
          description: The request is no longer open for answers
      security:
        - bearer: []
components:
  schemas:
    RequestInformationRequestDocumentUploadDto:
      properties:
        fileName:
          description: The name the document is listed under.
          type: string
        fileSize:
          description: The size in bytes, at most 10 MB.
          example: 245000
          type: number
        mimeType:
          description: 'The content type: application/pdf, image/jpeg or image/png.'
          example: application/pdf
          type: string
      required:
        - fileName
        - mimeType
        - fileSize
      type: object
    InformationRequestDocumentUploadUrlDto:
      properties:
        documentKey:
          description: Attach the uploaded file under this key.
          type: string
        uploadUrl:
          description: >-
            PUT the file here, with the Content-Type it was declared with.
            Expires in three minutes.
          type: string
      required:
        - uploadUrl
        - documentKey
      type: object
  securitySchemes:
    bearer:
      bearerFormat: JWT
      description: Enter Auth0 JWT token
      scheme: bearer
      type: http

````

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