Konbini(コンビニ決済)
7-Eleven、FamilyMart、Lawson、その他の主要チェーンを含む日本全国の55,000以上のコンビニエンスストアで現金決済を受け付けます。現金決済オプションを好む、または必要とするお客様に最適です。
概要
Konbini(コンビニ決済)は、お客様がコンビニエンスストアで現金でオンライン購入の支払いができる、日本で広く使用されている決済方法です。24時間営業の全国55,000以上のコンビニエンスストアがあり、konbini決済はクレジットカードを持っていない、またはオンラインで使用したくないお客様にアクセシビリティと信頼を提供します。
主な機能:
- ✅ 55,000以上の店舗 - 日本全国をカバー
- ✅ 24時間年中無休 - コンビニエンスストアは常に営業
- ✅ 銀行口座不要 - 現金決済のみ
- ✅ 信頼できる方法 - すべての年齢層で人気
- ✅ 領収書発行 - 支払いの物理的な証明
- ✅ チャージバックなし - 現金決済は確定
対応店舗
konbini決済を受け付ける主要コンビニエンスストアチェーン:
| チェーン | 店舗数 | 備考 |
|---|---|---|
| 7-Eleven | 21,000+ | マルチコピー機システム |
| FamilyMart | 16,000+ | Famiポート端末 |
| Lawson | 14,000+ | Loppi端末 |
| Mini Stop | 2,000+ | Loppi端末 |
| セイコーマート | 1,100+ | 地域(北海道) |
| デイリーヤマザキ | 1,000+ | レシートシステム |
対応地域
| 地域 | 通貨 | 最小金額 | 最大金額 | 支払い期限 |
|---|---|---|---|---|
| 日本 | JPY | ¥100 | ¥300,000 | 7-14日* |
*支払い期限は取引ごとにカスタマイズ可能(通常3、7、または14日)
仕組み
お客様の体験:
- お客様がチェックアウトで「Konbini」を 選択
- 希望するコンビニエンスストアチェーンを選択
- 支払いコードと手順を受け取る
- 支払い期限内に選択したコンビニエンスストアを訪問
- 店内端末(Famiポート、Loppiなど)を使用するか、カウンターでコードを提示
- 現金で支払い、領収書を受け取る
- 支払い確認後、加盟店が注文を発送
通常の完了時間: 30分 - 7日(お客様が店舗を訪問するタイミングに依存)
実装
ステップ1: Konbiniソースを作成
- cURL
- Node.js
- PHP
- Python
- Ruby
- Go
- Java
- C#
curl https://api.omise.co/sources \
-u skey_test_YOUR_SECRET_KEY: \
-d "type=econtext" \
-d "amount=100000" \
-d "currency=JPY" \
-d "name=田中太郎" \
-d "email=tanaka@example.com" \
-d "phone_number=08012345678"
const omise = require('omise')({
secretKey: 'skey_test_YOUR_SECRET_KEY'
});
const source = await omise.sources.create({
type: 'econtext',
amount: 100000, // ¥100,000
currency: 'JPY',
name: '田中太郎',
email: 'tanaka@example.com',
phone_number: '08012345678'
});
<?php
$source = OmiseSource::create(array(
'type' => 'econtext',
'amount' => 100000,
'currency' => 'JPY',
'name' => '田中太郎',
'email' => 'tanaka@example.com',
'phone_number' => '08012345678'
));
?>
import omise
omise.api_secret = 'skey_test_YOUR_SECRET_KEY'
source = omise.Source.create(
type='econtext',
amount=100000,
currency='JPY',
name='田中太郎',
email='tanaka@example.com',
phone_number='08012345678'
)
require 'omise'
Omise.api_key = 'skey_test_YOUR_SECRET_KEY'
source = Omise::Source.create({
type: 'econtext',
amount: 100000,
currency: 'JPY',
name: '田中太郎',
email: 'tanaka@example.com',
phone_number: '08012345678'
})
source, err := client.Sources().Create(&operations.CreateSource{
Type: "econtext",
Amount: 100000,
Currency: "JPY",
Name: "田中太郎",
Email: "tanaka@example.com",
PhoneNumber: "08012345678",
})
Source source = client.sources().create(new Source.CreateParams()
.type("econtext")
.amount(100000L)
.currency("JPY")
.name("田中太郎")
.email("tanaka@example.com")
.phoneNumber("08012345678"));
var source = await client.Sources.Create(new CreateSourceRequest
{
Type = "econtext",
Amount = 100000,
Currency = "JPY",
Name = "田中太郎",
Email = "tanaka@example.com",
PhoneNumber = "08012345678"
});
レスポンス:
{
"object": "source",
"id": "src_test_5rt6s9vah5lkvi1rh9c",
"type": "econtext",
"flow": "offline",
"amount": 100000,
"currency": "JPY",
"name": "田中太郎",
"email": "tanaka@example.com",
"phone_number": "08012345678",
"references": {
"payment_code": "1234567890123",
"expires_at": "2024-02-15T23:59:59Z"
}
}
ステップ2: チャージを作成
curl https://api.omise.co/charges \
-u skey_test_YOUR_SECRET_KEY: \
-d "amount=100000" \
-d "currency=JPY" \
-d "source=src_test_5rt6s9vah5lkvi1rh9c" \
-d "return_uri=https://yourdomain.com/orders/confirmation"
ステップ3: 支払い手順を表示
app.post('/checkout/konbini', async (req, res) => {
try {
const { amount, order_id, customer_name, customer_email, customer_phone } = req.body;
// 金額を検証(¥100 - ¥300,000)
if (amount < 100 || amount > 300000) {
return res.status(400).json({
error: '金額は¥100から¥300,000の間である必要があります'
});
}
// 必須フィールドを検証
if (!customer_name || !customer_email || !customer_phone) {
return res.status(400).json({
error: 'Konbini決済には名前、メール、電話番号が必要です'
});
}
// ソースを作成
const source = await omise.sources.create({
type: 'econtext',
amount: amount,
currency: 'JPY',
name: customer_name,
email: customer_email,
phone_number: customer_phone
});
// チャージを作成
const charge = await omise.charges.create({
amount: amount,
currency: 'JPY',
source: source.id,
return_uri: `${process.env.BASE_URL}/orders/${order_id}/confirmation`,
metadata: {
order_id: order_id
}
});
// 支払い手順を表示
res.render('konbini-instructions', {
payment_code: charge.source.references.payment_code,
expires_at: charge.source.references.expires_at,
amount: charge.amount,
order_id: order_id,
customer_name: customer_name
});
} catch (error) {
console.error('Konbiniエラー:', error);
res.status(500).json({ error: error.message });
}
});
返金サポート
Konbini決済はOmiseを通じた返金をサポートしていません。お客様がコンビニエンスストアで現金で支払うと、APIを介して支払いを返金することはできません。返金は手動で処理する必要があります(例:お客様への銀行振込)。
よくある問題とトラブルシューティング
問題: 支払い期限が切れました
原因: お客様が支払い期限内に支払わなかった
解決策:
// 期限前にリマインダーメールを送信
async function sendPaymentReminders(orderId) {
const payment = await db.payments.findOne({ order_id: orderId });
const expiresAt = new Date(payment.expires_at);
const now = new Date();
const hoursUntilExpiry = (expiresAt - now) / (1000 * 60 * 60);
// 期限の24時間前にリマインダーを送信
if (hoursUntilExpiry <= 24 && hoursUntilExpiry > 23) {
await sendEmail({
to: payment.customer_email,
subject: 'お支払い期限が近づいています',
body: `お支払い期限まで残り24時間です。お早めにお支払いください。`
});
}
}
ベストプラクティス
1. 日本語で明確な手順を提供
// お客様向けのすべてのテキストは日本語である必要があります
const instructions = {
title: 'コンビニでのお支払い方法',
steps: [
'最寄りのコンビニエンスストアに行きます',
'店内の端末でお支払い番号を入力します',
'印刷された申込券をレジに持っていきます',
'現金でお支払いください',
'お支払い後、確認メールが届きます'
]
};
2. 複数の通知を送信
// メールのタイムライン
async function sendKonbiniNotifications(order, payment) {
// 即時: 支払い手順
await sendPaymentInstructions(order, payment);
// 3日目: 未払いの場合はリマインダー
scheduleEmail(order, payment, 3, 'reminder');
// 6日目: 最終リマインダー(7日間の期限の場合)
scheduleEmail(order, payment, 6, 'final_reminder');
// 期限: キャンセル通知
scheduleEmail(order, payment, 7, 'expiry');
}
FAQ
Konbini決済とは何ですか?
Konbini(コンビニエンスストア)決済により、お客様は7-Eleven、FamilyMart、Lawsonを含む日本全国の55,000以上のコンビニエンスストアでオンライン購入の代金を現金で支払うことができます。 現金決済オプションを好む、または必要とするお客様に最適です。
お客様は銀行口座やクレジットカードが必要ですか?
いいえ、Konbini決済は現金のみで、銀行口座やクレジットカードは必要ありません。お客様はコンビニエンスストアのカウンターで現金で支払うだけです。
取引制限は何ですか?
- 最小: 取引あたり¥100
- 最大: 取引あたり¥300,000
- 支払い期限: 通常3-14日(カスタマイズ可能)
どのコンビニエンスストアがKonbini決済を受け付けていますか?
主要チェーンには以下が含まれます:
- 7-Eleven(21,000以上の店舗)
- FamilyMart(16,000+)
- Lawson(14,000+)
- Mini Stop(2,000+)
- セイコーマート(北海道に1,100+)
- デイリーヤマザキ(1,000+)
支払いが確認されるまでどのくらいかかりますか?
支払い確認は通常、お客様がコンビニエンスストアで支払った後、即時または数分以内です。Webhookは支払いが受領されるとすぐに通知します。
Konbini決済を返金できますか?
いいえ、Konbini決済は現金決済であるため、Omise APIを通じて返金することはできません。お客様に返金する必要がある場合は、Omise外で手動返金(例:銀行振込)を手配する必要があります。
テスト
テストモード
KonbiniはテストAPIキーを使用してテストできます。テストモードでは:
テスト認証情報:
- テストAPIキーを使用(skey_test_xxx)
- 通貨: JPY(日本円)
- 有効な日本の名前、メール、電話番号形式を使用
- 実際のコンビニエンスストアへの訪問は不要
テストフロー:
- テストの顧客詳細(名前、メール、電話)でソースを作成
- テストAPIキーでチャージを作成
- テストモードで支払いコードが生成される
- Omiseダッシュボードアクションを使用して、チャージを成功/失敗/期限切れとしてマーク
- すべてのステータスのWebhook処理を確認
関連リソース
- 日本の決済方法 - 日本の決済オプションの概要
- PayPay - デジタルウォレットオプション
- Pay-easy - オンラインバンキングオプション
- テスト - Konbini統合をテスト
- Webhook - 支払い通知を処理