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

# 売上の領収書・請求書設定更新

> 売上の領収書・請求書設定（管理画面の操作メニュー「領収書・請求書設定」: 事業者・宛名・領収書の但し書き）を更新します。指定したフィールドのみを更新する部分更新です。`business_id` に null を指定するとデフォルトの事業者に戻し、`receipt_name` / `receipt_description` に null を指定すると未設定に戻します。

決済失敗の売上・金額が 0 円の売上、および事業者設定が登録されていないアカウントでは `400`（`bad_request`）です（管理画面でも操作できません）。存在しない事業者設定IDは `422`（`validation_error`）です。イベントの入金行の `id` や、商品・商品詳細・購入者のいずれかが無い売上は `404` です。


`PATCH`

```
https://api.utage-system.com/v1/purchases/{purchase_id}
```


## OpenAPI

````yaml PATCH /purchases/{purchase_id}
openapi: 3.0.3
info:
  title: UTAGE API
  description: >
    UTAGEのパブリックAPIです。ファネル、メール・LINE配信、会員サイト、イベント・予約、決済、メディアなどのリソースをプログラムから操作できます。


    ## 認証

    すべてのリクエストにAPIキーによるBearer認証が必要です（要素タイプ・LINEメッセージタイプ・配信条件タイプの参照エンドポイントを除く）。


    ```

    Authorization: Bearer {api_key}

    ```


    APIキーはUTAGE管理画面から発行できます。APIキーが未指定・無効・無効化済みの場合、またはアカウントが利用停止中の場合は `401
    Unauthorized`（`error.code` は `unauthorized`）が返されます。


    ## レート制限

    リクエスト数には以下の制限があります。表の値は既定値で、契約内容により異なる場合があります。


    | 分間上限 | 日間上限 |

    |----------|----------|

    | 60リクエスト/分（APIキー単位・暦の1分ごと） | 10,000リクエスト/日（アカウント単位・暦日ごと） |


    レスポンスヘッダーで分間上限の窓が終わる時刻を確認できます（分間の残数と日間の残数はヘッダーに含まれません）。


    | ヘッダー | 説明 |

    |----------|------|

    | X-RateLimit-Limit | 接続元IP単位でAPI全体に掛かる制限の上限値（APIキー単位の分間上限ではありません） |

    | X-RateLimit-Remaining | 接続元IP単位の制限の残りリクエスト数（分間上限の残数ではありません） |

    | X-RateLimit-Reset | APIキー単位の分間上限で、現在の1分間の窓が終わる（次の分が始まる）UNIXタイムスタンプ |


    上限を超えた場合は `429 Too Many Requests`（`error.code` は
    `rate_limit_exceeded`）が返されます。日間上限の超過時は `X-RateLimit-Reset`
    が翌日0:00になります（`X-RateLimit-Limit` / `X-RateLimit-Remaining`
    は超過時も接続元IP単位の値です）。認証不要のエンドポイントと読者作成（`POST
    /accounts/{account_id}/scenarios/{scenario_id}/readers`、`POST
    /accounts/{account_id}/line/friends/{friend_id}/readers`）はレート制限の対象外で、`X-RateLimit-Reset`
    ヘッダーは付きません。


    データを作成するAPIには、これとは別にAPI経由の作成件数の上限があります。超過時は `429` で `total_limit_exceeded` /
    `hourly_limit_exceeded` / `monthly_limit_exceeded`
    が返され、`details.resource_type` に対象のリソース種別が含まれます。


    ## エラーレスポンス

    エラー時は以下の形式で返されます。


    ```json

    {
      "error": {
        "code": "error_code",
        "message": "エラーメッセージ"
      }
    }

    ```


    エラーの種類によっては `error.details`
    に補足情報（バリデーションの項目別エラー、`retry_after`、`resource_type` など）が含まれます。
  version: '1.0'
  contact:
    name: UTAGE サポート
servers:
  - url: https://api.utage-system.com/v1
    description: UTAGE API
security:
  - BearerAuth: []
