# 請求書カード払い提出

`PUT /v1/business_payments/{id}`

- operationId: `submitBusinessPayment`
- tags: 請求書カード払い

請求書カード払い情報を提出する。


## コードサンプル

### cURL

```bash
curl \
    -X PUT \
    -H "Authorization:Bearer <Secret API Key>" \
    -H "Content-Type: application/json" \
    -H "Tenant-Buyer-Id: b_***********" \
    -d '{
            "billing_amount": 10000,
            "card_token": null,
            "due_date": "2025/05/11",
            "invoice_file_name_display": "請求書.pdf",
            "remitter_name": "カタカナ　テストタロウ　ＸＹＺ",
            "payee": {
                "company_name": "株式会社アイネット",
                "corporate": "0",
                "representative_name": "株式会社アイネット",
                "invoice_registration_number": "T7020001030145",
                "addr_post_code": "220-0012",
                "addr_state": "横浜市",
                "addr_city": "西区",
                "addr_line_1": "みなとみらい5-1-2",
                "addr_line_2": "横浜シンフォステージ ウエストタワー13階",
                "email": "test@test.com",
                "phone_no": "045-682-0845"
            },
            "payee_bank": {
                "bank_code": "0011",
                "bank_name": "三井住友",
                "branch_code": "012",
                "branch_name": "横浜",
                "account_kind": 1,
                "account_number": "4108217",
                "account_name": "カテスト　タロウ"
            }
}' \
'https://api.test.fincode.jp/v1/business_payments/{id}'
```

### Node.js

```javascript
import fetch from "node-fetch";

const BASE_URL = "https://api.test.fincode.jp";
const API_KEY = "<Secret API Key>";

(async () => {
    const businessPaymentId = "<Business Payment ID>"; // ここにBusiness Payment IDを設定

    const endpoint = `${BASE_URL}/v1/business_payments/${businessPaymentId}`;

    const response = await fetch(endpoint, {
        method: "PUT",
        headers: {
            Authorization: `Bearer ${API_KEY}`,
            "Content-Type": "application/json",
            "Tenant-Buyer-Id": "b_***********",
        },
        body: JSON.stringify({
            billing_amount: 10000,
            card_token: null,
            due_date: "2025/05/11",
            invoice_file_name_display: "請求書.pdf",
            remitter_name: "カタカナ テストタロウ XYZ",
            payee: {
                company_name: "株式会社アイネット",
                corporate: "0",
                representative_name: "株式会社アイネット",
                invoice_registration_number: "T7020001030145",
                addr_post_code: "220-0012",
                addr_state: "横浜市",
                addr_city: "西区",
                addr_line_1: "みなとみらい5-1-2",
                addr_line_2: "横浜シンフォステージ ウエストタワー13階",
                email: "test@test.com",
                phone_no: "045-682-0845",
            },
            payee_bank: {
                bank_code: "0011",
                bank_name: "三井住友",
                branch_code: "012",
                branch_name: "横浜",
                account_kind: 1,
                account_number: "4108217",
                account_name: "カテスト タロウ",
            },
        }),
    });

    if (response.ok) {
        const businessPaymentData = await response.json();
        console.log("Business Payment Submitted:", businessPaymentData);
    } else {
        console.error("Error submitting business payment:", await response.text());
    }
})();
```

### Go

