Multi-Currency

หัวข้อทั้งหมดในหน้านี้

ร้านค้าสามารถรับชำระเงินจากผู้ซื้อผ่านบัตรเครดิตและบัตรเดบิตเป็นสกุลเงินต่างประเทศได้ โดยการเปิดใช้บริการ สกุลเงินต่างประเทศ กับ Opn Payments ผู้ถือบัตรสามารถเลือกชำระค่าสินค้าหรือบริการจากทางร้านค้าในสกุลเงินที่ต้องการ โดยระบบของ Opn Payments จะทำการแปลงสกุลเงินต่างประเทศให้เป็นสกุลเงินท้องถิ่นของร้านค้าโดยอัตโนมัติ

คู่มือการใช้งานนี้จะอธิบายวิธีการรับชำระเงินในสกุลเงินต่างประเทศ

การเปิดรับชำระเงิน

  • ประเทศที่รองรับ: ประเทศไทย, สิงคโปร์, ประเทศญี่ปุ่น
  • API เวอร์ชันล่าสุดที่รองรับ: 2014-07-27

ร้านค้าที่ต้องการเปิดใช้ระบบ Multi-Currency กรุณาส่งอีเมลมาที่ support@opn.ooo ทางทีมงานโอมิเซะจะส่งข้อกำหนดและเงื่อนไขการใช้บริการให้ร้านค้าได้พิจารณาและลงลายมือชื่อก่อนเปิดใช้งานจริง

หมายเหตุ:

  • การรับชำระเงินในสกุลเงินต่างประเทศสามารถรับผ่านบัตรเครดิตและบัตรเดบิตเท่านั้น ช่องทางการรับชำระเงินอื่นๆ ไม่รองรับบริการนี้
  • ในประเทศไทย ฟีเจอร์นี้สามารถใช้ได้กับบัตร Visa และ Mastercard เท่านั้น
  • ในบางกรณีธนาคารผู้ออกบัตรอาจคิดค่าธรรมเนียมการการชำระเงินเป็นสกุลต่างประเทศกับผู้ถือบัตรเพิ่มเติม แม้ผู้ถือบัตรจะเลือกชำระเป็นสกุลเงินท้องถิ่นของตนเองก็ตาม

สกุลเงินต่างประเทศที่รองรับ

สกุลเงินต่างประเทศที่รองรับจะมีความแตกต่างกัน ขึ้นอยู่กับประเทศที่ร้านค้าลงทะเบียนใช้งาน Opn Payments

รหัสสกุลเงิน สกุลเงิน ไทย สิงคโปร์ ญี่ปุ่น*
AUD ดอลลาร์ออสเตรเลีย
CAD ดอลลาร์แคนาดา
CHF สวิสฟรังก์
CNY หยวนจีน
DKK โครนเดนมาร์ก
EUR ยูโร
GBP ปอนด์สเตอร์ลิง
HKD ดอลลาร์ฮ่องกง
JPY เยน ✓†
MYR ริงกิตมาเลเซีย
SGD ดอลลาร์สิงคโปร์ ✓†
THB บาท ✓†
USD ดอลลาร์สหรัฐ

* บริการนี้ยังไม่รองรับร้านค้าที่ลงทะเบียนใช้งาน Opn Paymentsในประเทศญี่ปุ่น
สกุลเงินท้องถิ่นของร้านค้า

การใช้งาน

ตัวอย่างนี้แสดงวิธีการสร้างรายการรับชำระเงินจำนวน 1,000 ดอลลาร์สหรัฐ จากร้านค้าที่ลงทะเบียนใช้งานในประเทศไทย

การสร้างรายการรับชำระเงินในสกุลเงินต่างประเทศ มีวิธีการคล้ายกันกับการสร้างรายการรับชำระเงินปกติ

  1. สร้าง token ใหม่
  2. สร้างรายการรับชำระเงินใหม่ โดยระบุ currency เป็นสกุลเงินอื่นๆ ที่ไม่ใช่สกุลเงินท้องถิ่นของร้านค้า

การสร้าง token

สามารถอ่านวิธีการสร้าง token ใหม่ ได้จากคู่มือ Omise.js ในการทดสอบระบบ สามารถทดสอบตามตัวอย่างที่แสดงในคู่มือการใช้งานนี้ สำหรับแบบฟอร์มชำระเงิน สามารถคัดลอกโค้ดตัวอย่างนี้แล้ววางลงในหน้าชำระเงิน