tags:
  - name: ファネル
    description: ファネルの作成・更新・一覧取得
  - name: ステップ
    description: ファネル内のステップの作成・更新・並び替え・一覧取得
  - name: ページ
    description: ステップ内のページの作成・更新・取得・削除・一覧取得
  - name: 配信アカウント
    description: 配信アカウントの作成・一覧取得
  - name: シナリオ
    description: シナリオの作成・一覧取得
  - name: メディア
    description: 動画・音声・通常メディアの一覧取得・アップロード・名称変更
  - name: 要素タイプ
    description: ファネルページ・レッスン・HTMLメールの要素タイプ定義、LINEメッセージタイプ・配信条件タイプの取得（認証不要）
  - name: ファネル統計
    description: ファネルの集計データ・登録者・登録経路の取得
  - name: 配信メッセージ
    description: 配信メッセージの作成・更新・テスト送信・配信統計、置き換え文字の取得
  - name: 読者
    description: 読者の作成・更新・取得、ラベル・配信履歴・開封/クリック履歴の取得
  - name: LINE
    description: LINE友だち・カスタム送信者・1対1チャット・テンプレート・テンプレートグループ・リッチメニュー・自動応答の操作
  - name: ラベル・共通読者・登録経路
    description: ラベル・共通読者・アクション・登録経路の操作
  - name: 登録経路
    description: ファネルの登録経路・登録経路グループの作成・取得・更新・削除
  - name: ファネルアクション
    description: ファネルアクション（管理画面「アクション設定」）の作成・取得・更新・削除とアクショングループの一覧取得
  - name: 登録フォーム・読者項目
    description: 読者項目と登録フォーム項目の作成・更新・取得・削除・並び替え
  - name: 連携
    description: Googleスプレッドシート連携アカウント・広告連携設定の一覧取得
  - name: 会員サイト
    description: 会員サイトの一覧取得・作成・取得・更新・削除・並び替え
  - name: コース
    description: 会員サイト配下のコースの一覧取得・作成・取得・更新・削除・並び替え
  - name: コースグループ
    description: コースグループの一覧取得・作成・取得・更新・削除
  - name: バンドル
    description: バンドル（受講生に開放するコース・コミュニティグループのセット）の一覧取得・作成・取得・更新・削除・並び替え
  - name: レッスン
    description: 会員サイトのレッスン・レッスングループの操作と、レッスンごと受講状況・受講完了者の取得
  - name: 受講生
    description: 会員サイトの受講生の作成・更新・取得・削除、受講状況・操作履歴の取得、コース・バンドルの登録受講生一覧
  - name: 登録コース・コミュニティ
    description: 受講生のバンドル・単一コース・コミュニティグループへの登録の追加・更新・解除・一覧取得
  - name: コミュニティグループ
    description: 会員サイトのコミュニティグループの一覧取得
  - name: イベント
    description: イベント（セミナー・説明会、個別相談・個別予約）の一覧取得・作成・取得・更新・削除
  - name: 日程
    description: イベントの日程の一覧取得・作成・取得・更新・削除
  - name: 日程設定
    description: 個別相談・個別予約タイプのイベントの日程設定（開催する曜日・時間帯・特定日の開催設定・担当者・日程の表示期間）の取得・更新
  - name: 申込フォーム・申込者項目
    description: イベントの申込フォームの基本項目・申込者項目の取得・更新
  - name: 申込者
    description: イベントの申込者の一覧取得・詳細取得・更新
  - name: イベントグループ
    description: イベントグループ（イベント一覧の「グループ管理」）の作成・更新・一覧取得・削除
  - name: 担当者
    description: 担当者（個別相談・個別予約の「担当者設定」）の作成・更新・一覧取得・削除と連携用リンクの発行・削除
  - name: 商品
    description: 商品の一覧取得・作成・取得・更新・削除・並び替え
  - name: 商品グループ
    description: 商品グループの一覧取得・作成・取得・更新・削除
  - name: 商品詳細
    description: 商品配下の商品詳細（価格・支払方法・決済代行会社・支払回数・購入後の動作・通知設定）の作成・更新・並び替え・取得・削除
  - name: 売上
    description: 売上の一覧・詳細取得、領収書・請求書設定の更新、銀行振込の入金反映、削除、月別・日別売上集計
