sample-standalone-paze repository, alongside the web version. The repository shows the server-side calls end-to-end against the Gr4vy API; pair it with the Paze iOS or Android SDK in your own app for the native launch step.
Before you begin
Each merchant that wants to use Paze needs to be approved by Early Warning Services (EWS), and Gr4vy then enables Paze on a per-merchant basis. To start onboarding, see Set up Paze on the connector page. The native Paze iOS and Android SDKs are distributed by Paze. Your Paze onboarding contact provides the SDK, the integration documentation, and the credentials your app needs.Overview of the flow
The mobile integration has a server side and an app side that coordinate through a callback URL:- Server-side — create a Paze mobile session with Gr4vy. The session returns the Paze merchant data
id,name,profileId, anaccessToken, and asessionId. - Server-side — create a Paze checkout URL with the session values, your callback URL scheme, and the intent.
- App-side — launch the Paze checkout URL using the Paze iOS or Android SDK. After the shopper finishes, Paze invokes your callback URL scheme with an opaque response code.
- App-side — forward the response code to your server.
- Server-side — (optional) review the session. Required for
REVIEW_AND_PAYif you want Gr4vy to add shipping details to the transaction; skipped forEXPRESS_CHECKOUT. - Server-side — complete the session to get the opaque token.
- Server-side — create a Gr4vy transaction with the token.
Step 1: Create a Paze mobile session
On your server, create a Paze session withsource set to "mobile". Unlike the web flow, domain_name is not required for mobile sessions. The response includes the merchant id, name, profileId, plus the accessToken and sessionId you pass to the next step.
Response
Step 2: Create the Paze checkout URL
Callpaze_mobile_session_create with the values from Step 1, the callback URL scheme your app handles, the intent, and the transaction value. The response includes a pazeCheckoutUrl to open in the Paze SDK.
The supported intents are:
REVIEW_AND_PAY— the shopper reviews shipping and card details before paying. Your app and server then call the review step before completing.EXPRESS_CHECKOUT— the shopper pays immediately without a review step.
create.pazeCheckoutUrl, session.sessionId, and session.accessToken to your app, along with the chosen intent. Your app needs all three to handle the callback and call your server again in Step 4.
Step 3: Launch Paze in your app
Use the Paze iOS or Android SDK to openpazeCheckoutUrl. The exact native call is specific to each platform — refer to the SDK documentation your Paze onboarding contact provides.
When the shopper finishes, Paze invokes your callback URL scheme (the one you passed in Step 2) with a response parameter containing a base64-encoded JWE. Your app decodes that value and sends it to your server, together with the sessionId, accessToken, and intent from Step 2.
See sample-standalone-paze for an end-to-end reference of the callback decode and the server-side review/complete/transaction calls.
Step 4: Review the session
This step is optional. Callpaze_mobile_session_review when you want Gr4vy to add the shipping address (and the rest of the review data) to the transaction in Step 6. Skip it for EXPRESS_CHECKOUT, or for REVIEW_AND_PAY checkouts where you do not need those details — and pass the original callback code directly to Step 5.
Call paze_mobile_session_review with the JWE code from the callback. The response includes the selected card (masked), the consumer, and the shipping address. When you call review, use review.code as the input to Step 5.
Step 5: Complete the session
Callpaze_mobile_session_complete with the code from the previous step (review.code for REVIEW_AND_PAY, or the original callback code for EXPRESS_CHECKOUT). The response includes completeResponse, the opaque token you forward to Gr4vy as the transaction token.
Step 6: Create a transaction
Create the transaction with the opaquecompleteResponse from Step 5 as token. Set checkout_token to the original JWE callback code from Step 3 (not review.code) so Gr4vy can populate the masked card details and shipping address on the transaction.
status as you would for any other payment method.
Test Paze
To test Paze on mobile, drive your integration in a simulator or device build with a Paze test wallet.Test wallet credentials are issued by Paze, not by Gr4vy. To obtain a test wallet for your merchant, work with Paze directly through your Paze onboarding contact.