Build
Accept payments and fulfill an order once
Install a hosted payment path or compose a trusted card session, then match the actual receiving result to your order.
Choose the integration depth
| Path | Use | Authority boundary |
|---|---|---|
| Hosted link/button/QR | Share or install a simple payment entry. | Amount is an editable request; payer reviews. |
| Widget | Embed the supported public merchant widget on a script-compatible website. | No supported fixed-price attribute; public HTML is not a trusted order. |
| Trusted card session | Bind server order, stable merchant UID and exact integer cents. | Retained session plus accepted matching credit controls fulfillment. |
| Fixed Counter sale | Match the incoming original and public sale reference to exact recipient/cents. | The URL alone is not a signed invoice. |
Install the public payment entry
- Open Receive in the merchant account
Choose Checkout link or Accept payments anywhere.
- Copy the supported code
Use a normal link for URL-only platforms, an HTML button for custom-code blocks, or a widget where scripts/framing are permitted.
- Verify the destination
Open as a customer and inspect the public receiving identity before sharing.
- Confirm receipt in your account
Match the actual recorded payment before handing over goods.
<a href="https://bankeiz.com/pay/yourname/?amount=12.30"
target="_blank" rel="noopener noreferrer">Pay @yourname</a>
<div class="receiz-pay-embed" data-username="yourname"></div>
<script src="https://receiz.com/receiz-pay-embed.js" async></script>Prepare a trusted card session
import { createReceizClient } from '@receiz/sdk';
import { prepareMerchantCardCheckout, readMerchantCardCheckout }
from './merchant-checkout';
const receiz = createReceizClient({ baseUrl: 'https://receiz.com' });
const pending = await prepareMerchantCardCheckout(receiz, {
referenceId: order.id,
merchantUsername: merchant.username,
merchantUserId: merchant.userId,
amountUsdCents: order.amountUsdCents,
});
// Persist pending against the trusted order before exposing frameUrl.
const result = await readMerchantCardCheckout(receiz, pending);
if (result.status === 'paid') {
// Atomically fulfill this exact order once in your order system.
}The helper calls payments.embeddedCheckout and reads the existing retained session-status route. It matches session, currency, integer cents, reference, stable merchant UID and accepted positive credit. Keep frameUrl and its short-lived secret out of logs, analytics, public links and model context.
Confirm, do not infer, payment
- OrderServer recipient, cents and reference.
- SessionCreate once and persist before display.
- CheckRead the retained exact outcome.
- FulfillAtomically deliver the order once.
A success URL, iframe message or customer screenshot is only a signal to inspect the trusted result. Paid requires the accepted terminal paid state and matching connect_payment_checkout credit. Pending means the session remains open; closed means a terminal unpaid result. Trusted host observations are distinct from a self-contained cryptographic receipt; retain actual original proof when independent offline verification is required.
Retries, unknown creation and later services
Serialize session creation per order. referenceId is correlation, not documented idempotency. A lost creation response is uncertain and cannot authorize another session. Reopen the same retained result on return or explicit recovery; this integration requires no recurring polling. Refunds, subscriptions, tax, shipping, inventory, payouts and fulfillment automation require their own admitted contracts, scopes, configured host and qualification. A checkout snippet grants none of them automatically.
Implementation sources
Inspect the exact path.
Source links retain revision 6c5d582. Read the documented operation and assessment scope alongside its code.