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

# Get a store's publishable key, made on the first call

> The browser key of the caller's mode for one store, with the store's storefront origins as allowed_origins. Every call answers the same key and replaces its allowed_origins with the ones sent.



## OpenAPI

````yaml /payments-api/openapi.json post /v1/publishable-keys
openapi: 3.1.0
info:
  title: TagadaPay Payments API
  version: '2026-11-01'
servers:
  - url: https://api.tagada.io
security: []
paths:
  /v1/publishable-keys:
    post:
      tags:
        - publishable-keys
      summary: Get a store's publishable key, made on the first call
      description: >-
        The browser key of the caller's mode for one store, with the store's
        storefront origins as allowed_origins. Every call answers the same key
        and replaces its allowed_origins with the ones sent.
      operationId: publishableKeys.issue
      parameters:
        - in: header
          name: payments-account
          required: false
          schema:
            type: string
        - in: header
          name: payments-version
          required: false
          schema:
            enum:
              - '2026-11-01'
            type: string
        - in: header
          name: idempotency-key
          required: true
          schema:
            maxLength: 255
            minLength: 1
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssuePublishableKey'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishableKey'
          description: The store's publishable key.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: parameter_invalid, parameter_missing, amount_out_of_range
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: authentication_required
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: permission_denied
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: resource_not_found
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: rate_limited
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: internal_error
        '501':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: not_implemented
      security:
        - bearerAuth: []
components:
  schemas:
    IssuePublishableKey:
      additionalProperties: false
      properties:
        allowed_origins:
          items:
            pattern: ^https?:\/\/[a-z0-9_.-]+(:\d{1,5})?$
            type: string
          maxItems: 1000
          minItems: 1
          type: array
        store:
          pattern: ^store_[a-f0-9]{12}$
          type: string
      required:
        - store
        - allowed_origins
      type: object
    PublishableKey:
      additionalProperties: false
      properties:
        allowed_origins:
          items:
            type: string
          type: array
        created_at:
          format: date-time
          type: string
        id:
          type: string
        key:
          type: string
        mode:
          enum:
            - live
            - test
          type: string
        object:
          enum:
            - publishable_key
          type: string
        store:
          type: string
      required:
        - object
        - id
        - key
        - store
        - mode
        - allowed_origins
        - created_at
      type: object
    ApiError:
      properties:
        error:
          properties:
            code:
              $ref: '#/components/schemas/ErrorCode'
            details:
              additionalProperties: {}
              type: object
            message:
              type: string
            param:
              type:
                - string
                - 'null'
            request_id:
              type: string
            type:
              enum:
                - invalid_request_error
                - authentication_error
                - permission_error
                - conflict_error
                - rate_limit_error
                - api_error
                - unavailable_error
              type: string
          required:
            - type
            - code
            - message
            - param
            - request_id
          type: object
      required:
        - error
      type: object
    ErrorCode:
      enum:
        - account_daily_cap_exceeded
        - account_not_enabled
        - amount_out_of_range
        - authentication_required
        - checkout_session_in_use
        - currency_not_supported
        - fx_rate_unavailable
        - idempotency_key_in_progress
        - idempotency_key_reused
        - internal_error
        - no_active_policy
        - not_implemented
        - parameter_invalid
        - parameter_missing
        - parent_payment_invalid
        - parent_payment_not_allowed
        - parent_payment_not_paid
        - payment_method_not_usable
        - payment_method_required
        - payment_method_save_disabled
        - payment_not_confirmable
        - payment_not_retryable
        - payments_api_disabled
        - permission_denied
        - rate_limited
        - resource_not_found
        - retry_exists
        - retry_limit_reached
        - store_not_on_payments_api
        - stored_credential_missing
      type: string
      x-extensible-enum:
        - account_daily_cap_exceeded
        - account_not_enabled
        - amount_out_of_range
        - authentication_required
        - checkout_session_in_use
        - currency_not_supported
        - fx_rate_unavailable
        - idempotency_key_in_progress
        - idempotency_key_reused
        - internal_error
        - no_active_policy
        - not_implemented
        - parameter_invalid
        - parameter_missing
        - parent_payment_invalid
        - parent_payment_not_allowed
        - parent_payment_not_paid
        - payment_method_not_usable
        - payment_method_required
        - payment_method_save_disabled
        - payment_not_confirmable
        - payment_not_retryable
        - payments_api_disabled
        - permission_denied
        - rate_limited
        - resource_not_found
        - retry_exists
        - retry_limit_reached
        - store_not_on_payments_api
        - stored_credential_missing
  securitySchemes:
    bearerAuth:
      description: >-
        Secret, platform or publishable API key. Platform keys require
        Payments-Account.
      scheme: bearer
      type: http

````

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