<form id="checkout-form" method="POST" action="/checkout">
  <script type="text/javascript" src="https://cdn.omise.co/omise.js"
          data-key="OMISE_PUBLIC_KEY"
          data-amount="100000"
          data-currency="USD">
  </script>
</form>

การสร้างรายการรับชำระเงินสกุลต่างประเทศ

นำ token ที่ได้จากขั้นตอนแรก มาสร้างรายการรับชำระเงินใหม่ โดยส่งคำสั่งผ่าน charge API ตรวจสอบข้อมูลด้านล่างนี้ ใน charge object ที่ได้รับตอบกลับ:

  • currency: สกุลเงินที่ระบุในขั้นตอนการสร้างรายการรับชำระเงิน (USD)
  • funding_currency: สกุลเงินท้องถิ่นของร้านค้า (THB)
  • funding_amount: ยอดรับชำระเงินเมื่อทำการแปลงจากสกุลเงินต่างประเทศเป็นสกุลเงินท้องถิ่นของร้านค้า

นอกจาก amount และ refunded_amount แล้ว ยอดทั้งหมดจะแสดงเป็นสกุลเงินท้องถิ่นของร้านค้า

curl https://api.omise.co/charges \
  -X POST \
  -u $OMISE_SECRET_KEY: \
  -d "amount=100000" \
  -d "currency=USD" \
  -d "card=$TOKEN_ID"
{
  "object": "charge",
  "id": "chrg_test_5y32p7iqvboe1t9x17y",
  "location": "/charges/chrg_test_5y32p7iqvboe1t9x17y",
  "amount": 100000,
  "net": 3308639,
  "fee": 125673,
  "fee_vat": 8797,
  "interest": 0,
  "interest_vat": 0,
  "funding_amount": 3443109,
  "refunded_amount": 0,
  "transaction_fees": {
    "fee_flat": "0.0",
    "fee_rate": "3.65",
    "vat_rate": "7.0"
  },
  "platform_fee": {
    "fixed": null,
    "amount": null,
    "percentage": null
  },
  "currency": "USD",
  "funding_currency": "THB",
  "ip": null,
  "refunds": {
    "object": "list",
    "data": [],
    "limit": 20,
    "offset": 0,
    "total": 0,
    "location": "/charges/chrg_test_5y32p7iqvboe1t9x17y/refunds",
    "order": "chronological",
    "from": "1970-01-01T00:00:00Z",
    "to": "2023-12-13T12:44:05Z"
  },
  "link": null,
  "description": null,
  "metadata": {},
  "card": {
    "object": "card",
    "id": "card_test_5y32p7cui8hp5licv1o",
    "livemode": false,
    "location": null,
    "deleted": false,
    "street1": null,
    "street2": null,
    "city": "Bangkok",
    "state": null,
    "phone_number": null,
    "postal_code": "10320",
    "country": "us",
    "financing": "credit",
    "bank": "JPMORGAN CHASE BANK N.A.",
    "brand": "Visa",
    "fingerprint": "oWOKTxZALCVYePaebQLM0gaZIrPlXZ7JRtR0i0CDQyY=",
    "first_digits": null,
    "last_digits": "4242",
    "name": "Somchai Prasert",
    "expiration_month": 9,
    "expiration_year": 2024,
    "security_code_check": true,
    "tokenization_method": null,
    "created_at": "2023-12-13T12:44:04Z"
  },
  "source": null,
  "schedule": null,
  "customer": null,
  "dispute": null,
  "transaction": "trxn_test_5y32p7miy8okd6dred1",
  "failure_code": null,
  "failure_message": null,
  "status": "successful",
  "authorize_uri": null,
  "return_uri": null,
  "created_at": "2023-12-13T12:44:05Z",
  "paid_at": "2023-12-13T12:44:05Z",
  "expires_at": "2023-12-20T12:44:05Z",
  "expired_at": null,
  "reversed_at": null,
  "zero_interest_installments": false,
  "branch": null,
  "terminal": null,
  "device": null,
  "authorized": true,
  "capturable": false,
  "capture": true,
  "disputable": true,
  "livemode": false,
  "refundable": true,
  "partially_refundable": true,
  "reversed": false,
  "reversible": false,
  "voided": false,
  "paid": true,
  "expired": false
}

