銀行振込(ベトナム)
管理画面での場所: Finance › Payment channels › VN bank transfer (
/payments/bank)。為替レート: Finance › Payment channels › Exchange rates (/payments/fx)。
動作内容
ベトナムドンによる通常の銀行振込でUSDウォレットへの入金を可能にします。NexCMPにはVietQRコード、口座詳細、一意の振込メモが表示されます。Sepayが銀行口座を監視して入金時にWebhookを呼び出し、NexCMPがウォレットにクレジットを付与します。ベトナムの顧客向けに販売する場合にご利用ください。
ベトナム語インターフェースでのみ表示
ベトナムの銀行オプションは、ポータルがVietnameseで表示されている場合にのみお客様に提示されます。他の言語を使用しているお客様には表示されません。
要件
| 項目 | 要件 |
|---|---|
| 銀行口座 | my.sepay.vn の Sepay アカウントに接続されたベトナムの銀行口座(または Sepay 仮想口座、VA)。 |
| Sepay | Webhook 統合が有効になっている Sepay アカウント。 |
| 為替レート | USD から VND へのレートが存在している必要があります。まず Exchange rates で更新してください。レートがない場合、チャネルは fx_unavailable を返し、お客様は送金を開始できません。 |
| ネットワーク | Sepay が https://<your-domain>/v1/billing/sepay/webhook を呼び出せるよう、パネルに HTTPS でアクセスできる必要があります。 |
| 依存関係 | 通貨と為替レート |
インフラストラクチャの準備
Sepay 側での準備:
- my.sepay.vn で銀行口座を接続(または VA を作成)し、トランザクションが表示されることを確認します。
- メモプレフィックスを決定します(2〜5文字の大文字、例:
PAY)。NexCMP は、プレフィックスに8桁のランダムな数字を続けたものをメモとして生成します(例:PAY48210937)。プレフィックスにORDを含めることはできず、同じ口座に入金を受け取る他のシステムで使用してはなりません。 - Sepay アカウントで決済コード構造を使用している場合は、Sepay がメモを認識できるように同じプレフィックスをそこに登録してください。
- NexCMP ページから URL とキー(以下のステップ 7)が提供されたら、Webhook を作成します。
NexCMP での接続
Finance › Payment channels › Exchange rates を開き、レートが保存されていない場合は Update exchange rates をクリックします。
Finance › Payment channels › VN bank transfer (
/payments/bank)を開きます。Receiving account で以下を入力します:
項目 Example ルール Bank VCBVietcombankリストから選択します。BIN は自動的に入力されます。 Account number 01234567894〜24桁の数字または大文字。 仮想口座 (VA — オプション) 設定した場合、お客様は VA に送金し、QR コードにそれが表示されます。 Account holder name NGUYEN VAN Aアクセントなし、大文字、2〜60文字。 Transfer memo prefix PAY2〜5文字の大文字、 ORDは不可。Webhook authentication で Auth method(HMAC-SHA256(推奨)または API key)を選択し、Webhook key / HMAC secret(8〜200文字)を入力します。オプションで Sepay の userapi token を入力します。これは、Webhook が失われた送金を照合するためにのみ使用されます。
Channel & limits で制限を設定します(括弧内はデフォルト値): Min / order(10,000 VND)、Max / order(200,000,000 VND)、Order expiry(120分、15〜1440)、Max pending orders / account(3、1〜10)、Reconcile every(10分)、およびオプションで Allowed webhook IPs(カンマ区切り。空の場合は IP がログに記録されるのみです)。
Save をクリックします。口座、名前、プレフィックス、キーが有効になると、赤いバナー「Sepay not configured」が消えます。
Webhook URL to paste into my.sepay.vn(
https://<your-domain>/v1/billing/sepay/webhookと表示)をCopyでコピーします。SepayでWebhook連携を開き、URLを貼り付け、同じ認証タイプとキーを選択して、「money in」イベントを有効にします。Test connection をクリックします。次に、Enable Sepay for clients (main site) をオンにして Save をクリックします。


Webhook security
| Method | SePayが送信する必要がある内容 |
|---|---|
| HMAC-SHA256 | ヘッダー X-SePay-Signature: sha256=<hex>("<X-SePay-Timestamp>.<raw body>" から計算されます)。タイムスタンプのずれは最大 300 秒以内です。 |
| API キー | ヘッダー Authorization: Apikey <key>。 |
ヘッダーのみが検証され(本文やクエリ文字列は一切検証されません)、比較は定数時間で行われます。設定されたアカウントまたは VA へのインバウンド転送(transferType = in)のみが使用されます。各 SePay トランザクションは 1 回だけ保存されるため、リトライされた Webhook によって二重に入金されることはありません。NexCMP は、トランザクションを意図的に無視した場合でも 200 {"success":true} を返し、一時的なエラーの場合のみ HTTP 5xx を返して SePay に再試行を促します。
お客様のお支払い方法
- Billing › Deposit(ベトナム語インターフェイス)で、お客様がベトナムの銀行振込オプションと金額を選択し、転送作成ボタンをクリックします。
- NexCMP は、保存されたレート(Exchange rates で設定したマージンと丸めステップを含みます)で USD 金額を換算し、VND 金額を丸めステップに合わせて切り上げます。
- お客様には、口座番号、銀行名、金額、およびメモが含まれる QR コード(VietQR、ローカル生成)が表示されます。
- 振込完了後、SePay が Webhook を呼び出し、NexCMP が
floor(VND received × 100 / rate)セントを入金します。レートは注文作成時に固定されます。注文の有効期限が切れた後に送金が到着した場合は、固定レートと現在のレートの高い方が適用されます。 - 注文の有効期限は Order expiry の経過後に切れます。安全装置として、Reconcile every 分ごとに照合が実行されます(userapi トークンが必要です)。
確認
- ベトナム語インターフェイスで、お客様としてテスト注文を作成します。金額、口座、メモが正しいことを確認します。
- 許可されている最小金額を、正しいメモを指定して送金します。
- 1 分以内にポータルで入金が完了してウォレット残高が増加したことが表示され、銀行ページの State カードに最後の Webhook 時刻が表示されます。
- Finance › Billing › Top-ups を開き、受け取った VND 金額で支払いが一覧表示されていることを確認します。
制限と注意事項
- 最小金額。 お客様に表示される VND の最小額は、Min / order と minimum top-up の VND 換算値のうち大きい方になります。
- 保留中の注文。 お客様が同時に開いたままにできる未完了の注文は Max pending orders / account までです(デフォルトは 3)。
- 同じメモの重複。 同じメモで 2 回送金を行うと、現在のレートで 2 つ目の完了済み支払いが作成されます。
- 銀行口座への自動返金はありません。
- 手数料。 このチャネルには Fees & limits 内に固定手数料の項目はなく、レートマージンが唯一の調整項目となります。
- Resellers は独自のアカウントを設定できます。その Webhook URL は
/v1/billing/sepay/webhook/r/<id>で終わります。
一致しない送金
アカウントに到着したものの有効なメモが含まれていない送金は、ページ下部の Unmatched transactions に表示されます(All channel owners または Master でフィルタリングしてください)。お客様に銀行参照情報を確認したうえで、Assign をクリックし、アカウントを選択します。ウォレットには現在のレートで入金されます。
トラブルシューティング
| 症状 | 原因 | 対処法 |
|---|---|---|
| バナー「Sepay not configured」 | 銀行、口座、名義人、プレフィックス、またはキーが不足しているか無効です | Receiving account および Webhook authentication のカードを完了します。 |
バナー「USD/VND rate blocked」(fx_unavailable) | 為替レートが保存されていません | Exchange rates › Update exchange ratesを実行してください。 |
prefix: 2–5 capital letters, no ORD | プレフィックスが無効です | ORD を含まない 2〜5 文字の大文字を使用してください。 |
account_name エラー | アクセント記号が含まれているか、小文字です | アクセント記号のない大文字、数字、スペース、ドット、またはハイフンを使用してください。 |
webhook_secret: 8–200 characters | キーが短すぎます | 印刷可能な文字を 8 文字以上使用してください。 |
| お客様にオプションが表示されない | ベトナム語インターフェイスでない、スイッチがオフ、またはレートがありません | 言語、スイッチ、およびレートを確認してください。 |
| 顧客は支払ったが反映されない | Webhookが届かなかった、メモが変更された、金額が間違っている | SepayのWebhookログを確認してください。メモが間違っていた場合、転送はUnmatched transactionsに入ります。 |
| Webhookが401または403を返す | 認証方式またはキーの不一致 | SepayとNexCMPで同じ方式とキーを使用してください。 |
| 顧客に "Too many pending requests" が表示されます | 保留中の注文制限に達しました | 完了するか、有効期限を待ちます。 |