NAV Navbar
  • 概要
  • 連動環境
  • API Specifications (Payment)
  • API Specifications (After Payment)
  • 付録
  • 更新履歴
  • 概要

    本章では、LINE Payの機能について説明する。

    LINE Payの概要

    本書は、LINE Payと連動しようとするoffline加盟店の開発者向けの文書である。

    Line pay overview offline

    連動環境

    本章では、LINE Payと連動する前に必要とされる事項と準備について説明する。

    システム要件

    LINE PayのAPI連動は、LINE Payと加盟店のサーバー間の通信を基本とする。 したがって、加盟店は別のPayment Serverを構成して連動しなければならない。

    技術支援の問合せ先

    導入方法についての質問、または、内部エラーが発生した場合は、LINE Pay技術支援チームまでメールをお送りください。各国の問合せは以下の通りになります。

    担当 問合せ先 対象の国
    LINE Pay Japan dl_tech_support_jp@linecorp.com 日本
    LINE Pay Thailand dl_tech_support_th@linecorp.com タイ
    LINE Pay Taiwan dl_tech_support_tw@linecorp.com 台湾
    LINE Pay Global dl_tech_support_global@linecorp.com その他

    連動前の準備

    LINE Pay Payment APIを連動する前に、加盟店は加盟店登録および連動に必要なキー情報を確認しなければならない。

    加盟店登録

    LINE Payとの決済連動のためには、加盟店登録が必要である。 LINE Payの加盟店申請方法ページの内容を確認して頂き、加盟店登録を完了してください。

    連動のための準備

    1. 加盟店Payment Serverのwhite list登録 a. LINE Payでは、加盟店Payment ServerのIPを登録して、加盟店ごとに付与されたchannel idでアクセス可能なサーバーを制限する。 b. IP登録は、「加盟店センターにログイン – 決済連動管理 – 決済サーバーIP管理」で行う。
    2. channel idとchannel secretの確認 a. API連動の必須情報として、「加盟店センターにログイン – 決済連動管理 – 連動キー管理」で確認できる。 b. 当該情報は、加盟店に付与された固有情報なので、外部に露出されないように注意しなければならない。
    3. 決済連動可能な通貨の確認 a. LINE Pay加盟店は、API連動の際に通貨を1つ使用でき、以下の通貨をサポートする。「加盟店センターにログイン – 基本情報管理 – 加盟店情報」で確認できる。 - JPY - USD - THB - TWD

    連動の流れ

    Payment Sequence diagram

    決済プロセスを説明する。

    対象API

    Payment sequence diagram offline

    図 2 Payment Sequence diagram

    Payment Sequence diagramの説明

    1. LINE Pay会員は、加盟店の端末にMyCode(Barcode/QR Code)を見せる。
    2. 加盟店の端末は、MyCode(Barcode/QR Code)を読み取る。
    3. 加盟店の端末は、加盟店Payment Serverに決済要求をする。
    4. 加盟店Payment Serverは、Payment APIを呼び出す。
    5. APIレスポンス情報を通じて、決済が完了したかどうかを確認する。
    6. 加盟店Payment Serverは、決済の結果を加盟店の端末に送信する。
    7. LINE Payサーバーは、決済の結果(成功/失敗)をPushまたはLINE Pay Official Account MessageでLINE Pay会員に知らせる。

    After Payment Sequence

    決済プロセス後のAPIは、すべて一回のAPI呼び出しで処理される。

    対象API - VOID - REFUND - CAPTURE - Authorization/Payment Details

    API Specifications (Payment)

    本章では、LINE Payユーザーの「oneTImeKey」(LINE Pay main menu上の「MyCode」メニュー)を読み取り、決済完了までに使用されるAPIについて説明する。

    - Payment - Payment Status Check

    Payment

    LINE Pay appで提供されるMyCodeを加盟店のdeviceで読み取り、決済を処理するAPI。

    Specification

    Payment API Endpoint

    項目 説明
    Endpoint URL Sandbox : https://sandbox-api-pay.line.me/v2/payments/oneTimeKeys/pay
    Product : https://api-pay.line.me/v2/payments/oneTimeKeys/pay
    Method POST
    Timeout Read : 40秒

    Payment API Request Header

    項目 タイプ サイズ 必須 説明
    Content-Type string Y application/json; charset=UTF-8
    X-LINE-ChannelId string 10 Y 支払い連動情報 - Channel ID
    X-LINE-ChannelSecret string 32 Y 支払い連動情報 - Channel Secret Key
    X-LINE-MerchantDeviceProfileId string 100 N 加盟店が管理するDeviceのProfile ID
    X-LINE-MerchantDeviceType string 20 N 支払い連動するDevice type

    Payment API Request Body

    項目 タイプ 必須 説明
    productName string(4000) Y 商品名
    amount number(38) Y 決済金額
    currency string(3) Y 決済通貨
    orderId string(100) Y 決済予約の注文番号 (加盟店で管理される唯一の番号)
    oneTimeKey string(12 - 19) Y LINE Pay appで提供されるQR/BarCode情報を読み取った結果
    oneTimeKeyの有効時間は、LINE Pay会員がQR/Bar codeを確認した時間から5分間有効。
    - JP: 19桁(2019.08.01から変更、それまでは12桁)
    コード仕様:code128
    90000000(事業者識別コード部8桁)+00(LINE Pay識別コード部2桁)+123456789(トークン部9桁)
    - TW: 18桁
    - TH, Global: 12桁
    capture boolean N 売上処理
    true(デフォルト):オーソリと売上を一度に処理する。
    false: オーソリを処理し、「Capture API」を呼び出さないと取引きが完了しない。
    extras.addFriends object[] N 友達リストを追加
    - type: サービスタイプ
    - "LINE_AT" : line@
    idList: ID List(加盟店センター内 LINE 公式アカウント 管理メニューへ登録したIDリスト)
    "addFriends" : [{
       "type":"LINE_AT"
       "idList" : ["@aaa"]
    }]
    extras.branchName string(200) N 決済を要求した店舗名(100文字まで)
    extras.branchId String(32) N ブランチID
    決済がリクエストされた場所を識別するために利用します。英字、数字、記号を利用出来ます。
    extras.promotionRestriction Object N プロモーション制限情報
    プロモーション非対象商品がトランザクションに含まれる場合に、プロモーション非対象商品価格の合計額をこの項目に設定します。プロモーション非対象商品(たばこ、商品券、プリペイドカードなど)は、関連する法律、および、規制に決定されます。注意:このパラメータが有効の場合は、一部決済キャンセルはサポートされません。
    - useLimit: プロモーション非対象商品の合計額(顧客はLINE ポイント、クーポン、割引にプロモーション非対象の商品への決済に利用できません。)
    - rewardLimit: プロモーション非対象商品の合計額(顧客はプロモーション非対象の商品への決済時にLINEポイントなどを受け取ることができません。)
    "promotionRestriction" : [{
       "useLimit" : 100,
       "rewardLimit" : 100
    }]

    Payment API Response Body

    項目名 タイプ 必須 説明
    returnCode string(4) Y LINE Payによって作成された結果コード
    - 0000 : APIリクエスト成功
    - その他の応答コード: 本書の「付録 - API別の応答コード」を参照
    returnMessage string(100) Y 結果メッセージまたは失敗理由
    info.transactionId number(19) Y LINE Payの取引番号
    info.orderId string(100) Y 決済予約の注文番号 (加盟店で管理される唯一の番号)
    info.transactionDate string(20) Y 取引日時(ISO8601 UTC)
    - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z'
    ※reference : https://en.wikipedia.org/wiki/ISO_8601
    info.payInfo[].method string(20) Y 決済時に使用された決済手段
    - CREDIT_CARD
    - BALANCE
    - DISCOUNT
    - POINT(利用されたLINEポイントを区別して受け取りたい場合に設定されます。詳細は「POINT決済レスポンス」を参照ください。)
    info.payInfo[].amount number(38) Y 決済金額
    info.balance number(38) N 決済後の残額
    ※全額ポイント決済した場合はNULL値になります。
    info.authorizationExpireDate string(20) N 承認満了日時(ISO8601 UTC)
    - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z'
    オーソリ(capture=false)のみの決済の場合に送信
    ※reference : https://en.wikipedia.org/wiki/ISO_8601

    Request

    POST https://sandbox-api-pay.line.me/v2/payments/oneTimeKeys/pay HTTP/1.1
    Host: sandbox-api-pay.line.me
    Content-Type: application/json
    X-LINE-ChannelId: {channel id}
    X-LINE-ChannelSecret: {channel secret}
    X-LINE-MerchantDeviceProfileId: {DEVICE_PROFILE_ID}
    
    {
        "productName": "test product",
        "amount": 100,
        "currency": "JPY",
        "orderId": "merchant_test_order_1",
        "oneTimeKey": "123456789012",
         "extras" : {
            "addFriends" : [
                {
                 "type" : "LINE_AT",
                 "idList" : ["@aaa"]
                }
            ],
            "branchName" : "test_branch_1",
            "branchId" : "branch1"
        }    
    }
    

    Response Body - 決済完了

    {
        "returnCode": "0000",
        "returnMessage": "success",
        "info": {
            "transactionId": "2019010112345678910",
            "orderId": "test_order_#1",
            "transactionDate": "2019-01-01T01:01:00Z",
            "payInfo": [{
                "method": "BALANCE",
                "amount": 10
            }, {
                "method": "DISCOUNT",
                "amount": 5
            }],
            "balance": 9900
        }
    }
    

    Response Body - LINE Payの会員確認手続きが必要な場合

    {
        "returnCode": "0000",
        "returnMessage": "success",
        "info": {
            "transactionId": "2016010112345678910",
            "orderId": "test_order_#1"
        }
    }
    

    Payment Status Check

    Readタイムアウトのために最終の決済ステータスを確認できなかった場合に利用するAPIです。

    Specification

    Payment Status Check API Endpoint

    項目 説明
    Endpoint URL Sandbox : https://sandbox-api-pay.line.me/v2/payments/orders/{orderId}/check
    Product : https://api-pay.line.me/v2/payments/orders/{orderId}/check
    Method POST
    Timeout Read : 20秒

    Payment Status Check API Request Header

    項目 タイプ サイズ 必須 説明
    Content-Type string Y application/json; charset=UTF-8
    X-LINE-ChannelId string 10 Y 支払い連動情報 - Channel ID
    X-LINE-ChannelSecret string 32 Y 支払い連動情報 - Channel Secret Key
    X-LINE-MerchantDeviceProfileId string 100 N 加盟店が管理するDeviceのProfile ID
    X-LINE-MerchantDeviceType string 20 N 支払い連動するDevice type

    Payment Status Check API URI Parameters

    項目名 タイプ 必須 説明
    orderId string(100) Y - 加盟店が決済要求時に送信した注文番号
    - 必ずURI Path上に存在するパラメータでエンコードして送信
    ※reference : https://en.wikipedia.org/wiki/Percent-encoding

    Payment Status Check API Response Body

    項目名 タイプ 必須 説明
    returnCode string(4) Y 結果コード
    - 0000 : APIリクエスト成功
    - その他の応答コード: 本書の「付録 - API別の応答コード」を参照
    returnMessage string(100) Y 結果メッセージ
    info.status string(20) Y 決済状態
    - COMPLETE : 決済完了 - 終了状態
    - FAIL : 決済失敗 - 終了状態
    - AUTH_READY : ユーザー確認待ち
    ※参考: 「COMPLETE」または「FAIL」の場合、追加の応答情報が存在する。
    case "info.status" : "COMPLETE"
    info.transactionId number(19) Y LINE Payの取引番号
    info.orderId string(100) Y 決済予約の注文番号 (加盟店で管理される唯一の番号)
    info.transactionDate string(20) Y 取引日時(ISO8601 UTC)
    - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z'
    ※reference : https://en.wikipedia.org/wiki/ISO_8601
    info.payInfo[].method string(20) Y 決済時に使用された決済手段
    - CREDIT_CARD
    - BALANCE
    - DISCOUNT
    - POINT(利用されたLINEポイントを区別して受け取りたい場合に設定されます。詳細は「POINT決済レスポンス」を参照ください。)
    info.payInfo[].amount number(38) Y 決済金額
    info.balance number(38) N 決済後の残額
    info.authorizationExpireDate string(20) N 承認満了日時(ISO8601 UTC)
    - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z'
    オーソリ(capture=false)のみの決済の場合に送信
    ※reference : https://en.wikipedia.org/wiki/ISO_8601
    "info.status":"FAIL"の場合
    info.failReturnCode string(4) Y 失敗結果コード
    - 応答コードは、本書の「付録- API別の応答コード」で確認する。
    - Payment APIの応答コードと同じ応答コードである。
    info.failReturnMessage string(100) Y 失敗結果メッセージ
    "info.status":"AUTH_READY"の場合
    info.orderId string(100) Y 決済予約の注文番号 (加盟店で管理される唯一の番号)
    info.transactionId number(19) Y LINE Payの取引番号

    Request

    
    - 「orderId」が「test_order_#1」の場合
    GET https://sandbox-api-pay.line.me/v2/payments/orders/test_order_%231/check HTTP/1.1
    Host: sandbox-api-pay.line.me
    Content-Type: application/json
    X-LINE-ChannelId: {channel id}
    X-LINE-ChannelSecret: {channel secret}
    X-LINE-MerchantDeviceType: POS
    X-LINE-MerchantDeviceProfileId: DUMMY
    
    

    Response Body - Statusが「COMPLETE」の場合

    {
        "returnCode": "0000",
        "returnMessage": "success",
        "info": {
        "status": "COMPLETE",
            "transactionId": "2016010112345678910",
            "orderId": "test_order_#1",
            "transactionDate": "2016-01-01T01:01:00Z",
            "payInfo": [{
                "method": "BALANCE",
                "amount": 10
            }, {
                "method": "DISCOUNT",
                "amount": 5
            }],
            "balance": 9900
        }
    }
    

    Response Body - Statusが「FAIL」の場合

    {
        "returnCode": "0000",
        "returnMessage": "success",
        "info": {
            "status": "FAIL"
        }
    }
    

    API Specifications (After Payment)

    本章では、決済が完了した後、加盟店の注文状況に応じて決済を払い戻したり、履歴を照会したりするAPIについて説明する。

    Void

    承認取引を無効とするAPIです。

    Specification

    Void API Endpoint

    項目 説明
    Endpoint URL Sandbox : https://sandbox-api-pay.line.me/v2/payments/orders/{orderId}/void
    Product : https://api-pay.line.me/v2/payments/orders/{orderId}/void
    Method POST
    Timeout Read : 20秒

    Void API Request Header

    項目 タイプ サイズ 必須 説明
    Content-Type string Y application/json; charset=UTF-8
    X-LINE-ChannelId string 10 Y 支払い連動情報 - Channel ID
    X-LINE-ChannelSecret string 32 Y 支払い連動情報 - Channel Secret Key
    X-LINE-MerchantDeviceProfileId string 100 N 加盟店が管理するDeviceのProfile ID
    X-LINE-MerchantDeviceType string 20 N 支払い連動するDevice type

    Void API URI Parameters

    項目名 タイプ 必須 説明
    orderId string(100) Y - 加盟店が決済要求時に送信した注文番号
    - 必ずURI Path上に存在するパラメータでエンコードして送信
    ※reference : https://en.wikipedia.org/wiki/Percent-encoding

    Void API Response Body

    項目 タイプ 必須 説明
    returnCode string(4) Y LINE Payによって作成された結果コード
    - 0000 : APIリクエスト成功
    - その他の応答コード: 本書の「付録 - API別の応答コード」を参照
    returnMessage string(100) Y 結果メッセージまたは失敗理由

    Request 「orderId」が「test_order_#1」の場合

    POST https://sandbox-api-pay.line.me/v2/payments/orders/test_order_%231/void HTTP/1.1
    Host: sandbox-api-pay.line.me
    Content-Type: application/json
    X-LINE-ChannelId: {channel id}
    X-LINE-ChannelSecret: {channel secret}
    X-LINE-MerchantDeviceType: POS
    X-LINE-MerchantDeviceProfileId: DUMMY
    

    Response - 決済完了

    {
        "returnCode": "0000",
        "returnMessage": "success"
    }
    

    Capture

    承認取引を売上とするAPIです。

    Specification

    Capture API Endpoint

    項目 説明
    Endpoint URL Sandbox : https://sandbox-api-pay.line.me/v2/payments/orders/{orderId}/capture
    Product : https://api-pay.line.me/v2/payments/orders/{orderId}/capture
    Method POST
    Timeout Read : 20秒

    Capture API Request Header

    項目 タイプ サイズ 必須 説明
    Content-Type string Y application/json; charset=UTF-8
    X-LINE-ChannelId string 10 Y 支払い連動情報 - Channel ID
    X-LINE-ChannelSecret string 32 Y 支払い連動情報 - Channel Secret Key
    X-LINE-MerchantDeviceProfileId string 100 N 加盟店が管理するDeviceのProfile ID
    X-LINE-MerchantDeviceType string 20 N 支払い連動するDevice type

    Capture API URI Parameters

    項目名 タイプ 必須 説明
    orderId string(100) Y - 加盟店が決済要求時に送信した注文番号
    - 必ずURI Path上に存在するパラメータでエンコードして送信
    ※reference : https://en.wikipedia.org/wiki/Percent-encoding

    Capture API Request Body

    項目 タイプ 必須 説明
    amount number(38) Y 決済金額
    currency string(3) Y 決済通貨
    extrapromotionRestriction Object N プロモーション制限情報
    プロモーション非対象商品がトランザクションに含まれる場合に、プロモーション非対象商品価格の合計額をこの項目に設定します。プロモーション非対象商品(たばこ、商品券、プリペイドカードなど)は、関連する法律、および、規制に決定されます。注意:このパラメータが有効の場合は、一部決済キャンセルはサポートされません。
    - useLimit: プロモーション非対象商品の合計額(顧客はLINE ポイント、クーポン、割引にプロモーション非対象の商品への決済に利用できません。)
    - rewardLimit: プロモーション非対象商品の合計額(顧客はプロモーション非対象の商品への決済時にLINEポイントなどを受け取ることができません。)
    "promotionRestriction" : [{
       "useLimit" : 100,
       "rewardLimit" : 100
    }]

    Capture API Response Body

    項目名 タイプ 必須 説明
    returnCode string(4) Y LINE Payによって作成された結果コード
    - 0000 : APIリクエスト成功
    - その他の応答コード: 本書の「付録 - API別の応答コード」を参照
    returnMessage string(100) Y 結果メッセージまたは失敗理由
    info.transactionId number(19) Y 決済予約時に発行された取引番号
    info.orderId string(100) Y 決済予約の注文番号 (加盟店で管理される唯一の番号)
    info.payInfo[].method string(20) Y 決済時に使用された決済手段
    - CREDIT_CARD
    - BALANCE
    - DISCOUNT
    - POINT(利用されたLINEポイントを区別して受け取りたい場合に設定されます。詳細は「POINT決済レスポンス」を参照ください。)
    info.payInfo[].amount number(38) Y 決済金額

    Request 「orderId」が「test_order_#1」の場合

    POST https://sandbox-api-pay.line.me/v2/payments/orders/test_order_%231/capture HTTP/1.1
    Host: sandbox-api-pay.line.me
    Content-Type: application/json
    X-LINE-ChannelId: {channel id}
    X-LINE-ChannelSecret: {channel secret}
    X-LINE-MerchantDeviceType: POS
    X-LINE-MerchantDeviceProfileId: DUMMY
    
    {
        "amount": "100",
        "currency": "JPY",
        "extra": {
            "promotionRestriction": {
                "useLimit":20,
                "rewardLimit":20
            }
        }
    }
    

    Response

    {
        "returnCode": "0000",
        "returnMessage": "success",
        "info": {
            "transactionId": "2016010112345678910",
            "orderId": "test_order_#1",
            "transactionDate": "2016-01-01T01:01:00Z",
            "payInfo": [{
                "method": "BALANCE",
                "amount": 95
            }, {
                "method": "DISCOUNT",
                "amount": 5
            }],
            "balance": 9900
        }
    }
    

    Refund

    決済完了(売上データ)後の払い戻しを処理するAPIです。

    Specification

    Refund API Endpoint

    項目 説明
    Endpoint URL Sandbox : https://sandbox-api-pay.line.me/v2/payments/orders/{orderId}/refund
    Product : https://api-pay.line.me/v2/payments/orders/{orderId}/refund
    Method POST
    Timeout Read : 20秒

    Refund API Request Header

    項目 タイプ サイズ 必須 説明
    Content-Type string Y application/json; charset=UTF-8
    X-LINE-ChannelId string 10 Y 支払い連動情報 - Channel ID
    X-LINE-ChannelSecret string 32 Y 支払い連動情報 - Channel Secret Key
    X-LINE-MerchantDeviceProfileId string 100 N 加盟店が管理するDeviceのProfile ID
    X-LINE-MerchantDeviceType string 20 N 支払い連動するDevice type

    Refund API URI Parameters

    項目名 タイプ 必須 説明
    orderId string(100) Y - 加盟店が決済要求時に送信した注文番号
    - 必ずURI Path上に存在するパラメータでエンコードして送信
    ※reference : https://en.wikipedia.org/wiki/Percent-encoding

    Refund API Request Body

    項目名 タイプ 必須 説明
    refundAmount number(38) N 払い戻し金額
    - 送信されなかった場合は全額払い戻しする。
    extrapromotionRestriction Object N プロモーション制限情報(現在は利用できません)
    プロモーション非対象商品がトランザクションに含まれる場合に、プロモーション非対象商品価格の合計額をこの項目に設定します。プロモーション非対象商品(たばこ、商品券、プリペイドカードなど)は、関連する法律、および、規制に決定されます。注意:このパラメータが有効の場合は、一部決済キャンセルはサポートされません。
    - useLimit: プロモーション非対象商品の合計額(顧客はLINE ポイント、クーポン、割引にプロモーション非対象の商品への決済に利用できません。)
    - rewardLimit: プロモーション非対象商品の合計額(顧客はプロモーション非対象の商品への決済時にLINEポイントなどを受け取ることができません。)
    "promotionRestriction" : [{
       "useLimit" : 100,
       "rewardLimit" : 100
    }]

    Refund API Response Body

    項目名 タイプ 必須 説明
    returnCode string(4) Y LINE Payによって作成された結果コード
    - 0000 : APIリクエスト成功
    - その他の応答コード: 本書の「付録 - API別の応答コード」を参照
    returnMessage string(100) Y 結果メッセージまたは失敗理由
    info.refundTransactionId number(19) Y 払戻取引番号
    info.refundTransactionDate string(20) Y 払戻取引日時(ISO8601 UTC)
    - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z'
    ※reference : https://en.wikipedia.org/wiki/ISO_8601

    Request 「orderId」が「test_order_#1」の場合

    POST https://sandbox-api-pay.line.me/v2/payments/orders/test_order_%231/refund HTTP/1.1
    Host: sandbox-api-pay.line.me
    Content-Type: application/json
    X-LINE-ChannelId: {channel id}
    X-LINE-ChannelSecret: {channel secret}
    X-LINE-MerchantDeviceType: POS
    X-LINE-MerchantDeviceProfileId: DUMMY
    
    {
        "refundAmount": "100",
       "extras" : {
            "promotionRestriction" : {
                "useLimit":20,
                "rewardLimit":20
            }
        }
    }
    

    Response

    {
        "returnCode": "0000",
        "returnMessage": "success",
        "info": {
            "refundTransactionId": "2019010112345678910",
            "refundTransactionDate": "2019-01-01T01:01:00Z"
        }
    }
    

    Authorization Details

    承認取引履歴を照会するAPIです。承認済みまたは承認キャンセル(void or expire)処理されたデータのみ照会可能。売上が確定されたデータはPayment Details APIで照会できる。

    Specification

    Authorization Details API Endpoint

    項目 説明
    Endpoint URL Sandbox : https://sandbox-api-pay.line.me/v2/payments/authrozations
    Product : https://api-pay.line.me/v2/payments/authrozations
    Method POST
    Timeout Read : 20秒

    Authorization Details API Request Header

    項目 タイプ サイズ 必須 説明
    Content-Type string Y application/json; charset=UTF-8
    X-LINE-ChannelId string 10 Y 支払い連動情報 - Channel ID
    X-LINE-ChannelSecret string 32 Y 支払い連動情報 - Channel Secret Key
    X-LINE-MerchantDeviceProfileId string 100 N 加盟店が管理するDeviceのProfile ID
    X-LINE-MerchantDeviceType string 20 N 支払い連動するDevice type

    Authorization Details API Query Parameters

    項目名 タイプ 必須 説明
    orderId string(100) N 加盟店が決済要求時に送信した注文番号
    transactionId number(19) N LINE Payで発行した取引番号

    Authorization Details API Response Body

    項目名 タイプ 必須 説明
    returnCode string(4) Y LINE Payによって作成された結果コード
    - 0000 : APIリクエスト成功
    - その他の応答コード: 本書の「付録 - API別の応答コード」を参照
    returnMessage string(100) Y 結果メッセージまたは失敗理由
    info[].transactionId number(19) Y 取引番号
    info[].orderId string(100) Y 加盟店の注文番号
    info[].transactionDate string(20) Y 取引日時(ISO8601 UTC)
    - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z'
    ※reference : https://en.wikipedia.org/wiki/ISO_8601
    info[].transactionType String(20) Y 取引区分
    - PAYMENT : payment
    - PAYMENT_REFUND : refund
    - PARTIAL_REFUND : partial refund
    info[].payInfo[].method string(20) Y 決済時に使用された決済手段
    - CREDIT_CARD
    - BALANCE
    - DISCOUNT
    - POINT(利用されたLINEポイントを区別して受け取りたい場合に設定されます。詳細は「POINT決済レスポンス」を参照ください。)
    info[].payInfo[].amount number(38) Y 取引金額
    info[].currency string(3) Y 通貨
    ※reference : https://en.wikipedia.org/wiki/ISO_4217
    info[].productName string(4000) Y 商品名
    info[].payStatus string(30) Y 決済状態
    - AUTHORIZATION : 承認
    - VOIDED_AUTHORIZATION : 承認無効(「void api」を呼び出して完了した状態)
    - EXPIRED_AUTHORIZATION : 承認満了(LINE Payで加盟店に許可した承認期限が過ぎた状態)
    info.authorizationExpireDate string(20) N 承認満了日時(ISO8601 UTC)
    - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z'
    ※reference : https://en.wikipedia.org/wiki/ISO_8601

    Request

    GET https://sandbox-api-pay.line.me/v2/payments/authorizations?orderId=20160408003 HTTP/1.1
    Host: sandbox-api-pay.line.me
    Content-Type: application/json
    X-LINE-ChannelId: {channel id}
    X-LINE-ChannelSecret: {channel secret}
    X-LINE-MerchantDeviceType: POS
    X-LINE-MerchantDeviceProfileId: DUMMY
    

    Response

    {
      "returnCode": "0000",
      "returnMessage": "success",
      "info": [
        {
          "transactionId": 2019049910005498410,
          "transactionDate": "2019-04-08T07:02:38Z",
          "transactionType": "PAYMENT",
          "productName": "test product",
          "currency": "JPY",
          "authorizationExpireDate": "2019-04-13T07:02:38Z",
          "payInfo": [
            {
              "method": "BALANCE",
              "amount": 100
            }
          ],
          "orderId": "20190408003",
          "payStatus": "VOIDED_AUTHORIZATION"
        }
      ]
    }
    

    Payment Details

    売上以降の取引データを照会するAPIです。

    Specification

    Payment Details API Endpoint

    項目 説明
    Endpoint URL Sandbox : https://sandbox-api-pay.line.me/v2/payments/payments
    Product : https://api-pay.line.me/v2/payments/payments
    Method POST
    Timeout Read : 20秒

    Payment Details API Request Header

    項目 タイプ サイズ 必須 説明
    Content-Type string Y application/json; charset=UTF-8
    X-LINE-ChannelId string 10 Y 支払い連動情報 - Channel ID
    X-LINE-ChannelSecret string 32 Y 支払い連動情報 - Channel Secret Key
    X-LINE-MerchantDeviceProfileId string 100 N 加盟店が管理するDeviceのProfile ID
    X-LINE-MerchantDeviceType string 20 N 支払い連動するDevice type

    Payment Details API Query Parameters*

    項目名 タイプ 必須 説明
    orderId string(100) N 加盟店が決済要求時に送信した注文番号
    transactionId number(19) N LINE Payで発行した決済、または払い戻しの取引番号

    Payment Details API Response Body

    項目名 タイプ 必須 説明
    returnCode string(4) Y LINE Payによって作成された結果コード
    - 0000 : APIリクエスト成功
    - その他の応答コード: 本書の「付録 - API別の応答コード」を参照
    returnMessage string(100) Y 結果メッセージまたは失敗理由
    info[].transactionId number(19) Y 取引番号
    info[].orderId string(100) Y 加盟店の注文番号(加盟店で管理される唯一の番号)
    info[].transactionDate string(20) Y 取引日時(ISO8601 UTC)
    - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z'
    ※reference : https://en.wikipedia.org/wiki/ISO_8601
    info[].transactionType String(20) Y 取引区分
    - PAYMENT : 決済
    - PAYMENT_REFUND : 払い戻し
    - PARTIAL_REFUND : 一部払い戻し
    info[].payInfo[].method string(20) Y 決済時に使用された決済手段
    - CREDIT_CARD
    - BALANCE
    - DISCOUNT
    - POINT(利用されたLINEポイントを区別して受け取りたい場合に設定されます。詳細は「POINT決済レスポンス」を参照ください。)
    info[].payInfo[].amount number(38) Y 取引金額
    info[].currency string(3) Y 通貨
    ※reference : https://en.wikipedia.org/wiki/ISO_4217
    info[].productName string(4000) Y 商品名
    原決済取引の照会および払い戻し取引がある場合
    info[].refundList[].refundTransactionId number(19) Y 払戻取引番号
    info[].refundList[].transactionType string(20) Y 取引区分
    - PAYMENT_REFUND : 払い戻し
    - PARTIAL_REFUND : 一部払い戻し
    info[].refundList[].refundAmount number(38) Y 払い戻し金額
    info[].refundList[].refundTransactionDate String(20) Y 払戻取引日時(ISO8601 UTC)
    - Time Format : yyyy-MM-dd'T'HH:mm:ss'Z'
    ※reference : https://en.wikipedia.org/wiki/ISO_8601
    払い戻し情報を取得するとき
    info[].originalTransactionId number(19) Y 元決済取引番号

    Request

    GET https://sandbox-api-pay.line.me/v2/payments/?orderId=20160408001 HTTP/1.1
    Host: sandbox-api-pay.line.me
    Content-Type: application/json
    X-LINE-ChannelId: {channel id}
    X-LINE-ChannelSecret: {channel secret}
    X-LINE-MerchantDeviceType: POS
    X-LINE-MerchantDeviceProfileId: DUMMY
    

    Response

    {
      "returnCode": "0000",
      "returnMessage": "success",
      "info": [
        {
          "transactionId": 2019049910005496810,
          "transactionDate": "2019-04-08T06:31:19Z",
          "transactionType": "PAYMENT",
          "productName": "test product",
          "currency": "JPY",
          "payInfo": [
            {
              "method": "BALANCE",
              "amount": 100
            }
          ],
          "refundList": [
            {
              "refundTransactionId": 2019049910005497012,
              "transactionType": "PARTIAL_REFUND",
              "refundAmount": -1,
              "refundTransactionDate": "2019-04-08T06:33:17Z"
            }
          ],
          "orderId": "20190408001"
        }
      ]
    }
    

    付録

    応答コード

    LINE Payで発生するエラーコードについて定義する。エラーコードの「returnMessage」は英語で提供され、メッセージがない場合はハイフン(-)が送信される。

    LINE Payの応答コード

    コード(returnCode) 説明(300byte)
    0000 Success.
    成功
    1101 Purchaser status error.
    LINE Pay会員ではありません。
    1102 Purchaser status error.
    購入した会員が取引不可能な状態です。
    1104 Merchant not found.
    加盟店がありません。
    1105 This Merchant cannot use LINE Pay.
    加盟店がLINE Payを利用できない状態です。
    1106 Header information error.
    ヘッダー情報エラー
    1110 Not available credit card.
    使用できないクレジットカードです。
    1115 Cannot proceed with something.
    処理を進めることができません。
    1123 Account balance has just updated by another transaction.
    残高が他のトランザクションによって更新されました。
    1124 Error in Amount info.
    金額情報エラーです。
    1133 invalid OneTimeKey.
    無効なoneTimeKeyです。
    1139 Not support partial capture/partial cancel.
    一部売上/キャンセルはサポートされていません。
    1141 Account status error.
    決済口座の状態エラー
    1142 Insufficient balance remains.
    残高不足
    1145 Payment in progress.
    決済中です。
    1150 Transaction record not found.
    取引履歴がありません。
    1152 Transaction has already been made.
    既に取引された決済です。
    1153 Request amount is different from real amount.
    決済予約時の金額と要求された金額が異なります。
    1155 The transaction Id not eligible for Refund.
    無効な取引番号です。
    1159 The transaction request does not exist.
    決済要求情報がありません。
    1163 Exceeded the expiration for Refund.
    払い戻し可能日が過ぎているため払い戻しができません。
    1164 Refund limit exceeded.
    払い戻し可能な金額を超えました。
    1165 The transaction has already been refunded.
    すでに払い戻し済みの取引です。
    1169 Payment method and password must be certificated by LINE Pay.
    決済確認の情報エラー(決済方法とパスワードはLINE Payにて認証されなければなりません。)
    1170 Users account remains have been changed.
    会員口座の残高が変動しました。
    1172 Existing same orderId.
    すでに同じ注文番号で取引された履歴が存在します。
    1177 Exceeded max. number of transactions (100) allowed to be retrieved.
    照会可能な最大取引数を超えました(100件)。
    1178 Unsupported currency.
    この通貨には対応していません。
    1179 Status can not be processed.
    処理できない状態です。
    This Merchant not support cross-border payment.
    この加盟店はクロスボーダー決済をサポートしていません。
    1183 Payment amount must be less than 0.
    決済金額は0より大きくなければなりません。
    1184 Payment amount must be greater than request amount.
    決済金額が要求時の金額を超えています。
    1195 LINE Pay does not support your version.
    サポート対象外です。
    1198 Duplicated the request calling API.
    重複したAPIリクエスト呼び出しです。
    1199 Internal request error.
    内部リクエストエラー
    1280 Temporary error while making a payment with Credit Card
    クレジットカード決済の一時的なエラー
    1281 Credit Card Payment Error
    クレジットカード決済エラー
    1282 Credit Card Authorization Error
    クレジットカード承認エラー
    1283 The payment has been declined due to suspected fraud.
    不正使用が疑われるため決済が拒否されました。
    1284 Credit Card Payment has been temporarily stopped.
    クレジットカード決済が一時的に中断されました。
    1285 Imitted credit card information
    クレジットカード決済情報漏れ
    1286 Incorrect credit card payment information
    クレジットカードの決済情報が正しくありません。
    1287 Credit card expiration date has passed.
    クレジットカードの有効期限が過ぎています。
    1288 Credit card has insufficient funds.
    クレジットカードの決済口座の残高が不足しています。
    1289 Maximum credit card limit exceeded.
    クレジットカードの利用限度額超過
    1290 One-time payment limit exceeded.
    クレジットカード1件あたりの決済限度額超過
    1291 This card has been reported stolen.
    盗難報告されたカードです。
    1292 This card has been suspended.
    使用が停止されたカードです。
    1293 Invalid Card Vertification Number (CVN)
    CVN入力エラー
    1294 This card is blacklisted.
    ブラックリストに登録されたカードです。
    1295 Invalid credit card numnber
    クレジットカード番号が正しくありません。
    1296 Invalid amount
    処理できない金額です。
    1298 The credit card payment declined.
    カード使用が拒否されました。
    1900 Temporary Error. Please, try again later.
    一時的なエラーです。しばらくたってからリトライしてください。
    1901 Temporary Error. Please, try again later.
    一時的なエラーです。しばらくたってからリトライしてください。
    1902 Temporary Error. Please, try again later.
    一時的なエラーです。しばらくたってからリトライしてください。
    1903 Temporary Error. Please, try again later.
    一時的なエラーです。しばらくたってからリトライしてください。
    1999 It does not match the requested information. (When retrying a request)
    前回のリクエスト情報と異なります(リクエストリトライ)。
    2101 Parameter error
    パラメータエラー
    2102 JSON data format error
    JSONデータフォーマットエラー
    2103 Incorrect request. Please, check a returnMessage.
    リクエストが正しくありません。returnMessageを確認してください。
    2104 Incorrect request. Please, check a returnMessage.
    リクエストが正しくありません。returnMessageを確認してください。
    9000 Internal error
    内部エラー

    API別の応答コード

    API別の応答コード*

    エラーコード Payment Payment status check 売上 承認無効 払い戻し 承認履歴 決済履歴
    1101 v v v
    1102 v v v
    1104 v v v v v v v
    1105 v v v v v v v
    1106 v v v v v v v
    1110 v
    1115 v v v
    1123 v v v v
    1124 v v
    1133 v
    1139 v v
    1141 v
    1142 v
    1145 v
    1150 v v v v v v
    1152 v
    1153 v
    1154
    1155 v v v
    1159 v
    1163 v
    1164 v
    1165 v v
    1169 v
    1170 v v v      
    1172 v v
    1177 v v
    1178 v
    1179 v v v v
    1183 v v
    1184 v v
    1195 v
    1198 v v v v
    1199 v v v v
    1900 v v v
    1901 v
    1902 v
    1903 v
    1999 v v v
    2101 v v v v v v v
    2102 v v v v v v v
    2103 v v v v v v v
    2104 v v v v v v v
    9000 v v v v v v v

    Sandboxワンタイムキー決済

    加盟店はユーザーがLINE Payの”コード支払い”から表示したQR/バーコードを読み込みしてから決済します。Sandbox環境では、テスト決済を行なうために、この”コード支払い”をWebページでシミュレーションして提供します。加盟店はSandbox環境でこのQR/バーコードを読み込み、Payment APIを呼びます。

    Sandbox OneTimeKey URL Specification

    Sandbox OneTimeKey URL Endpopint Specification

    項目 説明
    Protocol HTTPS
    Method GET
    Host sandbox-web-pay.line.me
    URL /web/sandbox/payment/oneTimeKey

    Sandbox OneTimeKey URL Request Parameters*

    項目名 説明
    countryCode 国コードです。サポートされている国は以下の通りです。通貨はcountryCodeによってセットされます。
    - JP (通貨:JPY)
    - TW (通貨:TWD)
    - TH (通貨:THB)
    デフォルトはTH
    paymentMethod 決済時に使用する決済手段
    - card:カード決済
    - balance:LINE Payアカウントで決済(JP、THのみ)
    - ipass:LINE Payアカウントでのみ決済(TWのみ)

    Sandbox OneTimeKey URL 例

    項目 説明
    コード決済用 https://sandbox-web-pay.line.me/web/sandbox/payment/oneTimeKey?countryCode=JP&length=19

    POINT決済レスポンス

    ユーザーが利用したポイント決済情報を下記のAPIで受け取るには、設定変更する必要があります。加盟店センターにログインし、「基本情報の管理」→「その他の情報」をクリックし、「APIの決済結果にユーザーのPOINT利用情報を提供」欄を参照し、「使用する」をチェックし保存します。提供されるAPIリストも表示されますので確認してください。チェックした場合は、ポイント決済は、’info.payInfo[]’ 項目に ’method: POINT’として追加されます。 ユーザーがポイントのみで決済した場合、APIレスポンスはオプション設定によって変わります。 - 「使用しない」を設定している場合は、上位の決済手段にポイントデータが含まれます。ポイント決済は設定されません。 - 「使用する」を設定している場合は、ポイント決済データは、他の決済方法と分けられます。ポイント決済は ’payinfo’ 内に設定されます。

    API Response Sample(「APIの決済結果にユーザーのPOINT利用情報を提供」に「使用しない」を設定)

    {
        "returnCode": "0000",
        "returnMessage": "OK",
        "info": {
            "orderId": "order_210124213",
            "transactionId": 20140101123123123,
            "payInfo": [{
                "method": "BALANCE",
                "amount": 15
            }]
        }
    }
    

    API Response Sample(「APIの決済結果にユーザーのPOINT利用情報を提供」に「使用する」を設定)

    {
        "returnCode": "0000",
        "returnMessage": "OK",
        "info": {
            "orderId": "order_210124213",
            "transactionId": 20140101123123123,
            "payInfo": [{
                "method": "POINT",
                "amount": 15
            }]
        }
    }
    

    更新履歴

    LINE Pay Offline APIの最新バージョンは、0.1.9 です。

    LINE Pay Offline API 更新履歴

    バージョン 日付 履歴 作成者
    0.1.0 2016.05.01 初版作成
    0.1.4 2017.12.01 Payment APIからneedCheckを削除
    0.1.5 2018.10.16 決済 resarve APIのリクエストパラメータへフィールドを追加および例を修正
     - extras.addFriends, extras.branchName
    Shuichi Shiota
    0.1.7 2018.12.04 Payment、Payment Details、および、Authorization Detailsのレスポンスパラメータに加盟店用アフィリエイト用コード/カード情報を追加(台湾のみ利用可能であるので、当日本語資料には記載しておりません。) Shuichi Shiota
    0.1.8 2019.04.01 1. 仕様変更
     1.1. returnCode
      - Refund Payment API: エラーコード 1115の説明追加
     1.2. Payment API
      1.2.1注意書きを更新
      1.2.2 タイムアウト変更:20秒から40秒
      1.2.3 パラメータの説明を編集:extras.promotionRestriction
     1.3. Payment Status Check API
     - レスポンスの説明を追加:AUTH_READY、CANCEL

    2. 追加改訂
     - “pay_tech”メールアドレスを削除
     - 付録追加:ポイント決済レスポンス
     - タイプミスの修正
     - Payment APIサンプルURLの変更
     - 追加内容:SandboxワンタイムキーテストURL
     - APIレスポンスからエラーコード1194を削除

    3. 応答コードに英語表記を追加(日本語版のみ)
    Shuichi Shiota
    0.1.9 2019.06.12 1. 仕様変更
     1.1. Payment API
      1.1.1. “extras.branchId”を追加
      1.1.2. “oneTimeKey” 国別桁数を更新
    Shuichi Shiota