อัตราแลกเปลี่ยน

เมื่อได้รับชำระเงินในสกุลเงินต่างประเทศ ระบบจะทำการแปลงยอดเงินนั้น ๆ เป็นสกุลเงินท้องถิ่นของร้านค้าโดยอัตโนมัติก่อนจะทำการสรุปยอดเข้าบัญชี อัตราแลกเปลี่ยนที่ใช้เป็นอัตราแลกเปลี่ยนซึ่งมีการอัปเดตแบบเรียลไทม์ ซึ่งจะสูงกว่าราคากลางของตลาด (mid-market rate) ประมาณ 2-4% สามารถเรียกดูอัตราแลกเปลี่ยนที่ใช้ได้ผ่าน Forex API

ยอดขั้นต่ำและสูงสุดของรายการรับชำระเงิน กำหนดจากสกุลเงินท้องถิ่นของร้านค้า เนื่องจากอัตราแลกเปลี่ยนมีความผันผวนยอดเงินตำ่สุดและสูงสุดที่สามารถรับชำระได้อาจมีความแตกต่างกันในแต่ละช่วงเวลา

curl https://api.omise.co/forex/usd \
  -u $OMISE_SECRET_KEY:
{
  "object": "forex",
  "rate": 34.431094,
  "location": "/forex/usd",
  "livemode": false,
  "base": "USD",
  "quote": "THB"
}

การคืนเงิน

ร้านค้าสามารถทำการคืนเงินแบบเต็มจำนวนหรือคืนเงินเพียงบางส่วนของยอดชำระทั้งหมด โดยสามารถเลือกดำเนินการผ่าน Refund API หรือผ่านแดชบอร์ด ระบบจะทำการคืนเงินแก่ผู้ถือบัตรในสกุลเงินเดียวกันกับที่มีการรับชำระเงิน

ยอดขั้นต่ำและสูงสุดของรายการรับชำระเงิน กำหนดจากสกุลเงินท้องถิ่นของร้านค้า เนื่องจากอัตราแลกเปลี่ยนมีความผันผวนยอดเงินตำ่สุดและสูงสุดที่สามารถรับชำระได้อาจมีความแตกต่างกันในแต่ละช่วงเวลา

curl https://api.omise.co/charges/$CHARGE_ID/refunds \
  -X POST \
  -u $OMISE_SECRET_KEY: \
  -d "amount=100000"
{
  "object": "refund",
  "id": "rfnd_test_5y32p7xe4cv201tydb4",
  "location": "/charges/chrg_test_5y32p70djubxnb6drhb/refunds/rfnd_test_5y32p7xe4cv201tydb4",
  "livemode": false,
  "voided": true,
  "currency": "USD",
  "amount": 100000,
  "metadata": {},
  "charge": "chrg_test_5y32p70djubxnb6drhb",
  "terminal": null,
  "transaction": "trxn_test_5y32p7xndd3d75buyye",
  "status": "closed",
  "funding_amount": 3443109,
  "funding_currency": "THB",
  "created_at": "2023-12-13T12:44:07Z"
}

แดชบอร์ด

ตัวอย่างรายการที่แสดงบนแดชบอร์ด:

Multi-currency charge

ข้อขัดข้อง

หากร้านค้าไม่ได้ทำการเปิดใช้งานสกุลเงินต่างประเทศไว้ และได้ทำการสร้างรายการในสกุลเงินต่างประเทศ รายการจะไม่สำเร็จ โดยจะแสดงรหัสข้อขัดข้องเป็น failed_multi_currency

กรุณาติดต่อ support@opn.ooo หากพบข้อขัดข้องนี้

บัญชีร้านค้าที่ไม่ได้ตั้งค่าเพื่อรับสกุลเงินต่างประเทศจะไม่สามารถรับชำระรายการที่จ่ายด้วยสกุลเงินต่างประเทศได้ โดยจะขึ้นว่า invalid_charge

ขั้นตอนถัดไป

เว็ปไซต์นี้มีการใช้คุกกี้เพื่อวิเคราะห์การใช้และปรับการใช้งานให้เหมาะกับท่าน เมื่อกดยอมรับหรือยังคงเข้าชมเว็บไซต์ต่อ เราถือว่าท่านยินยอมในการใช้งานคุกกี้ของเว็บไซต์ อ่านนโยบายความเป็นส่วนตัว