Transfer Schedule API
Transfer Schedule(送金スケジュール)APIでは、 Scheduleの一つであるTransfer Schedules(送金スケジュー ル)を作成、取得、削除することができます。 新しい送金スケジュールを作 成するには、新しいscheduleを作成し、このオブジェクト で transfer
フィールドを設定します。
Attributes
Name | Type | Description |
---|---|---|
object | string | 固定値 |
id | object_id |
|
livemode | boolean | 本番モード ( |
amount | integer | 最小通貨単位での振込スケジュールの金額。 |
created_at | datetime | ISO 8601 形式( |
currency | currency | 小文字3桁の国際識別コードで、ISO 4217規格 によって定義された通貨。 |
percentage_of_balance | float | 送金される残高の割合。 |
recipient | object_id | 送金先のRecipient(追加振込先口座) ID。 |
Example
-
JSON Response
{ "object": "scheduled_transfer", "id": "rtrf_test_no1t4tnemucod0e51mo", "livemode": false, "created_at": "2019-12-31T12:59:59Z", "recipient": "recp_test_no1t4tnemucod0e51mo", "amount": 12345, "percentage_of_balance": null, "currency": "THB" }
送金スケジュールを作成する
- POST https://api.omise.co/schedules新しい送金スケジュールオブジェクトを作成して返します。
Request Parameters
Name | Type | Description |
---|---|---|
end_on | date | (必須) ISO 8601 形式のスケジュール終了日。 |
every | integer | (必須) スケジュールの実行頻度を表す数値 |
period | string | (必須) |
transfer[recipient] | string | (必須) 送金先のRecipient(追加振込先口座) ID。 |
on[days_of_month] | array | (任意、 場合によって必須) 期間が |
on[weekday_of_month] | string | (任意、 場合によって必須) 期間が |
on[weekdays] | array | (任意、 場合によって必須) 期間が |
start_on | date | (任意) ISO 8601形式のスケジュール開始日。 |
transfer[amount] | integer | (任意) 最小通貨単位での振込スケジュールの金額。 |
transfer[percentage_of_balance] | float | (任意) 送金される残高の割合。 |
Example
-
2日ごとに定額を送金する
- curl
- php
- C#
- java
- go
- elixir
curl https://api.omise.co/schedules \ -u $OMISE_SECRET_KEY: \ -d "every=2" \ -d "period=day" \ -d "start_on=2022-01-01" \ -d "end_on=2022-12-31" \ -d "transfer[recipient]=recp_test_5g03h1x1mbpgxp8h1fh" \ -d "transfer[amount]=1000000"
<?php require './omise-php/lib/Omise.php'; define('OMISE_SECRET_KEY', 'skey_test_51fl8dfabe7sqnj8th2'); $scheduler = OmiseTransfer::schedule(array( 'recipient' => 'recp_test_586lkjci7y1h3a0uce3', 'amount' => 1000000 )); $schedule = $scheduler->every(2) ->days() ->startDate('2017-09-17') ->endDate('2018-09-17') ->start();
var recipient = RetrieveRecipient(); var schedule = await Client.Schedules.Create(new CreateScheduleRequest { Every = 2, Period = SchedulePeriod.Day, StartDate = DateTime.Now, EndDate = DateTime.Now.AddYears(2), Transfer = new TransferScheduling { Amount = 200000, Recipient = recipient.Id, } }); Console.WriteLine($"created schedule: {schedule.Id}");
Request<Schedule> request = new Schedule.CreateRequestBuilder() .every(1) .period(SchedulePeriod.day) .startDate(DateTime.parse("2019-05-29")) .endDate(DateTime.parse("2020-05-29")) .transfer(new TransferScheduling.Params() .amount(100000L) .recipient("recp_test_5fvsnsavart0lg1hivz")) .build(); Schedule schedule = client().sendRequest(request); System.out.printf("Schedule created: %s", schedule.getId());
var schd omise.Schedule create = operations.CreateTransferSchedule{ Every: 2, Period: schedule.PeriodDay, StartDate: "2017-05-01", EndDate: "2018-05-01", Recipient: "recp_test_57m2wcnfx96k634rkqq", Amount: 1000000, } if e := client.Do(&schd, &create); e != nil { panic(e) } fmt.Println("Create a daily fixed amount transfer schedule:", schd.ID)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Schedule.create( every: 2, period: "day", start_date: "2017-05-01", end_date: "2018-05-01", transfer: [ recipient: "recp_test_57m2wcnfx96k634rkqq", amount: 1000000, ] )
-
残高割合を毎週月曜日と金曜日に送金する
- curl
- php
- C#
- java
- go
- elixir
curl https://api.omise.co/schedules \ -u $OMISE_SECRET_KEY: \ -d "every=1" \ -d "period=week" \ -d "on[weekdays][]=monday" \ -d "on[weekdays][]=friday" \ -d "start_on=2022-01-01" \ -d "end_on=2022-12-31" \ -d "transfer[recipient]=recp_test_5g03h1x1mbpgxp8h1fh" \ -d "transfer[percentage_of_balance]=75"
<?php require './omise-php/lib/Omise.php'; define('OMISE_SECRET_KEY', 'skey_test_51fl8dfabe7sqnj8th2'); $scheduler = OmiseTransfer::schedule(array( 'recipient' => 'recp_test_586lkjci7y1h3a0uce3', 'percentage_of_balance' => 75 )); $schedule = $scheduler->every(1) ->weeks(array('monday', 'friday')) ->startDate('2017-09-17') ->endDate('2018-09-17') ->start();
var recipient = RetrieveRecipient(); var schedule = await Client.Schedules.Create(new CreateScheduleRequest { Every = 1, Period = SchedulePeriod.Week, StartDate = DateTime.Now, EndDate = DateTime.Now.AddYears(2), On = new ScheduleOnRequest { Weekdays = new[] { Weekdays.Monday, Weekdays.Friday } }, Transfer = new TransferScheduling { PercentageOfBalance = 75.0f, Recipient = recipient.Id, } }); Console.WriteLine($"created schedule: {schedule.Id}");
Request<Schedule> request = new Schedule.CreateRequestBuilder() .every(1) .period(SchedulePeriod.week) .on(new ScheduleOn.Params() .weekdays(Weekdays.Monday, Weekdays.Friday)) .startDate(DateTime.parse("2019-05-29")) .endDate(DateTime.parse("2020-05-29")) .transfer(new TransferScheduling.Params() .percentageOfBalance(42.0f) .recipient("recp_test_5fvsnsavart0lg1hivz")) .build(); Schedule schedule = client().sendRequest(request); System.out.printf("Schedule created: %s", schedule.getId());
var schd omise.Schedule create = operations.CreateTransferSchedule{ Every: 1, Period: schedule.PeriodWeek, Weekdays: schedule.Weekdays{ schedule.Monday, schedule.Friday, }, StartDate: "2017-05-01", EndDate: "2018-04-01", Recipient: "recp_test_57m2wcnfx96k634rkqq", PercentageOfBalance: 75, } if e := client.Do(&schd, &create); e != nil { panic(e) } fmt.Println("Create a weekly partial transfer schedule:", schd.ID)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Schedule.create( every: 1, period: "week", on: [weekdays: ["monday", "friday"]], start_date: "2017-05-01", end_date: "2018-05-01", transfer: [ recipient: "recp_test_57m2wcnfx96k634rkqq", percentage_of_balance: 75, ] )
-
3ヶ月毎、1日、10日、15日に残高全体を送金する
- curl
- php
- C#
- java
- go
- elixir
curl https://api.omise.co/schedules \ -u $OMISE_SECRET_KEY: \ -d "every=3" \ -d "period=month" \ -d "on[days_of_month][]=1" \ -d "on[days_of_month][]=10" \ -d "on[days_of_month][]=15" \ -d "start_on=2022-01-01" \ -d "end_on=2022-12-31" \ -d "transfer[recipient]=recp_test_5g03h1x1mbpgxp8h1fh"
<?php require './omise-php/lib/Omise.php'; define('OMISE_SECRET_KEY', 'skey_test_51fl8dfabe7sqnj8th2'); $scheduler = OmiseTransfer::schedule(array( 'recipient' => 'recp_test_586lkjci7y1h3a0uce3' )); $schedule = $scheduler->every(3) ->months(array(1, 10, 15)) ->startDate('2017-09-17') ->endDate('2018-09-17') ->start();
var recipient = RetrieveRecipient(); var schedule = await Client.Schedules.Create(new CreateScheduleRequest { Every = 3, Period = SchedulePeriod.Month, StartDate = DateTime.Now, EndDate = DateTime.Now.AddYears(2), On = new ScheduleOnRequest { DaysOfMonth = new[] { 1, 10, 15 } }, Transfer = new TransferScheduling { Recipient = recipient.Id, } }); Console.WriteLine($"created schedule: {schedule.Id}");
Request<Schedule> request = new Schedule.CreateRequestBuilder() .every(6) .period(SchedulePeriod.month) .on(new ScheduleOn.Params() .daysOfMonth(10, 20)) .startDate(DateTime.parse("2019-05-29")) .endDate(DateTime.parse("2020-05-29")) .transfer(new TransferScheduling.Params() .recipient("recp_test_5fvsnsavart0lg1hivz")) .build(); Schedule schedule = client().sendRequest(request); System.out.printf("Schedule created: %s", schedule.getId());
var schd omise.Schedule create = operations.CreateTransferSchedule{ Every: 3, Period: schedule.PeriodMonth, DaysOfMonth: schedule.DaysOfMonth{1, 10, 15}, StartDate: "2017-05-01", EndDate: "2018-05-01", Recipient: "recp_test_57m2wcnfx96k634rkqq", } if e := client.Do(&schd, &create); e != nil { panic(e) } fmt.Println("Create a monthly transfer schedule of your whole balance:", schd.ID)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Schedule.create( every: 3, period: "month", on: [days_of_month: [1, 10, 15]], start_date: "2017-05-01", end_date: "2018-05-01", transfer: [ recipient: "recp_test_57m2wcnfx96k634rkqq", ] )
-
毎月第2月曜日に残高全体を送金する
- curl
- php
- C#
- go
- elixir
curl https://api.omise.co/schedules \ -u $OMISE_SECRET_KEY: \ -d "every=1" \ -d "period=month" \ -d "on[weekday_of_month]=2nd_monday" \ -d "start_on=2022-01-01" \ -d "end_on=2022-12-31" \ -d "transfer[recipient]=recp_test_5g03h1x1mbpgxp8h1fh"
<?php require './omise-php/lib/Omise.php'; define('OMISE_SECRET_KEY', 'skey_test_51fl8dfabe7sqnj8th2'); $scheduler = OmiseTransfer::schedule(array( 'recipient' => 'recp_test_586lkjci7y1h3a0uce3' )); $schedule = $scheduler->every(1) ->months('2nd_monday') ->startDate('2017-09-17') ->endDate('2018-09-17') ->start();
var recipient = RetrieveRecipient(); var schedule = await Client.Schedules.Create(new CreateScheduleRequest { Every = 1, Period = SchedulePeriod.Month, StartDate = DateTime.Now, EndDate = DateTime.Now.AddYears(2), On = new ScheduleOnRequest { WeekdayOfMonth = "2nd_monday" }, Transfer = new TransferScheduling { Recipient = recipient.Id, }, }); Console.WriteLine($"created schedule: {schedule.Id}");
var schd omise.Schedule create = operations.CreateTransferSchedule{ Every: 1, Period: schedule.PeriodMonth, WeekdayOfMonth: "2nd_monday", StartDate: "2017-05-01", EndDate: "2018-05-01", Recipient: "recp_test_57m2wcnfx96k634rkqq", } if e := client.Do(&schd, &create); e != nil { panic(e) } fmt.Println("created schedule:", schd.ID)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Schedule.create( every: 1, period: "month", on: [weekday_of_month: "2nd_monday"], start_date: "2017-05-01", end_date: "2018-05-01", transfer: [ recipient: "recp_test_57m2wcnfx96k634rkqq", ] )
送金スケジュールを取得する
- GET https://api.omise.co/schedules/{id}schedules documentationを参照してください。
送金スケジュールを破棄する
- DELETE https://api.omise.co/schedules/{id}schedules documentationを参照してください
すべての送金スケジュールを一覧表示する
- GET https://api.omise.co/transfers/schedulestransfer_scheduleに属するすべての お客様のアカウントオブジェクトの list を返します。
Request Parameters
Name | Type | Description |
---|---|---|
from | datetime | (任意, default: |
limit | integer | (任意, default: 20, maximum: 100) 返されるレコードの数。 |
offset | integer | (任意, default: 0) 返される最初のレコードのオフセット(先頭からスキップするレコードの数)。 |
order | string | (任意, default: |
to | datetime | (任意, default: current UTC datetime) ISO 8601形式 ( |
Example
-
すべての送金スケジュールを一覧表示する
- curl
- php
- C#
- java
- go
- elixir
curl https://api.omise.co/transfers/schedules \ -u $OMISE_SECRET_KEY:
<?php require './omise-php/lib/Omise.php'; define('OMISE_SECRET_KEY', 'skey_test_51fl8dfabe7sqnj8th2'); $schedules = OmiseTransfer::schedules();
var schedules = await Client .Transfers .Schedules .GetList(order: Ordering.ReverseChronological); Console.WriteLine($"total transfer schedules: {schedules.Total}");
Request<ScopedList<Schedule>> request = new Schedule.TransferScheduleListRequestBuilder().build(); ScopedList<Schedule> schedules = client().sendRequest(request); System.out.printf("Total no. of transfer schedules: %d", schedules.getTotal());
var schds omise.ScheduleList list = operations.ListTransferSchedules{ List: operations.List{ Limit: 100, From: time.Now().Add(-1 * time.Hour), }, } if e := client.Do(&schds, &list); e != nil { panic(e) } fmt.Println("# of transfer schedules made in the last hour:", len(schds.Data))
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Transfer.list_schedules
特定の受信者のすべての送金スケジュールを一覧表示する
- GET https://api.omise.co/recipients/{id}/schedulesschedule
オブジェクトのlist
を返します。 特定の受信者に属するすべての送金スケジュールを返します。
Request Parameters
Name | Type | Description |
---|---|---|
from | datetime | (任意, default: |
limit | integer | (任意, default: 20, maximum: 100) 返されるレコードの数。 |
offset | integer | (任意, default: 0) 返される最初のレコードのオフセット(先頭からスキップするレコードの数)。 |
order | string | (任意, default: |
to | datetime | (任意, default: current UTC datetime) ISO 8601形式 ( |
Example
-
すべての送金スケジュールを一覧表示する
- curl
- php
- C#
- java
- go
- elixir
curl https://api.omise.co/recipients/recp_test_5g03h1x1mbpgxp8h1fh/schedules \ -u $OMISE_SECRET_KEY:
<?php require './omise-php/lib/Omise.php'; define('OMISE_SECRET_KEY', 'skey_test_51fl8dfabe7sqnj8th2'); $recipient = OmiseRecipient::retrieve('recp_test_546s722se0adnqfenew'); $schedules = $recipient->schedules();
var recipientId = "recp_test_58fkcajowtvy3pax0ak"; var schedules = await Client .Recipient(recipientId) .Schedules .GetList(order: Ordering.ReverseChronological); Console.WriteLine($"transfer schedule for recipients: {schedules.Total}");
Request<ScopedList<Schedule>> request = new Schedule.RecipientScheduleListRequestBuilder("recp_test_50894vc13y8z4v51iuc").build(); ScopedList<Schedule> schedules = client().sendRequest(request); System.out.printf("Total no. of recipient schedules: %d", schedules.getTotal());
var schds omise.ScheduleList list := operations.ListRecipientTransferSchedules{ RecipientID: "recp_test_4xsj4ndi9w22nod68" List: operations.List{ Limit: 100, From: time.Now().Add(-1 * time.Hour), }, } if e := client.Do(&schds, &list); e != nil { panic(e) } fmt.Println("# of schedules made in the last hour:", len(schds.Data))
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Recipient.list_schedules("recp_test_4xsj4ndi9w22nod68")