Version 1.0
Normie.tech is a payment infrastructure platform that enables Web3 businesses to accept traditional card payments (Visa/Mastercard) from users and automatically settle transactions in crypto (e.g., stablecoins). It bridges the gap between fiat and crypto payments, simplifying onboarding for non-crypto-native users.
- Problem:
- Users face friction with crypto onboarding (KYC, wallet setup, gas fees).
- Web3 businesses lose customers who prefer card payments and there is no way to onboard 4B+ card users.
- Solution:
- Normie.tech accept card payments from your customers and auto-convert them to instant stablecoin settlements for you, no crypto complexity for your customers.
- Web3 Businesses: NFT platforms, DAOs, DeFi apps, crypto subscriptions, etc.
- Users: Anyone who wants to interact with Web3 without holding crypto or managing wallets.
- The repository is organized as:
infra/: SST infrastructure-as-code (API routes, secrets, event buses).packages/core/: Shared business logic and type definitions.packages/functions/: Serverless functions for payment/webhook handling.packages/scripts/: Deployment scripts and precompiled project configurations.packages/www/: Next.js frontend .
- Go to sandbox.normie.tech website.
- Click "Get Started" to create a dashboard page.
- Redirect to
/dashboardpage and click on settings for a Test API. - If you have any questions, feel free to Contact Us.
-
Make sure to create an account on sandbox.normie.tech.
-
If you don't see the testnet network you are looking for reach out to us at [email protected]
-
Copy your projectId from the dashboard.
-
Go to
https://api-sandbox.normie.tech/docsand for production here is the swagger docshttps://api.normie.tech/docsreplace your projectId here. -
If your payouts want to be in a custom smart contract, reach out to us a [email protected]
-
3.1.
creating checkout-
Send POST request to the
api-sandbox.normie.tech/v1/${your_project_id}/0/checkoutby passing all required params. -
Here is the example params for your reference
params: { header: { "x-api-key":"your api key here", "Access-Control-Allow-Origin":"*" } as any }, body:{ customId, amount, chainId, customerEmail, name, blockChainName, success_url, extraMetadata:{ // provide extra metadata as per requirement }, metadata:{ // provide necessary data (payoutAddress) } } -
Here is sample working cURL for your reference
curl -X 'POST' \ 'https://api-dev.normie.tech/v1/thirdpay/0/checkout' \ -H 'accept: application/json' \ -H 'x-api-key: ' \ -H 'Content-Type: application/json' \ -d '{ "description": "thirdpay test", "name": "Thirdpay", "amount": 100, "success_url": "https://www.thirdpay.io/", "chainId": 11155111, "blockChainName": "SEPOLIA-ETH", "metadata": { "payoutAddress": "" } }'
-
3.2. fetch all transactions
- Send GET request to the
api-sandbox.normie.tech/v1/${your_project_id}/transactions
3.3. fetch transaction by transaction_id
- Send GET request to the
api-sandbox.normie.tech/v1/${your_project_id}/transactions/{transaction_id}
You can access the dashboard here: https://sandbox.normie.tech API docs are available at: https://api-sandbox.normie.tech/v1/megapot/docs The API base URL is: https://api-sandbox.normie.tech The API key is available in the dashboard.
Test PayPal Users:
Email: [email protected]
Password: 2Ou^/+ir
Test Cards:
American Express: 3714 4963 5398 431
American Express: 3766 8081 6376 961
Diners Club: 3625 9600 0000 04
Maestro: 6304 0000 0000 0000
Use any CVV as a number and any future date as the expiry.
In case of Americal Express Test Card use 4 digit CVV
[https://api-sandbox.normie.tech/docs]
In Production make sure to use api.normie.tech instead of api-sandbox.normie.tech
To create a subscription plan, send a POST request to api-sandbox.normie.tech/v1/${your_project_id}/0/plan with the following parameters:
{
"plan": {
"name": "Premium Plan",
"description": "Access to premium features",
"amount": 1000, // Amount in cents (e.g., $10.00)
"interval": "month", // Can be "day", "week", "month", or "year"
"intervalCount": 1, // Number of intervals between billings
"metadata": {
// Optional metadata for your plan
}
}
}The response will include:
- Plan details
- A subscription URL that can be used to subscribe to this plan
- Get All Plans: GET
api-sandbox.normie.tech/v1/${your_project_id}/0/plan - Get Specific Plan: GET
api-sandbox.normie.tech/v1/${your_project_id}/0/plan/{planId} - Delete Plan: DELETE
api-sandbox.normie.tech/v1/${your_project_id}/0/plan/{planId}
To create a subscription, send a POST request to api-sandbox.normie.tech/v1/${your_project_id}/0/subscription:
Once you have generated a plan id , you can directly send your users endpoint for them to subscribe.
{
"planId": "your_plan_id"
}To allow users to subscribe to a plan, direct them to:
- Sandbox:
sandbox.normie.tech/checkout/subscription/<plan-id> - Production:
normie.tech/checkout/subscription/<plan-id>
The checkout page will handle the subscription process and payment collection.
- Get All Subscriptions: GET
api-sandbox.normie.tech/v1/${your_project_id}/0/subscription - Get Specific Subscription: GET
api-sandbox.normie.tech/v1/${your_project_id}/0/subscription/{subscriptionId} - Cancel Subscription: POST
api-sandbox.normie.tech/v1/${your_project_id}/0/subscription/{subscriptionId}/cancel
Subscriptions can have the following statuses:
- Active: Subscription is currently active
- Canceled: Subscription has been canceled
- Past Due: Payment failed and is in grace period
- Unpaid: Payment failed and grace period has ended
For subscription events, you can set up webhooks to receive notifications for:
- Subscription created
- Subscription canceled
- Payment succeeded
- Payment failed
- Subscription renewed
Contact [email protected] to set up webhook endpoints for your project.