Unlock the convenience of seamless payments for in-app purchases powered by now.gg Payments.
Using the Payments dashboard, you can configure the following options:
Integration
To process payments within your app, you can choose from one of the following:
Payment with SDK
now.gg Payments module offers quick integration for your Native Android and Unity apps, ensuring a seamless and user-friendly payment experience while reducing the complexities associated with payment processing.
Benefits:
- Seamless integration through streamlined setup and minimal development effort.
- Comprehensive support for both Native Android and Unity apps for a seamless experience.
- Global reach with support for various payment methods across multiple regions.
- Supports consumable products and recurring subscriptions with ease.
To get started:
- On the Payments dashboard:
- Select Payment with SDK
- You can access the Payment SDK integration guide using the following links below:
- Click on Save.
No Code Payment
No Code Payment offers a streamlined solution to enable in-app purchases without any SDK integration or APK modifications, allowing developers to quickly enable payments with minimal effort.
Benefits:
- Effortless setup without integrating SDKs or modifying your app’s APK.
- Seamless transactions for a smooth, user-friendly payment experience.
- Enable payments without writing any additional code.
- Reduces development and testing time for in-app purchase features.
- Ensures safe and reliable transactions for users.
To get started:
- On the Payments dashboard:
- Select ‘No Code Payment’
- Provide Prerequisite Information
- Provide answers to questions to ascertain the most suitable integration scenario.
- Perform payment configurations.
Prerequisite Information
Important
- Support for Subscriptions with ‘No Code Payment’ is coming soon.
The following section features some questions to ascertain the precise integration scenario for ‘No Code Payment’.
- Have you encrypted your APK with services like SafetyNet? (Yes /No)
- Yes – If you have encrypted your APK using services such as SafetyNet, then you must integrate now.gg Payment SDK.
- No – Continue to the next question.
- How do you verify Payments in your app? (Select from drop-down)
- Server side
- Client side
- If you have enabled client-side payment verification, then you must integrate now.gg Payment SDK.
- Don’t Verify
Payment Configurations
Use the following information based on your selection in the Prerequisite Information section:
Server side Configurations
If you select ‘Server side’ within the Prerequisite Information section, you will have the following configuration options.
Important Information
- Make sure to configure server-side IAP verification for ‘No Code Payment’ according to the provided guide.
Select APK and In-app Products
The following steps are common for both the ‘Server side‘ and ‘Don’t Verify‘ options.
1. APK Selection
Choose the APK you want to use with ‘No Code Payment”.
To do this:
- Click on Choose Apk.
You will be prompted to add an APK using three methods:
2. Products Availability
Add the in-app products you want to use with ‘No Code Payment’.
- Click on View/Add Products from Payments > In-App Products
- Select the products you want to list to sell.
- Click on Submit.
We will review your configurations and enable ‘No Code Payment’ for your app.
3. Deploy ‘No Code Payment’ build
After we enable ‘No Code Payment’ for your app build, it will be saved in the App Library Explorer, with a ‘No Code Payment’ flag, as shown below:
- Select this version of your app from App Library to either:
- While creating the release, choose ‘From App Library’ option and select the build with ‘No Code Payment’ flag.
- You can access any build-specific information you may have added while uploading by clicking on the (i) in front of the respective build(s).
Important Information
- To enable ‘No Code Payment’ for another app build, go to the Payment Page > Click on Edit in the bottom-right corner.
Third-party Payment
You can use any third-party payment option, if it is already integrated with your app, to process in-app payments.
To add your third-party payment option:
- Within the Payments tab, select Third-party Payments.
- Enter the name of your payment provider.
- Click on Save.
Important information
- While using the Third-party payment option, all purchase orders and related analytics data will not be available in nowStudio.
In-app Products
This section describes the steps to add and modify the in-app products you wish to list within your app/game for the users to purchase.
To add In-app products:
- Login to nowStudio.
- Click on All Apps
- Click on View Details against your app name.
- Click on Payments on the top navigation.
- Click on In-App Products section on the left sidebar.
- Select either:
Bulk Import
Using this option, you can bulk import your in-app products to nowStudio.
To do this:
- Click on Bulk Import button on the top-right corner.
- Click on the + icon, as shown below:
- Select the .csv file containing your in-app products
(You should prepare the CSV file based on the provided format. Download the CSV format by clicking on the ‘Download CSV Format’ link.)
- Enable base currency (Optional)
- If you enable the base currency option, we will update any products without a price listed for specific regions in the CSV.
- The new price for that region will be based on the selected base price and the latest currency exchange rate.
- Select a Base Currency from the drop-down list.
- Click on Import.
Supported CSV Encodings
Language/Script |
Encodings |
Summary |
Universal |
ASCII, UTF-8, UTF-16 (LE, BE), UTF-32 (LE, BE, LE with BOM, BE with BOM) |
BOM = Byte Order Mark. |
Chinese |
Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified) |
Used for Simplified and Traditional Chinese; ISO-2022-CN supports both. |
Japanese |
EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP |
SHIFT_JIS and CP932 commonly used in Windows environments. |
Korean |
EUC-KR, ISO-2022-KR, Johab |
EUC-KR widely supported; Johab less common but still useful in some applications. |
Cyrillic (including Bulgarian) |
KO18-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, Windows-1251 |
ISO-8859-5 and Windows-1251 are also useful for Bulgarian language support. |
Western European |
ISO-8859-1, Windows-1252, MacRoman |
Commonly used for Western European languages. |
Greek |
ISO-8859-7, Windows-1253 |
Commonly used for the Greek language. |
Hebrew |
ISO-8859-8, Windows-1255 (Visual and Logical) |
Visual/Logical modes supported for compatibility with different text rendering systems. |
Thai |
TIS-620 |
Encoding standard for Thai text. |
Important Information
- Ensure to set a base price for all products in your target regions.
- If your game is published on PlayStore and has existing in-app products, you can export them as CSV from the Google Play Console.
- You can download the nowStudio-supported CSV format from here.
- Within the provided CSV format, just add product images as an additional column and use the bulk import feature to add your in-app products to nowStudio.
Add Product
Using this option, you can add an in-app product to nowStudio.
Note: nowStudio enables you to add translations for in-app products to provide a localized experience for your users worldwide. If a user’s language preference matches the translation languages you’ve added, they’ll see the translated version for your IAP products.
To do this, provide us with:
- Product ID
- Display Title
- Description
- Icon – Click on Pick file
- Dimensions – 1024 x 1024px
- Image format – .JPG, .JPEG, .PNG
- Maximum size – 10 Mb
- Select Pricing
- Use the drop-down menu to:
- Select a previously created price template, or
- Create a New Price Template If you haven’t created one.
- After creating the template, you can select it.
- Click on Edit Template, to edit the selected price template.
- Base Price for your product is fetched from the selected price template.
- You can click on View Local Price to convert the listed base price into your currency.
- Click on Save.
Once the product is added, it will be displayed within the in-app products section:
- You can also export the added in-app products by clicking on Export CSV , as shown above.
Important Information
- You can provide translations for the Display Title and Description fields.
- Each locale/language should be separated by a new line instead of spaces or commas.
- The translations will be displayed only for the added locales. All other locales will be served with English (Default) content.
- If you haven’t provided any English content, we will consider the first added locale as default.
- To add translations, use standard locale tags and format provided here.
- IAP Translation format example
- Display Title –
en-US: Sample Display Title
ja-JP: 表示タイトル例
ko-KR: 샘플 표시 제목
- Description –
en-US: Sample Description text
ja-JP: サンプル説明テキスト
ko-KR: 샘플 설명 텍스트
Modify in-app product
To modify an added in-app product:
- Within the In-app Products section:
- Click on View Details in front of the in-app product you wish to modify.
- Once you have made the required changes, click on Save.
Delete Product
To delete an added in-app product:
- Within the In-app Products section:
- Click on View Details in front of the in-app product you wish to delete.
- Click on Delete in the bottom corner.
- On the confirmation window, click Delete.
- The in-app product will be removed.
Important Information
-
- Once you delete an in-app product, you cannot add another product with the same Product ID.
- Price templates can be reused across multiple apps that you add.
Subscriptions
This section describes the steps to add and modify the subscriptions you wish to list within your app/game for the users to purchase.
Understanding Subscriptions
- To know more about Subscriptions and understand the associated terms, please click here.
To add subscriptions:
- Login to nowStudio.
- Click on All Apps
- Click on View Details against the app for which you want to create a subscription.
- Click on Payments on the top navigation.
- Click on Subscriptions section on the left sidebar.
- Click on Create Subscription in the top-right corner.
Create Subscription
Using this option, you can add subscriptions to nowStudio.
Note: nowStudio enables you to add translations for subscriptions to provide a localized experience for your users worldwide. If a user’s language preference matches the translation languages you’ve added, they’ll see the translated version.
To do this, provide us with:
- Product ID
- Product ID can only include numbers, lowercase and uppercase letters, underscores, and periods.
- Subscription Details
- Name
- Short name for your subscription. Users will see this in emails.
- This field supports multiple values (translations) separated by a new line. Refer here for more information.
- Description
- An optional description for your subscription.
- This field supports multiple values (translations) separated by a new line. Refer here for more information.
- Benefits
- Click on Add Benefit and include up to 4 benefits to help users understand what they get when they subscribe.
- This field supports multiple values (translations) separated by a new line. Refer here for more information.
- Billing Period
- Select the billing period for your subscription from the drop-down list.
- The supported billing period include:
- Monthly (Default selection)
- Weekly
- Every 4 weeks
- Every 2 months
- Every 3 months
- Every 4 months
- Every 6 months
- Every 8 months
- Yearly
- Select Pricing
- Use the drop-down menu to:
- Select a previously created price template, or
- Create a New Price Template If you haven’t created one.
- After creating the template, you can select it.
- Click on Edit Template, to edit the selected price template.
- Price templates can be reused across multiple apps that you add.
- To manage and configure your price templates, please follow this link.
- Base Price for your product is fetched from the selected price template.
- You can click on View Local Price to view or convert the listed base price into your currency.
- Click on Save.
Once the Subscription is added, it will be displayed within the Subscriptions section:
Important Information
- You can provide translations for the Display Title, Description and Benefits fields.
- Each locale/language should be separated by a new line instead of spaces or commas.
- The translations will be displayed only for the added locales. All other locales will be served with English (Default) content.
- If you haven’t provided any English content, we will consider the first added locale as default.
- To add translations, use standard locale tags and format provided here.
- Translation format example
- Display Title –
en-US: Sample Display Title
ja-JP: 表示タイトル例
ko-KR: 샘플 표시 제목
- Description –
en-US: Sample Description text
ja-JP: サンプル説明テキスト
ko-KR: 샘플 설명 텍스트
- Benefits –
en-US: Sample Benefit
ja-JP: サンプルの利点
ko-KR: 샘플 혜택
Modify Subscriptions
To modify a subscription:
- Within the Subscriptions section:
- Click on View Details in front of the subscription you wish to modify.
- Once you have made the required changes, click on Update.
Delete Subscriptions
To delete a subscription:
- Within the Subscriptions section:
- Click on View Details in front of the subscription you wish to delete.
- Click on Delete in the bottom corner.
- On the confirmation window, click Delete.
- The subscription will be removed.
Important Information
- Once you delete a subscription, you cannot add another subscription with the same Product ID.
Payment Settings
Using this section, you can configure the following payment settings for Subscriptions.
You can configure:
- Callback URL
Provide us with a callback URL that we will use to send the request data after a transaction.
- API Key
The API key is passed along with the request data sent to you after a transaction. You can verify it to ensure the authenticity of the API call. (Regenerate / View here)
Subscription Status Callback API
(Developer Provided)
This section illustrates the API specs for you to provide us with a SubscriptionStatusCallback
API to send subscription status updates.
Important
- This is a developer-provided API. We will use this API to send the subscription status updates defined here.
The following is the associated workflow:
- nowStudio will use this API to send the request data to your game backend.
- Your game backend can authenticate the request using the API key provided by us (Webhook API Key).
- You can assign the purchase entitlement to the user based on the subscription’s current status. (Defined here).
- After we send the request data using the callback URL you have provided, we will wait for a response from your API.
- If we do not get a response with status code 200 with success as true, we will keep retrying for some time.
Request Method
Request Header
Authorization: "<API-Key Here>"
Content-type: application/json
Note: You can view/regenerate the API Key using this section.
Request Body
The following parameters will be included in the request body.
Params |
Type |
Value |
Description |
notificationType |
string |
Defined here |
Specific events sent based on the subscription status update.. |
data |
object |
|
|
Data Object Params
The following parameters are associated with the data object.
Params |
Type |
Sample Values |
Description |
orderId |
string |
1-202402110116343 |
Order ID associated with the purchase order. |
packageName |
string |
gg.now.sample.app |
Package name of your app. |
productId |
string |
SampleProduct |
Product ID associated with the product purchased by the user. |
eventTime |
long |
1707965194000 |
The epoch timestamp associated with the order. |
amount |
float |
24.99 |
Amount associated with the order. |
isTestOrder |
boolean |
true |
True/False |
currency |
string |
USD |
Currency associated with the in-app purchase order. |
paymentId |
string |
1234 |
Unique Identifier for your app. |
developerPayload |
string |
{UID: abc} |
A developer-specified string that contains supplemental information about an order. |
Expected Response
The following is the sample expected response associated with the SubscriptionStatusCallback
API.
{
"success": true,
"reason": "reason_for_failure". // Optional Param. Only required if success is false.
}
notificationType Events
The following events are sent in notificationType
.
Event |
Description |
WEBSHOP_ITEM_PURCHASED |
Sent when a Webshop item is purchased. |
SUBSCRIPTION_PURCHASED |
Sent when a Subscription is purchased. |
SUBSCRIPTION_RENEWED |
Sent when a Subscription is renewed. |
SUBSCRIPTION_CANCELLED |
Sent when a Subscription is cancelled. |
SUBSCRIPTION_EXPIRED |
Sent when a Subscription has expired. |
Testing Webhook
This feature allows you to conveniently test the SubscriptionStatusCallback
API that we use to send status updates for subscription products to your backend server.
Important
- Webhook testing only works with subscription orders from a test user.
- Make sure to:
To test the Webhook:
- Under All Apps.
- Click on View Details in front of the app name with now.gg Payments.
- Click on Payments at the top navigation bar.
- Click on Testing Webhook on the left navigation.
- Enter the order ID that was generated from your test purchase order.
- Select the notification type:
SUBSCRIPTION_RENEWED
– To renew the subscription.
SUBSCRIPTION_EXPIRED
– To mark the subscription as expired.
- Click on Submit.
- This action will notify the app backend and send the developer payload provided with the subscription purchase.
- A successful callback will be confirmed with a toast message, ‘Webhook called successfully’.
- An error will be notified with a toast message with error information.
Note:
- The
SUBSCRIPTION_RENEWED
webhook will renew the subscription for the specified order ID. However, the renewed subscription will generate a new order with a unique order ID.
- The
SUBSCRIPTION_RENEWED
webhook only works for active subscriptions and cannot be used to renew subscriptions with an expired or cancelled state.
- If the subscription is cancelled or expired, you can repurchase it from inside the game.
Internal Testers
Internal testing allows you to test the payments module integration with your app. You can add your app testers to perform in-app purchases using the provided now.gg currency and test the complete purchase flow.
To add a tester:
- Under All Apps.
- Click on View Details against the app you wish to test integration with.
- Click on Internal Testers on the left sidebar.
- Click on Add Tester.
- Either enter the user’s unique in-game userID (
IN_GAME_ID
) or the email address associated with a now.gg account you wish to use for testing.
- Click on Add.
An on-screen confirmation that ‘A tester has been added successfully’ will be displayed.
To delete a tester:
- Under All Apps.
- Click on View Details against the app you wish to test integration with.
- Click on Testers on the left sidebar.
- A list of testers will be displayed, as shown below:
- A confirmation pop-up will open, as shown below:
- Click on Delete.
An on-screen confirmation that ‘A tester has been deleted successfully’ will be displayed.
Credentials
now.gg Cloud offers various APIs and services that you can integrate with your app. Before you start, please ensure you have the necessary credentials.