```go
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "log"
    "net/http"
)

func main() {
    // APIキーと請求書カード払いIDを指定
    apiKey := "<Secret API Key>"
    businessPaymentID := "<Business Payment ID>"

    body := SubmitBusinessPaymentRequest{
        BillingAmount:           10000,
        CardToken:               nil,
        BusinessPaymentsCardID:  "1234",
        CardRegisterFlag:        nil,
        DueDate:                 "2025/05/11",
        InvoiceFileNameDisplay:  "請求書.pdf",
        RemitterName:            "カタカナ テストタロウ XYZ",
        Payee: Payee{
            CompanyName:               "株式会社アイネット",
            Corporate:                 "0",
            RepresentativeName:        "株式会社アイネット",
            InvoiceRegistrationNumber: "T7020001030145",
            AddrPostCode:              "220-0012",
            AddrState:                 "横浜市",
            AddrCity:                  "西区",
            AddrLine1:                 "みなとみらい5-1-2",
            AddrLine2:                 "横浜シンフォステージ ウエストタワー13階",
            Email:                     "test@test.com",
            PhoneNo:                   "045-682-0845",
        },
        PayeeBank: PayeeBank{
            BankCode:      "0011",
            BankName:      "三井住友",
            BranchCode:    "012",
            BranchName:    "横浜",
            AccountKind:   1,
            AccountNumber: "4108217",
            AccountName:   "カテスト タロウ",
        },
    }

    marshalledBody, err := json.Marshal(body)
    if err != nil {
        log.Fatalf("エンコードエラー: %v", err)
    }

    url := fmt.Sprintf("https://api.test.fincode.jp/v1/business_payments/%s", businessPaymentID)

    req, err := http.NewRequest(http.MethodPut, url, bytes.NewBuffer(marshalledBody))
    if err != nil {
        log.Fatalf("リクエストの作成エラー: %v", err)
    }

    req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", apiKey))
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Tenant-Buyer-Id", "b_***********")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        log.Fatalf("リクエストエラー: %v", err)
    }
    defer resp.Body.Close()

    fmt.Println("Status:", resp.Status)
}

type SubmitBusinessPaymentRequest struct {
    BillingAmount          int     `json:"billing_amount"`
    CardToken              *string `json:"card_token"`
    DueDate                string  `json:"due_date"`
    InvoiceFileNameDisplay string  `json:"invoice_file_name_display"`
    RemitterName           string  `json:"remitter_name"`
    Payee                  Payee   `json:"payee"`
    PayeeBank              PayeeBank `json:"payee_bank"`
}

type Payee struct {
    CompanyName               string `json:"company_name"`
    Corporate                 string `json:"corporate"`
    RepresentativeName        string `json:"representative_name"`
    InvoiceRegistrationNumber string `json:"invoice_registration_number"`
    AddrPostCode              string `json:"addr_post_code"`
    AddrState                 string `json:"addr_state"`
    AddrCity                  string `json:"addr_city"`
    AddrLine1                 string `json:"addr_line_1"`
    AddrLine2                 string `json:"addr_line_2"`
    Email                     string `json:"email"`
    PhoneNo                   string `json:"phone_no"`
}

type PayeeBank struct {
    BankCode      string `json:"bank_code"`
    BankName      string `json:"bank_name"`
    BranchCode    string `json:"branch_code"`
    BranchName    string `json:"branch_name"`
    AccountKind   int    `json:"account_kind"`
    AccountNumber string `json:"account_number"`
    AccountName   string `json:"account_name"`
}
```

### PHP

```php
<?php

$apiKey = '<Secret API Key>';
$businessPaymentId = '<Business Payment ID>'; // ここにBusiness Payment IDを設定

$baseUrl = "https://api.test.fincode.jp";
$endpoint = "/v1/business_payments/{$businessPaymentId}";

$headers = [
    "Authorization: Bearer " . $apiKey,
    "Content-Type: application/json"
    "Tenant-Buyer-Id: b_***********"
];

$data = json_encode([
    'billing_amount' => 10000,
    'card_token' => null,
    'due_date' => '2025/05/11',
    'invoice_file_name_display' => '請求書.pdf',
    'remitter_name' => 'カタカナ テストタロウ XYZ',
    'payee' => [
        'company_name' => '株式会社アイネット',
        'corporate' => '0',
        'representative_name' => '株式会社アイネット',
        'invoice_registration_number' => 'T7020001030145',
        'addr_post_code' => '220-0012',
        'addr_state' => '横浜市',
        'addr_city' => '西区',
        'addr_line_1' => 'みなとみらい5-1-2',
        'addr_line_2' => '横浜シンフォステージ ウエストタワー13階',
        'email' => 'test@test.com',
        'phone_no' => '045-682-0845',
    ],
    'payee_bank' => [
        'bank_code' => '0011',
        'bank_name' => '三井住友',
        'branch_code' => '012',
        'branch_name' => '横浜',
        'account_kind' => 1,
        'account_number' => '4108217',
        'account_name' => 'カテスト タロウ',
    ],
]);

$session = curl_init();
curl_setopt($session, CURLOPT_URL, $baseUrl . $endpoint);
curl_setopt($session, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($session, CURLOPT_HTTPHEADER, $headers);
curl_setopt($session, CURLOPT_POSTFIELDS, $data);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($session);

if ($response === false) {
    echo "cURL Error: " . curl_error($session);
} else {
    var_dump($response);
}

curl_close($session);
```

### Python 3

