Apple Pay and Google Pay

Wallet-pay funding via Teller proforma, execute, and Paylands checkout.

Your backend calls Bit2Me. Bit2Me returns a Paylands checkout URL after execute. You do not talk to Apple or Google SDKs for this rail.

Create the proforma

POST /v1/teller/order/proforma
method.typeUse
creditcardCard deposit
google-payGoogle Pay
apple-payApple Pay
hub-latamLATAM rails

Example body fragment: "method": { "type": "apple-pay" }.

Proforma 200 returns orderId and fee fields. It does not document waiting-user or provider.uri.

Execute

POST /v1/teller/order
{ "orderId": "<proforma orderId>" }

On HTTP 200 (ExecuteOrderData) you typically receive orderId, status (waiting-user when the user must pay), token, and provider.requestConfiguration.uri. Open that URI for the user.

HTTP 200 on execute means the checkout session was created. Payment finishes on Paylands.

UX rules (critical)

Google PayApple Pay
API"method": { "type": "google-pay" }"method": { "type": "apple-pay" }
Open the URIIn-app WebView is OKDo not use WebView or iframe
Apple constraint—Open in Safari / system browser

The API may return "type": "iframe". Ignore that for Apple Pay. Apple blocks the Apple Pay button in iframes and WebViews.

Optional header if you control embed pages:

Permissions-Policy: payment=(self "https://api.paylands.com")

This does not override Apple’s WebView rule.

Confirm completion

EventMeaning
teller-order-v1Prefer this (orderId, status, type, error)
teller.deposit.card.successLegacy; prefer teller-order-v1
wallet-transaction-v1Wallet movement (may include tellerId)

Optional poll: GET /v1/teller/order/status?id={orderId}.

On this page