NAV Navbar
  • LINE Pay Deposit APIs Reference
  • Overview
  • Deposit APIs
  • Appendix
  • LINE Pay Deposit APIs Reference

    Infra and Tech Support

    技術支援の問合せ先

    導入方法についての質問、または、内部エラーが発生した場合は、弊社までメールをお送りください。

    担当 問い合わせ先 対象の国
    LINE Pay Japan dl_tech_support_jp@linecorp.com 日本

    API接続エンドポイント

    Environment URL Description
    Sandbox https://sandbox-api-pay.line.me インテグレーション用のテスト環境です。お申込み前にSandboxを利用したい場合は、当社担当部署にご連絡ください。ご利用手順をご案内いたします。加盟店審査の完了後に発行された加盟店IDでSandboxを利用する場合は、事前のご連絡は不要となります。LINE Pay 加盟店 My Pageから確認ください。
    またテストの際、以下リンク先のテスト用のLINE Pay ナンバー(Reference No.)をご使用ください。
    https://sandbox-web-pay.line.me/web/sandbox/deposit/reference-numbers
    Production https://api-pay.line.me 本番環境です。かんたん送金サービスお申込後、送金資金残高に入金次第、ご利用いただけます。(送金資金残高の入金方法詳細は以下リンク先の通り)
    https://pay.line.me/portal/jp/business/support/manual/410#01

    Overview

    LINE Pay かんたん送金サービス

    LINE Pay かんたん送金は、企業からお客様にLINE Pay残高を付与(送金)する機能を提供するサービスです。本API Referenceでは、企業からお客様に対してLINE Pay残高を送金するためのAPI仕様を記載しています。
    このAPIは日本国内に存在する利用法人のみ利用できます。
    日本国内の電話番号でLINE登録したLINE Payユーザーにのみ送金できます。

    Partner deposit flow

    LINE Pay ナンバー

    LINE Pay ナンバーとは、LINE Payユーザーを識別するための番号であり、API仕様書の項目ではrefrenceNoになります。お客様がLINEアプリまたはLINE Payアプリから確認できます。

    送金資金残高

    送金資金残高(Remain Amount)は、利用企業がLINE Payユーザーに送金することが可能な金額の残高です。(送金資金残高の入金方法詳細は以下リンク先の通り)
    https://pay.line.me/portal/jp/business/support/manual/410#01

    一度に送金可能な最大額

    送金上限金額(Each Maximum Amount Limit)は、一回の送金限度額です。利用企業に送金資金残高が残っていても、この金額を超えてLINE Payユーザーに送金することができません。

    Deposit APIs

    API Authentication

    API連携に必要な"Channel ID"と"Channel Secret Key"は、かんたん送金の利用企業審査が完了した後にLINE Pay 加盟店 My Pageにて確認できます。

    Hmac Signature

    HTTP Method : GET

    Signature = Base64(HMAC-SHA256(Your ChannelSecret, (Your ChannelSecret + URL Path + Query String + nonce)))
    Query String : ? を除いたクエリ文字列(例 : Name1=Value1&Name2=Value2...)

    HTTP Method : POST

    Signature = Base64(HMAC-SHA256(Your ChannelSecret, (Your ChannelSecret + URL Path + RequestBody + nonce)))

    Common Http Request Header

    LINE Pay APIs認証の共通ヘッダーについて詳しく説明します。認証のためのHTTPヘッダーの情報は、下表のとおりです。"Channel Id"はX-LINE-ChannelIdに、"Channel SecretKey"で作成した署名の情報はX-LINE-Authorizationに指定します。X-LINE-Authorization-Nonceには、同じ署名が使われることを防止するために、1回限りのランダムな値を生成して指定してください。

    Key Data Type Required Description
    Content-Type String Y application/json
    X-LINE-ChannelId String Y Integration Information - Channel ID
    X-LINE-Authorization-Nonce String Y UUID or Request timestamp
    X-LINE-Authorization String Y HMAC Base64 Signature

    X-LINE-Authorization-Nonce

    HMAC署名を作成する際に使い捨て乱数であるnonceを利用することで、同じ署名の作成を遮断し、悪意のある目的で同じリクエストを送り続けることを防ぐことができます。使い捨てnonceとしては、UUID 1 or 4またはタイムスタンプを利用できます。

    Nonce Generation

    
        String nonce = UUID.randomUUID().toString();
    
    

    Sample

    HMAC Sample Code

    import java.math.BigDecimal;
    import java.util.UUID;
    
    import lombok.Getter;
    import lombok.Setter;
    
    import org.apache.commons.codec.binary.Base64;
    import org.apache.commons.codec.digest.HmacUtils;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.core.JsonProcessingException;
    
    public final class HmacSignature {
    
        public void exampleForGet() {
            String requestUri = "/v1/partner-deposits/limit";
            String ChannelSecret = "a917ab6a2367b536f8e5a6e2977e06f4";
            String nonce = UUID.randomUUID().toString();
            String signature = makeSignature(ChannelSecret, ChannelSecret + requestUri + nonce);
    
    
        }
    
        public void exampleForPost() {
            DepositForm form = new DepositForm();
    
            form.setOrderId("20190118002934873800");
            form.setReferenceNo("11512574225");
            form.setAuthCd("1274");
            form.setCurrency("JPY");
            form.setAmount(new BigDecimal(100));
            form.setMemo("reward test");
    
            String requestUri = "/v1/partner-deposits";
            String ChannelSecret = "a917ab6a2367b536f8e5a6e2977e06f4";
            String nonce = UUID.randomUUID().toString();
            String signature = makeSignature(ChannelSecret, ChannelSecret + requestUri + toJson(form) + nonce);
    
    
        }
    
        private String makeSignature(final String key, final String data) {
            return toBase64String(HmacUtils.getHmacSha256(key.getBytes()).doFinal(data.getBytes()));
        }
    
        private String toBase64String(byte[] bytes) {
            byte[] byteArray = Base64.encodeBase64(bytes);
            return new String(byteArray);
        }
    
        private String toJson(Object form) {
            try {
                return (new ObjectMapper()).writeValueAsString(form);
            } catch (JsonProcessingException e) {
                // TODO: error handling
                throw new RuntimeException(e);
            }
        }
    
        @Getter
        @Setter
        private class DepositForm {
            private String referenceNo;
            private BigDecimal amount;
            private String currency;
            private String orderId;
            private String authCd;
            private String memo;
        }
    }
    

    Check Limit API

    このAPIは、現在の送金資金残高を確認できます。現在の送金資金残高と一度に残高付与できる限度額を確認することができます。

    API Spec

    GET /v1/partner-deposits/limit

    Response

    Response Body

    Item Data type Length Description
    returnCode String 4 結果コード
    returnMessage String 300 結果メッセージまたは失敗理由
    info.creditAmount Number 保証金(旧かんたん送金サービスで利用されます。現在は利用されません。)
    info.remainAmount Number 送金資金残高
    info.eachMaxAmount Number 一度に残高付与できる限度額

    Return Code

    Code Description
    0000 成功
    1104 API認証に失敗しました。
    1105 実行権限がすでに停止、もしくは解約されています。
    1106 ヘッダー情報エラー
    1192 APIのPathが間違っています。
    9000 内部エラー

    Sample

    Request

    
    curl -X GET \
    -H "Content-Type: application/json" \
    -H "X-LINE-ChannelId: {your channelId}" \
    -H "X-LINE-Authorization-Nonce: e51779e1-5788-4884-9c3a-52f7bf8cb0fa" \
    -H "X-LINE-Authorization: {Hmac signature}" \
    https://sandbox-api-pay.line.me/v1/partner-deposits/limit
    
    

    Response

    
    {
       "returnCode":"0000",
       "returnMessage":"success",
       "info": {
           "creditAmount":1500000,
           "remainAmount":74000,
           "eachMaxAmount":10000
       }
    }
    
    

    Deposit API

    このAPIは、利用企業からLINE Payユーザーへ残高を付与します。

    API Spec

    POST /v1/partner-deposits

    Request Body

    Item Data type Length Requirement Description
    referenceNo String 11 Y LINE Pay ナンバー
    amount Number Y 残高付与額
    currency String 3 Y 通貨コード(ISO-4217)
    現在はJPYのみ送金可能です。
    orderId String 100 Y 利用企業によってユニークに生成された注文番号
    authCd String 4 N 追加認証キー: LINEアプリに登録されている携帯番号の下4桁
    必須項目ではありませんが、誤送金防止のためこの値を利用することを強く推奨します。
    brandName String 100 N かんたん送金を要求したブランド名を指定することができる。指定しなかった場合、利用企業のブランド名が表示される。

    Response Body

    Item Data type Length Description
    returnCode String 4 結果コード
    returnMessage String 300 結果メッセージまたは失敗理由
    info.transactionId Number 19 LINE Payによってユニークに生成された取引番号
    info.transactionDate String 20 取引日時(ISO8601 UTC)
    ex) 2019-01-18T23:19:52Z

    Return Codes

    Code Description
    0000 成功
    1101 LINE Pay ナンバー(または追加認証キー)が間違っています。
    1102 LINE Pay ナンバーに紐づくLINE Payのアカウントが有効ではありません。
    1104 API認証に失敗しました。
    1105 実行権限がすでに停止、もしくは解約されています。
    1106 ヘッダー情報エラー
    1108 ユーザーステータスなどによりLINE Payユーザーに残高付与できませんでした。
    1124 金額情報エラー
    日本円を指定した場合に123.4など小数点以下の数値で残高付与要求した場合に、このエラーが発生します。
    1136 追加認証キー(電話番号)が間違っています。
    1142 付与できる送金資金残高が不足しています。
    1162 LINE Payのアカウントタイプごとに保持可能な残高は上限があり、その上限を超える場合は送金できません。
    1170 送金実施中に、ユーザーが決済や残高のチャージを行い残高が変更されました。
    1172 この取引は他の注文番号と同じです。
    1178 この通貨は利用企業ではご利用いただけません。
    1183 残高付与額は事前に設定された最小金額より大きくある必要があります。
    1184 残高付与は事前に設定された最大金額より小さくある必要があります。
    1198 同時にリクエスト処理が実行されている場合に、このエラーが発生します。
    1192 APIのPathが間違っています。
    1199 内部リクエストエラー
    2101 パラメータエラー
    2102 JSONデータフォーマットエラー
    9000 内部エラー

    Sample

    Request

    
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "X-LINE-ChannelId: {your channelId}" \
    -H "X-LINE-Authorization-Nonce: e51779e1-5788-4884-9c3a-52f7bf8cb0fa" \
    -H "X-LINE-Authorization: {Hmac signature}" \
    -d '{ "referenceNo":"11512574225", "amount": 1000, "currency":"JPY", "orderId":"Ord2018123100000001", "authCd":"1266" }' \
    https://sandbox-api-pay.line.me/v1/partner-deposits
    
    

    Response

    
    {
        "returnCode":"0000",
        "returnMessage":"success",
        "info": {
            "transactionId":2019011804956338240,
            "transactionDate":"2019-01-18T23:19:52Z"
        }
    }
    
    

    Merchant balance history API

    このAPIは、利用企業の送金資金残高への入金履歴と送金成功履歴を提供します。取引日時は発生日の降順で返されます。

    API Spec

    GET /v1/partner-deposits

    Query Parameters

    Item Data type Length Required Description
    transactionType String 20 Y トランザクションタイプの検索条件 (ALL / TRANSFER / CHARGE)
    orderId String 100 N 利用企業によってユニークに生成された注文番号
    startDate Date 10 N(*) 検索用の開始日付 (orderIdを指定しない場合は必須)
    形式: YYYY-MM-DD
    endDate Date 10 N(*) 検索用の終了日付 (orderIdを指定しない場合は必須)
    形式: YYYY-MM-DD
    page Number N 履歴リストの開始ページ番号 (デフォルト: 1)
    size Number N 履歴リスト1ページあたりの件数 (デフォルト: 10)

    Response Body

    field data type length description
    returnCode String 4 結果コード
    returnMessage String 300 結果メッセージまたは失敗理由
    info[].transactionId Number 19 LINE Payによってユニークに生成された取引番号
    info[].orderId String 100 利用企業によってユニークに生成された注文番号
    info[].transactionDate String 20 LINE Payによって処理された取引日付(ISO-8601形式)
    例) 2019-01-18T23:19:52Z
    info[].transactionType String 20 取引種別:
    TRANSFER: 利用企業からユーザーに送金された取引
    CHARGE: 仮想口座に利用企業残高がチャージされた取引
    info[].transactionAmount Number 送金、もしくは、チャージ金額
    info[].referenceNo String 11 LINE Payナンバー (transactionTypeがTRANSFERの場合のみ有効)

    Return Codes

    Code Description
    0000 成功
    1104 API認証に失敗しました。
    1105 実行権限がすでに停止、もしくは解約されています。
    1106 ヘッダー情報エラー
    1140 パラメータ設定エラー。必須項目のorderIdまたはstartDate、endDateが指定されていません。
    1192 APIのPathが間違っています。
    2101 パラメータエラー
    2102 JSONフォーマットエラー
    9000 内部エラー

    Sample

    Request

    
    curl -X GET \
    -H "Content-Type: application/json" \
    -H "X-LINE-ChannelId: {your channelId}" \
    -H "X-LINE-Authorization-Nonce: e51779e1-5788-4884-9c3a-52f7bf8cb0fa" \
    -H "X-LINE-Authorization: {Hmac signature}" \
    https://sandbox-api-pay.line.me/v1/partner-deposits?transactionType=ALL&startDate=2020-06-01&endDate=2020-06-30
    
    

    Response

    
    {
        "returnCode":"0000",
        "returnMessage":"success",
        "info": [{
          "transactionId": 2020060911435878020,
          "orderId": "1234567891249",
          "transactionDate": "2020-06-09T04:30:18Z",
          "transactionType": "TRANSFER",
          "transactionAmount": 2,
          "referenceNo": "11030001082"
        }]
    }
    
    

    Request

    
    curl -X GET \
    -H "Content-Type: application/json" \
    -H "X-LINE-ChannelId: {your channelId}" \
    -H "X-LINE-Authorization-Nonce: e51779e1-5788-4884-9c3a-52f7bf8cb0fa" \
    -H "X-LINE-Authorization: {Hmac signature}" \
    https://sandbox-api-pay.line.me/v1/partner-deposits?transactionType=ALL&orderId=1234567891249
    
    

    Response

    
    {
        "returnCode":"0000",
        "returnMessage":"success",
        "info": [{
          "transactionId": 2020060911435878020,
          "orderId": "1234567891249",
          "transactionDate": "2020-06-09T04:30:18Z",
          "transactionType": "TRANSFER",
          "transactionAmount": 2,
          "referenceNo": "11030001082"
        }]
    }
    
    

    Appendix

    LINE Payのエラーコード

    LINE Payで発生するエラーコードを定義します。エラーコードとともに英語のエラーメッセージを表示し、既定のメッセージがない場合はハイフン(‐)を返します。

    Code Description
    1101 LINE Pay ナンバー(または追加認証キー)が間違っています。
    1102 LINE Pay ナンバーに紐づくLINE Payのアカウントが有効ではありません。
    1104 API認証に失敗しました。
    1105 実行権限がすでに停止、もしくは解約されています。
    1106 ヘッダー情報エラー
    1108 ユーザーステータスなどによりLINE Payユーザーに残高付与できませんでした。
    1124 金額情報エラー
    日本円を指定した場合に123.4など小数点以下の数値で残高付与要求した場合に、このエラーが発生します。
    1136 追加認証キー(電話番号)が間違っています。
    1140 パラメータ設定エラー。必須項目のorderIdまたはstartDate、endDateが指定されていません。
    1142 付与できる送金資金残高が不足しています。
    1162 LINE Payのアカウントタイプごとに保持可能な残高は上限があり、その上限を超える場合は送金できません。
    1170 送金実施中に、ユーザーが決済や残高のチャージを行い残高が変更されました。
    1172 この取引は他の注文番号と同じです。
    1178 この通貨は利用企業ではご利用いただけません。
    1183 残高付与額は事前に設定された最小金額より大きくある必要があります。
    1184 残高付与は事前に設定された最大金額より小さくある必要があります。
    1198 同時にリクエスト処理が実行されている場合に、このエラーが発生します。
    1192 APIのPathが間違っています。
    1199 内部リクエストエラー
    2101 パラメータエラー
    2102 JSONデータフォーマットエラー
    9000 内部エラー

    Sandbox テストページ

    LINE Pay かんたん送金の利用企業は、以下のSandboxページ内にてテストユーザーのLINE Pay ナンバーの一覧を確認でき、LINE Pay 残高を確認することができます。

    Sandbox テストページ