```python
import requests

api_key = '<Secret API Key>'
business_payment_id = '<Business Payment ID>'  # ここにBusiness Payment IDを設定

url = f'https://api.test.fincode.jp/v1/business_payments/{business_payment_id}'

# ヘッダーを設定
headers = {
    'Authorization': f'Bearer {api_key}',
    'Content-Type': 'application/json'
    'Tenant-Buyer-Id': 'b_***********'
}
data = {
    'billing_amount': 10000,
    'card_token': None,
    'due_date': '2025/05/11',
    'invoice_file_name_display': '請求書.pdf',
    'remitter_name': 'カタカナ テストタロウ XYZ',
    'payee': {
        'company_name': '株式会社アイネット',
        'corporate': '0',
        'representative_name': '株式会社アイネット',
        'invoice_registration_number': 'T7020001030145',
        'addr_post_code': '220-0012',
        'addr_state': '横浜市',
        'addr_city': '西区',
        'addr_line_1': 'みなとみらい5-1-2',
        'addr_line_2': '横浜シンフォステージ ウエストタワー13階',
        'email': 'test@test.com',
        'phone_no': '045-682-0845'
    },
    'payee_bank': {
        'bank_code': '0011',
        'bank_name': '三井住友',
        'branch_code': '012',
        'branch_name': '横浜',
        'account_kind': 1,
        'account_number': '4108217',
        'account_name': 'カテスト タロウ'
    }
}

# HTTP PUTリクエストの送信
try:
    response = requests.put(url, headers=headers, json=data)

    # レスポンスの処理
    if response.status_code == 200:
        print(f"Success: {response.json()}")
    else:
        print(f"Error: {response.text}")
except requests.RequestException as e:
    print(f"Request error: {e}")
```

### Ruby

```ruby
require "net/http"
require "uri"
require "json"

API_KEY = '<Secret API Key>'
BASE_URL = 'https://api.test.fincode.jp'

def main
  business_payment_id = '<Business Payment ID>' # ここにBusiness Payment IDを設定
  endpoint = "/v1/business_payments/#{business_payment_id}"

  uri = URI.parse(BASE_URL + endpoint)

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  data = {
    billing_amount: 10000,
    card_token: nil,
    due_date: "2025/05/11",
    invoice_file_name_display: "請求書.pdf",
    remitter_name: "カタカナ テストタロウ XYZ",
    payee: {
      company_name: "株式会社アイネット",
      corporate: "0",
      representative_name: "株式会社アイネット",
      invoice_registration_number: "T7020001030145",
      addr_post_code: "220-0012",
      addr_state: "横浜市",
      addr_city: "西区",
      addr_line_1: "みなとみらい5-1-2",
      addr_line_2: "横浜シンフォステージ ウエストタワー13階",
      email: "test@test.com",
      phone_no: "045-682-0845"
    },
    payee_bank: {
      bank_code: "0011",
      bank_name: "三井住友",
      branch_code: "012",
      branch_name: "横浜",
      account_kind: 1,
      account_number: "4108217",
      account_name: "カテスト タロウ"
    }
  }

  request = Net::HTTP::Put.new(uri.request_uri)
  request['Authorization'] = "Bearer #{API_KEY}"
  request['Content-Type'] = 'application/json'
  request["Tenant-Buyer-Id"] = "b_***********"
  request.body = data.to_json

  response = http.request(request)

  case response
  when Net::HTTPSuccess
    puts 'SUCCESS'
  else
    puts 'ERROR'
  end

  puts response.body
end

main
```

## パラメータ

| 名前 | 位置 | 必須 | 型 | 説明 |
| --- | --- | --- | --- | --- |
| `Tenant-Buyer-Id` | header | ✓ | schema | <span class="smallText color--red-400">※ バイヤープラットフォームのみ指定可</span> |
| `id` | path | ✓ | string | 取引ID |

## リクエストボディ

Content-Type: `application/json`

| パラメータ | 型 | 必須 | 説明 |
| --- | --- | --- | --- |
| `billing_amount` | number | ✓ | 請求金額 |
| `card_token` | string | ✓ | カードトークン（新規カードの場合設定） |
| `due_date` | string | ✓ | 支払期日（yyyy/MM/dd） |
| `invoice_file_name_display` | string | ✓ | 表示用請求書ファイル名 |
| `remitter_name` | string | ✓ | 振込依頼人名（利用可能文字制限有り：全角カタカナ、全角大文字アルファベット、全角数字、スペース、（）．，ー－／） |
| `auth_ret_url` | string |  | オーソリコールバックURL。 |
| `payee` | BusinessPayment.Payee.Submitting |  |  |
| `payee_bank` | BusinessPayment.PayeeBank.Submitting |  |  |

## レスポンス

### 200 リクエストに成功

| パラメータ | 型 | 必須 | 説明 |
| --- | --- | --- | --- |
| `access_id` | string |  | 取引ID |

### 400 不正なリクエスト

| パラメータ | 型 | 必須 | 説明 |
| --- | --- | --- | --- |
| `errors` | array<FincodeAPIError> |  |  |

