Bank of Georgia Card Payment — quick-start
Accept Visa, Mastercard, Amex, Apple Pay and Google Pay through Bank of Georgia's hosted payment page. Customers stay on BoG for the card-entry + 3-D Secure step, then return to your store. Setup takes about 30 minutes assuming your BoG e-commerce contract is active.
codeon-bog-card-paymentBefore you begin
Three things you'll want in front of you before you start. Like the TBC guide, the setup is much smoother when you don't have to leave mid-flow to chase a credential.
- An active Bank of Georgia e-commerce merchant contract. If you don't have one yet, sign up at bankofgeorgia.ge → Business. Approval typically takes 3-5 business days.
- Your BoG API credentials: a
client_idand asecret_key. BoG sends these by email once your contract is live. Look for a message from BoG's e-commerce team titled "BoG E-commerce — API access". - WordPress admin access to your store, and WooCommerce already installed and active. The plugin doesn't install WooCommerce for you; if you don't have it yet, install it from Plugins → Add New first.
Buy a Bank of Georgia Card license
Open the BoG Card product page and click Buy license. License is ₾160 / year per domain with a 14-day no-questions refund window.
Download the plugin ZIP
Sign in and open codeon.ge/downloads. Find BoG Card Payment and click Download.
The download is a ZIP file watermarked with your account. Don't share it — it's tied to your license and will stop working on stores it's not meant for.
Install the plugin in WordPress
In your WordPress admin, go to Plugins → Add New → Upload Plugin. Select the ZIP you downloaded, click Install Now, then Activate Plugin.
Once activated, you'll see a yellow admin notice asking for your license key. Click Enter license key— it goes to the plugin's settings screen at WooCommerce → Settings → Payments → BoG Card.
Activate your license
On the plugin settings screen, paste your license key into the License key field and click Save changes.
- A green Active badge with your expiry date (one year from purchase).
- Your store's domain shown as the bound domain — license keys bind on first use.
- The BoG credentials section becomes unlocked underneath.
Plug in your Bank of Georgia credentials
The BoG credentials section accepts a client_id and a secret_key. Start with the sandbox / test credentials (the ones with the test_ prefix).
- Field: Client ID
- Your BoG e-commerce client identifier. Looks like
test_bog_a4f2e1in sandbox. - Field: Secret Key
- The secret BoG issued. ~40-character random string. Treat as a secret — never paste into chats or screenshots.
- Mode
- Toggle
Sandbox / Production. Start in Sandbox; flip to Production in step 7 once your test order succeeds. - Capture mode
Automatic(default) settles right after the customer pays.Manualauthorises only — you capture later from the WooCommerce order detail. Most stores want Automatic.
Click Save changes. The plugin pings BoG's status endpoint with these credentials and shows a green Connectedbadge if the handshake succeeds. A red badge means BoG rejected the credentials — usually a typo in the secret_key, or you're still waiting for BoG to activate the merchant account on their side.
Place a 1-tetri test order
Open your storefront in an incognito window so you're not logged in as admin. Add any product to cart, drop the quantity / price down to a 1-tetri test value, and proceed to checkout.
Pick Bank of Georgia Card and click Place order. You're redirected to BoG's hosted card-entry page.
BoG sandbox test cards
Use one of BoG's sandbox test cards. The universal industry test number works on the BoG sandbox too:
Card number : 4111 1111 1111 1111
Expiry : any future month / year
CVV : 123
Name : any
3-D Secure : 1234 (when prompted)
Confirm the test charge. BoG redirects back to your store and you should see:
- Order status flips from Pending to Processing.
- An Order received email lands in your inbox.
- In WooCommerce → Orders, the BoG order id, RRN, and 6-digit auth code are populated on the order detail page — useful when you reconcile with BoG's Business Manager later.
- In BoG's sandbox Business Manager, the test payment shows up in the transaction log within ~5 seconds.
Switch to production credentials
Once your sandbox test passes, flip the Mode toggle to Production and replace the credentials with the production client_id / secret_key BoG issued (the ones without the test_ prefix). Click Save changes — the green Connectedbadge should reappear, this time against BoG's production endpoint.
Run one more 1-tetri order using a real card (not a sandbox test number). The charge will land on your actual card statement; refund it to yourself from WooCommerce → Orders → Refundwhen you're done to make a clean cut.
What your customers see
On your storefront checkout, the BoG Card option appears with the official Bank of Georgia logo and the supported card-network marks (Visa, Mastercard, Amex). Apple Pay / Google Pay show up natively on iOS / Android customers. Selecting it and placing the order takes the customer to BoG's hosted card-entry page — you never handle their card data, and you don't need PCI-DSS Level 1 certification.
Issuing a refund
From WooCommerce → Orders → [order] → Refund, enter the refund amount and click Refund via BoG Card. The plugin calls BoG's /payment/refund/:order_id endpoint and updates the order status when BoG confirms via callback.
- Full refund: any time before BoG settles the funds (typically end of business day) — the auth is simply released, customer sees nothing on their statement. After settlement, BoG processes it as a standard refund (3-5 business days back to the card).
- Partial refund: supported on card-flavoured payments (Visa / Mastercard / Amex / Apple Pay / Google Pay). Not supported on
bog_p2p(mobile-app pay) orbog_loan— those are full-refund only. The plugin surfaces this restriction with a clear error if you try a partial on an unsupported method. - Refund timing on the customer's side: 3-5 business days for the bank to push the credit back to the issuing card. Comms tip: tell customers the calendar date you initiated the refund — they often think the timer starts the day they call you, not the day you actually click Refund.
Common errors and what they mean
License domain limit reached- Your key is already bound to a domain. Disconnect the old domain from /licenses first, then re-activate on the new store.
License expired- Your 365-day term ended. Plugin keeps working through the 14-day grace window. Renew from /licenses — the same key continues to work after renewal.
BoG: 401 unauthorized- Wrong client_id / secret_key pair, or you're hitting production with sandbox credentials (or vice versa). Re-verify the Mode toggle matches the credentials.
BoG: 3DS authentication failed- Customer cancelled or failed the 3-D Secure step on BoG's page. The order stays Pending — the customer can retry with a different card or bank.
BoG: refund disabled- Refunds are turned off in your /admin/settings/payments panel. Re-enable to proceed. (This is a CodeOn-side toggle, not a BoG one.)
Next steps
- Add BoG Installments so customers can spread the cost. Many Georgian buyers default to installments for purchases over ₾500.
- Run TBC Card alongside so customers can pick their issuing bank. Many stores ship both.
- Building automation around BoG callbacks? The integrator docs cover the public REST surface and the BoG webhook contract.