paths:
  /purchases/{purchase_id}:
    patch:
      tags:
        - 売上
      summary: 売上の領収書・請求書設定更新
      description: >
        売上の領収書・請求書設定（管理画面の操作メニュー「領収書・請求書設定」:
        事業者・宛名・領収書の但し書き）を更新します。指定したフィールドのみを更新する部分更新です。`business_id` に null
        を指定するとデフォルトの事業者に戻し、`receipt_name` / `receipt_description` に null
        を指定すると未設定に戻します。


        決済失敗の売上・金額が 0 円の売上、および事業者設定が登録されていないアカウントでは
        `400`（`bad_request`）です（管理画面でも操作できません）。存在しない事業者設定IDは
        `422`（`validation_error`）です。イベントの入金行の `id` や、商品・商品詳細・購入者のいずれかが無い売上は
        `404` です。
      operationId: updatePurchase
      parameters:
        - $ref: '#/components/parameters/PaymentPurchaseId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentPurchaseUpdateRequest'
      responses:
        '200':
          description: 更新後の売上詳細
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PaymentPurchase'
        '400':
          description: >
            領収書・請求書設定を変更できない売上です（`bad_request`）。決済失敗の売上、金額が 0
            円の売上、事業者設定が登録されていないアカウントに返ります。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: bad_request
                  message: 事業者設定が登録されていないため領収書・請求書設定を変更できません
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          description: >
            入力内容が不正です（`validation_error`。`details`
            に項目別のエラー）。文字数の超過や、存在しない事業者設定IDの指定に返ります。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: validation_error
                  message: 入力内容に誤りがあります
                  details:
                    business_id:
                      - 指定された事業者設定が存在しません
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
components:
  parameters:
    PaymentPurchaseId:
      name: purchase_id
      in: path
      required: true
      description: 売上ID
      schema:
        type: string
  schemas:
    PaymentPurchaseUpdateRequest:
      type: object
      description: 売上の領収書・請求書設定の更新リクエスト（部分更新）。指定したフィールドのみ変更され、省略したフィールドは既存値を維持します。
      properties:
        business_id:
          type: string
          nullable: true
          description: 領収書・請求書の発行事業者となる事業者設定ID（null でデフォルトの事業者に戻します）
        receipt_name:
          type: string
          nullable: true
          maxLength: 255
          description: 宛名（null で未設定に戻します）
        receipt_description:
          type: string
          nullable: true
          maxLength: 255
          description: 領収書の但し書き（null で未設定に戻します）
    PaymentPurchase:
      type: object
      description: 売上の詳細（商品の売上のみ。管理画面「売上詳細」と「領収書・請求書設定」の内容）
      properties:
        id:
          type: string
          description: 売上ID
        sales_type:
          type: string
          enum:
            - product
          description: 種別（常に `product`）
        created_at:
          type: string
          nullable: true
          description: 売上日時（Y-m-d H:i:s）
        updated_at:
          type: string
          nullable: true
          description: 更新日時（Y-m-d H:i:s）
        product:
          $ref: '#/components/schemas/PaymentPurchaseReference'
        product_detail:
          $ref: '#/components/schemas/PaymentPurchaseReference'
        event:
          nullable: true
          description: 常に null
        amount:
          type: integer
          nullable: true
          description: 金額（円）
        payment_type:
          type: string
          enum:
            - credit_card
            - bank_transfer
          description: '支払方法。credit_card: クレジットカード払い / bank_transfer: 銀行振込'
        payment_provider:
          type: string
          enum:
            - none
            - stripe
            - univapay
            - aquagates
            - telecom
            - firstpayment
            - robotpayment
          description: >-
            決済代行会社。none: なし / stripe: Stripe / univapay: UnivaPay / aquagates:
            AQUAGATES / telecom: テレコムクレジット / firstpayment: FirstPayment /
            robotpayment: RobotPayment
        status:
          type: string
          enum:
            - paid
            - pending
            - failed
            - refunded
            - cancelled
          description: >-
            ステータス。paid: 決済成功 / pending: 振込待ち / failed: 決済失敗 / refunded: 返金済み /
            cancelled: キャンセル。決済失敗フラグの立った売上は保存されたステータスに関わらず failed
        is_test_mode:
          type: boolean
          description: 決済モード（true はテストモード、false は本番モード）
        payment_date:
          type: string
          nullable: true
          description: 入金日（Y-m-d。銀行振込の入金反映で指定した日付）
        payment_processed_at:
          type: string
          nullable: true
          description: 入金反映日時（Y-m-d H:i:s）
        bank_account:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/PaymentPurchaseBankAccount'
          description: 振込先口座（5項目が全て登録されていない売上は null）
        coupon:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/PaymentPurchaseCoupon'
          description: クーポン（適用されていない売上は null）
        customer:
          $ref: '#/components/schemas/PaymentPurchaseCustomer'
        tracking_name:
          type: string
          nullable: true
          description: 登録経路名
        first_step_tracking_name:
          type: string
          nullable: true
          description: 最初のステップの登録経路名
        referer:
          type: string
          nullable: true
          description: 登録元ページURL
        ip:
          type: string
          nullable: true
          description: IP
        device:
          type: string
          nullable: true
          enum:
            - mobile
            - pc
          description: '端末。mobile: スマホ/タブレット / pc: PC（端末詳細が無い売上は null）'
        user_agent:
          type: string
          nullable: true
          description: 端末詳細（User-Agent）
        partner:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/PaymentPurchasePartner'
          description: パートナー（紹介者が無い売上は null）
        business_id:
          type: string
          nullable: true
          description: 領収書・請求書の発行事業者となる事業者設定ID（デフォルトの事業者、または参照先が削除済みの場合は null）
        receipt_name:
          type: string
          nullable: true
          description: 領収書・請求書の宛名（未設定は null）
        receipt_description:
          type: string
          nullable: true
          description: 領収書の但し書き（未設定は null）
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: エラーコード
            message:
              type: string
              description: エラーメッセージ
            details:
              type: object
              nullable: true
              description: >-
                エラーの補足情報（`retry_after` /
                `resource_type`、項目別のエラーメッセージ等）。エラー種別により含まれる場合があります。`422`
                の項目別エラーの値は通常はメッセージの配列ですが、会員サイト更新・コース更新の変更時だけ行う検証では文字列です。
    PaymentPurchaseReference:
      type: object
      description: 売上が紐づく商品・商品詳細・イベント
      properties:
        id:
          type: string
          description: ID（商品ID / 商品詳細ID / イベントID）
        name:
          type: string
          nullable: true
          description: 名称（商品名 / 商品詳細の名称 / イベント名）。商品詳細の名称は売上に記録された購入時点の名称で、商品詳細を改名しても変わりません
    PaymentPurchaseBankAccount:
      type: object
      description: 振込先口座（銀行名・支店名・口座種別・口座番号・口座名義が全て登録されている売上のみ）
      properties:
        bank_name:
          type: string
          description: 銀行名
        bank_code:
          type: string
          nullable: true
          description: 銀行番号
        branch_name:
          type: string
          description: 支店名
        branch_code:
          type: string
          nullable: true
          description: 支店番号
        account_type:
          type: string
          enum:
            - savings
            - checking
            - deposit
          description: '口座種別。savings: 普通 / checking: 当座 / deposit: 貯蓄預金'
        account_number:
          type: string
          description: 口座番号
        account_holder:
          type: string
          description: 口座名義
    PaymentPurchaseCoupon:
      type: object
      description: 適用されたクーポン（クーポン名がある売上のみ）
      properties:
        name:
          type: string
          description: クーポン名
        discount_amount:
          type: integer
          nullable: true
          description: 割引額（円）
        discount_percentage:
          type: integer
          nullable: true
          description: 割引率（%。割引額指定のクーポンは null）
        original_amount:
          type: integer
          nullable: true
          description: 割引前商品金額（円）
    PaymentPurchaseCustomer:
      type: object
      description: 購入者（商品の売上は購入者情報、イベントの入金は申込者情報）
      properties:
        name:
          type: string
          nullable: true
          description: 名前
        mail:
          type: string
          nullable: true
          description: メールアドレス
        phone:
          type: string
          nullable: true
          description: 電話番号
        zipcode:
          type: string
          nullable: true
          description: 郵便番号
        pref:
          type: string
          nullable: true
          description: 都道府県
        city:
          type: string
          nullable: true
          description: 市区町村
        address:
          type: string
          nullable: true
          description: 番地
        building:
          type: string
          nullable: true
          description: 建物名
    PaymentPurchasePartner:
      type: object
      description: パートナー（売上詳細用）
      properties:
        name:
          type: string
          nullable: true
          description: パートナー名
        project_name:
          type: string
          nullable: true
          description: 案件名
        reward:
          type: integer
          description: 報酬
  responses:
    Unauthorized:
      description: 認証エラー。APIキーが未指定・無効・無効化済み、またはアカウントが利用停止中。
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: unauthorized
              message: APIキーが無効です
    NotFound:
      description: 指定されたリソースが見つかりません（`error.code` は `not_found`。`message` は資源ごとに異なります）。
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: not_found
              message: ページが見つかりません
    RateLimitExceeded:
      description: >-
        レート制限超過（`rate_limit_exceeded`）。`X-RateLimit-Reset`
        の時刻（`details.retry_after` がある場合はその日時）以降に再試行してください。
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: rate_limit_exceeded
              message: レート制限を超過しました
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: APIキーをBearerトークンとして指定

````

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