メインコンテンツへスキップ
POST
/
api
/
v1
/
organizations
/
{organizationId}
/
services
/
{serviceId}
/
services
/
{serviceId}
/
contracts
Create a contract for a service
curl --request POST \
  --url https://api.itmc.i.moneyforward.com/api/v1/organizations/{organizationId}/services/{serviceId}/services/{serviceId}/contracts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Monthly Contract",
  "dueDate": "2023-01-01T00:00:00.000Z",
  "repeatUnit": "months",
  "repeatValue": 1,
  "workspaceId": 12345678,
  "peopleIds": [
    1,
    2,
    3
  ],
  "note": "Contract notes"
}
'
import requests

url = "https://api.itmc.i.moneyforward.com/api/v1/organizations/{organizationId}/services/{serviceId}/services/{serviceId}/contracts"

payload = {
"name": "Monthly Contract",
"dueDate": "2023-01-01T00:00:00.000Z",
"repeatUnit": "months",
"repeatValue": 1,
"workspaceId": 12345678,
"peopleIds": [1, 2, 3],
"note": "Contract notes"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Monthly Contract',
dueDate: '2023-01-01T00:00:00.000Z',
repeatUnit: 'months',
repeatValue: 1,
workspaceId: 12345678,
peopleIds: [1, 2, 3],
note: 'Contract notes'
})
};

fetch('https://api.itmc.i.moneyforward.com/api/v1/organizations/{organizationId}/services/{serviceId}/services/{serviceId}/contracts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.itmc.i.moneyforward.com/api/v1/organizations/{organizationId}/services/{serviceId}/services/{serviceId}/contracts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Monthly Contract',
'dueDate' => '2023-01-01T00:00:00.000Z',
'repeatUnit' => 'months',
'repeatValue' => 1,
'workspaceId' => 12345678,
'peopleIds' => [
1,
2,
3
],
'note' => 'Contract notes'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.itmc.i.moneyforward.com/api/v1/organizations/{organizationId}/services/{serviceId}/services/{serviceId}/contracts"

payload := strings.NewReader("{\n \"name\": \"Monthly Contract\",\n \"dueDate\": \"2023-01-01T00:00:00.000Z\",\n \"repeatUnit\": \"months\",\n \"repeatValue\": 1,\n \"workspaceId\": 12345678,\n \"peopleIds\": [\n 1,\n 2,\n 3\n ],\n \"note\": \"Contract notes\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.itmc.i.moneyforward.com/api/v1/organizations/{organizationId}/services/{serviceId}/services/{serviceId}/contracts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Monthly Contract\",\n \"dueDate\": \"2023-01-01T00:00:00.000Z\",\n \"repeatUnit\": \"months\",\n \"repeatValue\": 1,\n \"workspaceId\": 12345678,\n \"peopleIds\": [\n 1,\n 2,\n 3\n ],\n \"note\": \"Contract notes\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.itmc.i.moneyforward.com/api/v1/organizations/{organizationId}/services/{serviceId}/services/{serviceId}/contracts")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Monthly Contract\",\n \"dueDate\": \"2023-01-01T00:00:00.000Z\",\n \"repeatUnit\": \"months\",\n \"repeatValue\": 1,\n \"workspaceId\": 12345678,\n \"peopleIds\": [\n 1,\n 2,\n 3\n ],\n \"note\": \"Contract notes\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": 1,
  "name": "Monthly Contract",
  "serviceId": 123,
  "serviceName": "GitHub",
  "workspaceId": 456,
  "workspaceName": "Production Workspace",
  "dueDate": "2023-01-01T00:00:00.000Z",
  "nextDueDate": "2023-02-01T00:00:00.000Z",
  "note": "Contract notes"
}

承認

Authorization
string
header
必須

For authenticated requests, set the Authorization: Bearer your_api_key parameter in the header.
You can create and manage your API Keys by visiting the API Keys tab in the Settings page of your organization in Admina

パスパラメータ

organizationId
number
必須
serviceId
number
必須

ボディ

application/json
name
string
必須
:

"Monthly Contract"

dueDate
string
必須
:

"2023-01-01T00:00:00.000Z"

repeatUnit
enum<string>
必須
利用可能なオプション:
months,
years
:

"months"

repeatValue
number
必須
:

1

workspaceId
number | null
:

12345678

peopleIds
string[]
:
[1, 2, 3]
note
string
:

"Contract notes"

レスポンス

201 - application/json
id
number
必須
read-only
:

1

name
string
必須
read-only
:

"Monthly Contract"

serviceId
number
必須
read-only
:

123

serviceName
string
必須
read-only
:

"GitHub"

workspaceId
number | null
必須
read-only
:

456

workspaceName
string | null
必須
read-only
:

"Production Workspace"

dueDate
string<date-time>
必須
read-only
:

"2023-01-01T00:00:00.000Z"

nextDueDate
string<date-time> | null
必須
read-only
:

"2023-02-01T00:00:00.000Z"

note
string | null
必須
read-only
:

"Contract notes"

最終更新日 2026年7月14日