有料アプリ販売とAPIについて

このページでは、有料アプリの開発に関するTipsをユースケース別に説明します。

利用するAPIはユースケースに応じてfreeeのAPIとStripeのAPIを使い分けてください。

[freee]対象事業所が契約中の商品/プランを取得する

freeeの company_id をキーに、AppPaymentCustomers API を実行します。
レスポンスの stripe_price_id がユーザーが契約中の料金IDです。

[Stripe]対象事業所の契約数量を取得する

AppPaymentCustomers API で取得した stripe_subscription_ids をキーにStripe の subscription API を実行します。
レスポンスの items.data.quantity が契約数量です。

【トライアル期間中について】
トライアル期間中は subscription_id が取得出来ないため、AppPaymentCustomers API の trial_quantity を参照します。

※従量料金の設定がある場合に必要です。

[Stripe]定期支払い(subscription)の状態を取得する

AppPaymentCustomers API で取得した stripe_subscription_ids をキーに、 Stripe の  subscription API を実行します。
レスポンスの status が定期支払いの状態です。

  • 契約中(操作により active に復帰できる状態)
    • active
    • past_due
    • unpaid
    • incomplete
  • 未契約
    • canceled
    • incomplete_expired

status には次の値があります。

  • trialing: トライアル中(freeeアプリストアでは Stripe のトライアル機能を利用しないため使用しません)
  • active: 契約中
  • incomplete: 決済失敗
  • incomplete_expired: 決済失敗後23時間経過
  • past_due: 更新時決済失敗
  • canceled: 解約
  • unpaid: 未払い
ステータスの遷移図

[Stripe]Stripe に 顧客(Customer) を作成する

freeeアプリストアが Stripe に作成する顧客情報を再現することができます(テストに利用することを想定)。
※ freeeアプリストアへのデータ登録は出来ないため。AppPaymentCustomers API を利用した subscription id の取得などはできません。

トライアル利用中の顧客

POST https://api.stripe.com/v1/customers

次の様なリクエストで作成します。

request parameter
{
    preferred_locales: ["ja"],
    metadata: {
        f_company_id: <<company_id>>,
        f_contact_person_name: "<<担当者名>>",
        f_contact_email: "<<担当メールアドレス>>"
    },
    name: “<<事業所名>>”
}

契約中の顧客

POST https://api.stripe.com/v1/customers/:id

次の様なリクエストで作成します。

request parameter
{
    name: "<<事業所名>>",
    email: "<<メールアドレス>>,
    phone: "<<電話番号>>",
    preferred_locales: ["ja"],
    address: {
        country: "jp",
        postal_code: "1410031",
        state: "東京都",
        city: "品川区", 
        line1: "西五反田2-8-1", 
        line2: "五反田ファーストビル"
    }
}

契約中の定期支払い(Subscription)

POST https://api.stripe.com/v1/subscriptions

事前準備

次の様なリクエストで作成ください。

request parameter
{
    customer: "<<customer id>>",
    items: [ // 定額 + 従量商品の場合はitemsは2つ
        {
            quantity: 1,  // 定額商品の場合は常に1
            price: "<<price id>>"
        }
     ],
     default_tax_rates: ["<<tax rate id>>"],
}

解約済の定期支払い(Subscription)

DELETE https://api.stripe.com/v1/subscriptions/:id

次の様なリクエストで作成します。

{
    invoice_now: false,
    prorate: false
}

有料アプリ販売に関するよくあるご質問・お問い合わせ >>