{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"08d4f669-7edc-4973-81f7-5eb7c86b4b1a","name":"Orbt","description":"# 🚀 ORBT API - Complete User Guide & FAQ\n\n---\n\n## 🎯 Introduction\n\n### What is ORBT?\n\n**ORBT** is a B2B2C platform built by Ncentiva that enables businesses (Partners) to distribute digital incentives, gift cards, controlled budgets, and benefits to Consumers through a modern and scalable interface.\n\n### Purpose of ORBT\n\n- ✅ Simplify how companies distribute digital value\n    \n- ✅ Centralize incentive and benefit management\n    \n- ✅ Deliver a modern experience for end-users\n    \n- ✅ Leverage Ncentiva's robust gift card processing engine\n    \n\n### Main Use Cases\n\n- 💼 Employee rewards and benefits\n    \n- 🎁 Customer incentives and loyalty programs\n    \n- 📢 Promotional campaigns\n    \n- 🎫 Digital gift card distribution\n    \n- 💳 Budget-controlled purchasing\n    \n- 🏪 Automated payouts in branded stores\n    \n- 💸 Refunding alternatives platform\n    \n\n### Who Can Use ORBT?\n\n- Companies of any size\n    \n- Agencies and corporate programs\n    \n- Loyalty platforms\n    \n- Retailers and marketplaces\n    \n- Any business wanting to reach end-customers with digital value\n    \n\n---\n\n## 🏁 Quick Start Guide\n\n### Prerequisites\n\nBefore you begin, ensure you have:\n\n- ✅ **API Key** - Your unique authentication key\n    \n- ✅ **Client ID** - Your partner identifier\n    \n- ✅ **HMAC Secret** - Your signing secret key\n    \n- ✅ **Environment Access** - UAT or Production URL\n    \n\n### Your First API Call\n\n**Step 1:** Configure your authentication (see [Authentication](https://claude.ai/chat/8d4ad515-bcc6-471f-a0cc-3deedcdc9739#authentication))\n\n**Step 2:** Create your first customer:\n\n``` bash\nPOST https://api-uat.ncentiva.com/api/partner/v1/customer\n\n ```\n\n**Step 3:** Review the response and retrieve wallet details\n\n**Step 4:** Fund the customer wallet or assign campaigns\n\n---\n\n## 🔐 Authentication\n\nORBT uses **HMAC-SHA256 signature-based authentication** to ensure secure API communication.\n\n### Required Headers\n\nEvery authenticated request must include these four headers:\n\n| Header | Description | Example Value |\n| --- | --- | --- |\n| `x-api-key` | Your unique API key | `YOUR_API_KEY_HERE` |\n| `x-client-id` | Your partner/client ID | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` |\n| `x-signature` | HMAC-SHA256 signature | `Generated dynamically` |\n| `x-timestamp` | ISO 8601 timestamp | `2026-02-12T14:30:00.000Z` |\n\n### Generating the HMAC Signature\n\nThe signature ensures request integrity and authenticity.\n\n#### Formula\n\n``` javascript\ndataToSign = METHOD + \"\\n\" + TIMESTAMP + \"\\n\" + CLIENT_ID + \"\\n\" + BODY\nsignature = HMAC-SHA256(dataToSign, HMAC_SECRET).toBase64()\n\n ```\n\n#### JavaScript Example (Postman Pre-request Script)\n\n``` javascript\nconst method = pm.request.method; // e.g., \"POST\"\nconst timestamp = new Date().toISOString();\nconst body = pm.request.data ? \n  (typeof pm.request.data === 'string' ? \n    pm.request.data : \n    JSON.stringify(pm.request.data)) : \"\";\n// Replace with your actual credentials\nconst apiKey = 'YOUR_API_KEY_HERE';\nconst clientId = 'YOUR_CLIENT_ID_HERE';\nconst hmacSecret = 'YOUR_HMAC_SECRET_HERE';\nconst dataToSign = `${method}\\n${timestamp}\\n${clientId}\\n${body}`;\nconst crypto = require('crypto-js');\nconst signature = crypto.HmacSHA256(dataToSign, hmacSecret)\n  .toString(crypto.enc.Base64);\n// Set environment variables\npm.environment.set('x-api-key', apiKey);\npm.environment.set('x-client-id', clientId);\npm.environment.set('x-signature', signature);\npm.environment.set('x-timestamp', timestamp);\n\n ```\n\n#### Python Example\n\n``` python\nimport hmac\nimport hashlib\nimport base64\nfrom datetime import datetime\ndef generate_signature(method, client_id, body, hmac_secret):\n    timestamp = datetime.utcnow().isoformat() + 'Z'\n    data_to_sign = f\"{method}\\n{timestamp}\\n{client_id}\\n{body}\"\n    signature = hmac.new(\n        hmac_secret.encode('utf-8'),\n        data_to_sign.encode('utf-8'),\n        hashlib.sha256\n    ).digest()\n    return base64.b64encode(signature).decode('utf-8'), timestamp\n\n ```\n\n### Security Best Practices\n\n- 🔒 Never expose your HMAC secret in client-side code\n    \n- 🔄 Rotate API keys regularly\n    \n- 📝 Log API key usage for audit trails\n    \n- ⏱️ Implement timestamp validation to prevent replay attacks\n    \n- 🚫 Revoke compromised keys immediately\n    \n\n---\n\n## 🛠️ API Endpoints\n\n### Base URLs\n\n| Environment | Base URL |\n| --- | --- |\n| **UAT/Staging** | `https://api-uat.ncentiva.com` |\n| **Production** | `https://api.ncentiva.com` |\n\n### Available Endpoints\n\n#### 1\\. Create Customer\n\n**Endpoint:** `POST /api/partner/v1/customer`\n\nCreates a new customer with an initial wallet balance.\n\n**Request Body:**\n\n``` json\n{\n  \"fullName\": \"John Doe\",\n  \"email\": \"john.doe@example.com\",\n  \"currency\": \"usd\",\n  \"initialFunds\": 100.00\n}\n\n ```\n\n**Request Parameters:**\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `fullName` | string | Yes | Customer's full name |\n| `email` | string | Yes | Unique email address |\n| `currency` | string | Yes | Currency code (e.g., `usd`, `eur`) |\n| `initialFunds` | number | Yes | Initial wallet balance |\n\n**Success Response (200 OK):**\n\n``` json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 51,\n    \"walletId\": \"51\",\n    \"fullName\": \"John Doe\",\n    \"email\": \"john.doe@example.com\",\n    \"walletBalance\": 100.00,\n    \"currency\": \"USD\"\n  }\n}\n\n ```\n\n**Response Fields:**\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | integer | Customer ID |\n| `walletId` | string | Wallet identifier |\n| `fullName` | string | Customer name |\n| `email` | string | Customer email |\n| `walletBalance` | number | Current wallet balance |\n| `currency` | string | Wallet currency |\n\n---\n\n## 📚 Platform Concepts\n\n### Partner\n\nA **Partner** is the business entity registered in ORBT that manages Consumers, Team Members, funds, campaigns, and catalog access.\n\n**Capabilities:**\n\n- Manage consumer accounts\n    \n- Distribute funds and incentives\n    \n- Create and assign campaigns\n    \n- Configure brand catalogs\n    \n- Access reporting and analytics\n    \n\n### Team Member\n\nAn internal user of a Partner account with defined roles and permissions (admin, operator, viewer).\n\n**Roles:**\n\n- **Admin** - Full access to all features\n    \n- **Operator** - Can manage consumers and transactions\n    \n- **Viewer** - Read-only access to reports\n    \n\n### Consumer\n\nAn end-user who receives funds, benefits, or incentives from a Partner and uses those balances to purchase digital products.\n\n**Consumer Journey:**\n\n1. Created by Partner (Portal, CSV, or API)\n    \n2. Receives email with login credentials\n    \n3. Sets password on first login\n    \n4. Browses available brands\n    \n5. Makes purchases using wallet balance\n    \n6. Receives digital products via email\n    \n\n### Recipient\n\nThe final receiver of a digital order (email address where gift card is delivered). The Recipient may be the Consumer or an external person.\n\n### Campaign\n\nA rule-based budget configuration that defines spending limits, allowed brands, time windows, and eligibility rules.\n\n**Campaign Features:**\n\n- Budget allocation\n    \n- Brand restrictions\n    \n- Time-based activation\n    \n- Consumer eligibility rules\n    \n- Multi-currency support\n    \n\n### Brand\n\nA gift card provider or digital service available in the ORBT catalog.\n\n### GC Number\n\nThe unique digital code representing the gift card's primary identifier.\n\n### GC Pin\n\nA secure PIN code (when applicable) used to redeem the gift card on the Brand's platform.\n\n### Wallets\n\nDigital balances assigned to a Consumer. ORBT supports multiple wallets per Consumer, enabling multi-currency functionality.\n\n**Wallet Types:**\n\n- General wallet balance\n    \n- Campaign-specific balances\n    \n- Currency-specific wallets\n    \n\n### Transaction\n\nAny movement of funds including credit, debit, rebate, refund, or adjustments.\n\n---\n\n## 👥 Partner Management\n\n### Can a Partner have internal users?\n\n**Yes.** Partners can create Team Members with specific roles and access levels.\n\n### What actions can Partner users perform?\n\nTeam Members can:\n\n- ✅ Manage Consumers\n    \n- ✅ Add or deduct funds\n    \n- ✅ Create and assign Campaigns\n    \n- ✅ Review and filter transactions\n    \n- ✅ Enable or disable brands\n    \n- ✅ Configure pricing adjustments and bonuses\n    \n- ✅ Manage API keys and integrations\n    \n- ✅ Access reporting tools\n    \n- ✅ Update account settings and branding\n    \n\n### Can Partners assign or deactivate Team Members?\n\n**Yes.** Partners can create, deactivate, or modify Team Member roles at any time.\n\n### Can Partners deactivate Consumers?\n\n**Yes.** Deactivated Consumers cannot place new orders. Deactivation can be done individually or via CSV bulk upload.\n\n### Why does ORBT use a unified Partner configuration?\n\nTo ensure all business customers follow the same processing, reporting, and API standards. This consistency:\n\n- Improves reliability\n    \n- Reduces errors\n    \n- Allows seamless choice between Ncentiva bulk processing or ORBT direct-to-consumer flows\n    \n\n---\n\n## 🧑‍🤝‍🧑 Consumer Management\n\n### What is a Consumer?\n\nA Consumer is an individual who receives incentives, benefits, or wallet funds from a Partner through ORBT.\n\n### How are Consumers created?\n\nConsumers can be created via:\n\n1. **Partner Portal** - Manual creation through UI\n    \n2. **Bulk Upload** - CSV file upload\n    \n3. **API** - Automated creation via `/api/partner/v1/customer` endpoint\n    \n\n### What is a Recipient?\n\nThe Recipient is the person who receives the final digital item (gift card email). The Recipient may be the Consumer themselves or any external person selected by the Consumer during checkout.\n\n### What does the Consumer receive when created?\n\nConsumers receive an **email notification** containing:\n\n- Login credentials (temporary password)\n    \n- Link to ORBT platform\n    \n- Instructions for first-time login\n    \n\n**First Login Requirements:**\n\n- Must update temporary credentials\n    \n- Must set a trusted password\n    \n- Must accept terms and conditions\n    \n\n### How can Consumers reset their credentials?\n\nThrough the **\"Forgot Password\"** link on the ORBT login page, which sends a password reset email.\n\n### What does the Consumer receive after selecting a product?\n\nConsumers receive a **confirmation email** with redemption information:\n\n- ✉️ Brand name\n    \n- 🔢 GC number (gift card code)\n    \n- 🔐 PIN or PIN-less instructions\n    \n- 📋 Additional redemption steps (if required by brand)\n    \n- 🔗 Direct redemption link (when applicable)\n    \n\n### Can Consumers send or gift items to others?\n\n**Yes.** Consumers may assign an order to an external Recipient by entering their email address during checkout.\n\n---\n\n## 💰 Wallets & Funds\n\n### How are funds deducted from Partners?\n\nPartner funds are deducted when:\n\n- Funds are transferred to Consumers\n    \n- Gift cards are purchased under Partner-level transactions\n    \n- Campaign budgets are allocated\n    \n\n### How are funds deducted from Consumers?\n\nFunds are deducted from a Consumer's wallet at the moment they purchase digital products in the ORBT marketplace.\n\n**Deduction Priority:**\n\n1. Campaign-specific balance (if applicable)\n    \n2. General wallet balance\n    \n3. Bonus credit (if available)\n    \n\n### Can Partners modify Consumer wallet balances?\n\n**Yes.** Partners can:\n\n- ➕ Add funds directly\n    \n- ➖ Remove funds\n    \n- 🔄 Adjust balances via bulk processes\n    \n- 📊 Track all modifications in transaction logs\n    \n\n### Can Partners modify a Campaign budget?\n\n**Yes.** Campaign budgets can be:\n\n- Increased or decreased\n    \n- Disabled completely\n    \n- Modified at any time without affecting past transactions\n    \n\n---\n\n## 🎯 Campaigns\n\n### What is a Campaign?\n\nA Campaign defines budget rules including:\n\n- 💵 Spending limits\n    \n- 🏷️ Allowed brands\n    \n- 👥 Eligible Consumers\n    \n- ⏰ Time windows\n    \n- 💱 Available currencies\n    \n\n### How do Partners assign Campaigns?\n\n1. Create Campaign in the Campaign module\n    \n2. Define rules and budget\n    \n3. Assign to one or multiple Consumers\n    \n4. Monitor usage and adjust as needed\n    \n\n### Can Consumers belong to multiple Campaigns?\n\n**Yes.** A Consumer may have multiple active Campaigns simultaneously. ORBT will combine available balances based on campaign rules and priorities.\n\n### What currency do Campaigns use?\n\nCampaigns inherit the Partner's available currencies (e.g., USD, EUR, GBP). Once a Partner enables additional currencies, Campaigns may be configured in those currencies.\n\n### Can Campaigns be disabled?\n\n**Yes.** Disabling a Campaign:\n\n- Removes rules immediately\n    \n- Stops any further usage\n    \n- Does not affect historical transactions\n    \n\n### Can Campaigns be scheduled with start and end dates?\n\n**Yes.** Campaigns support:\n\n- ⏰ Activation schedules\n    \n- ⌛ Expiration windows\n    \n- 📅 Conditional time-based restrictions\n    \n- 🔄 Recurring campaign patterns\n    \n\n---\n\n## 🏪 Brands & Catalog\n\n### How can Partners add brands?\n\nThe ORBT/Ncentiva team enables available brands for each Partner based on:\n\n- Commercial agreements\n    \n- Geographic availability\n    \n- Partner tier/category\n    \n\n**Partners can then:**\n\n- Activate or deactivate brands\n    \n- Configure pricing adjustments\n    \n- Set bonus percentages\n    \n- Control brand visibility\n    \n\n### Can Partners have rebates or special pricing?\n\n**Yes.** Based on commercial agreements with Ncentiva, Partners can:\n\n- 💰 Adjust pricing\n    \n- 🎁 Configure bonuses\n    \n- 📊 Set margin rules\n    \n- 🏷️ Create promotional offers\n    \n\nThese adjustments are automatically reflected for Consumers in the marketplace.\n\n---\n\n## 📊 Transactions\n\n### What are the types of transactions?\n\n| Type | Description | Example |\n| --- | --- | --- |\n| **Credit** | Funds added to wallet/campaign | Partner funds Consumer wallet |\n| **Debit** | Funds subtracted | Consumer purchases gift card |\n| **Rebate** | Reward/percentage returned | Bonus from negotiated pricing |\n| **Refund** | Reversal of previous debit | Cancelled or failed order |\n\n### What are the transaction statuses?\n\n| Status | Description | Action Required |\n| --- | --- | --- |\n| **Completed** | Fully processed | None |\n| **Pending** | Being processed by ORBT/provider | Wait or contact support if prolonged |\n| **Failed** | Could not complete | Review details and retry |\n\n### What can a Partner do if an order stays pending?\n\n**Contact ORBT Support Team** for:\n\n- Verification of order status\n    \n- Escalation to brand provider\n    \n- Manual intervention if required\n    \n\n### What can a Partner do if an order fails?\n\n1. 🔄 **Retry the order** - Use \"Retry\" button (if available)\n    \n2. 💰 **Check Consumer's wallet** - Ensure sufficient balance\n    \n3. ✉️ **Confirm Recipient information** - Verify email is correct\n    \n4. 🆘 **Contact support** - If issue persists\n    \n\n### Can Partners retry an order?\n\n**Yes**, for all brands that support retry functionality. The retry feature is available in the Partner Portal.\n\n---\n\n## 🎁 Bonuses\n\nBonuses represent added value given to Consumers, improving their purchasing power.\n\n### Types of Bonuses\n\n#### 1\\. Gift Card Value with Bonus\n\nThe bonus is added **directly to the gift card value**.\n\n**Example:**\n\n- Base gift card: $50\n    \n- Bonus: 10%\n    \n- **Final gift card value: $55**\n    \n\n#### 2\\. Gift Card with Bonus Cash\n\nConsumer receives gift card value **plus** bonus separately as wallet cash.\n\n**Example:**\n\n- Gift card: $50 (stays $50)\n    \n- Bonus: 10% = $5\n    \n- **$5 added to wallet for future purchases**\n    \n\n### How Partners Configure Bonuses\n\nPartners can enable bonuses that:\n\n- Apply to specific brands\n    \n- Activate during promotional periods\n    \n- Target specific Consumer segments\n    \n- Stack with existing campaign rules\n    \n\n---\n\n## ⚠️ Error Handling\n\n### Common HTTP Status Codes\n\n| Code | Status | Meaning |\n| --- | --- | --- |\n| **200** | OK | Request successful |\n| **400** | Bad Request | Validation error or malformed request |\n| **402** | Payment Required | Insufficient balance |\n| **403** | Forbidden | Authentication failed or access denied |\n| **404** | Not Found | Resource doesn't exist |\n| **500** | Internal Server Error | System error |\n\n### Error Response Format\n\n``` json\n{\n  \"success\": false,\n  \"error\": {\n    \"error\": \"ERROR_CODE\",\n    \"message\": \"Human-readable error description\"\n  }\n}\n\n ```\n\n### Specific Error Scenarios\n\n#### 1\\. Authentication Failed (403)\n\n**Response:**\n\n``` json\n{\n  \"Message\": \"User is not authorized to access this resource with an explicit deny in an identity-based policy\"\n}\n\n ```\n\n**Causes:**\n\n- Invalid API key\n    \n- Incorrect signature\n    \n- Expired timestamp\n    \n- Revoked credentials\n    \n\n**Solutions:**\n\n- ✅ Verify API key and Client ID\n    \n- ✅ Regenerate signature\n    \n- ✅ Check timestamp is current\n    \n- ✅ Confirm credentials are active\n    \n\n#### 2\\. Validation Error - Existing Customer (400)\n\n**Response:**\n\n``` json\n{\n  \"success\": false,\n  \"error\": {\n    \"error\": \"VALIDATION_ERROR\",\n    \"message\": \"Some customers already have wallets in the requested currency\"\n  }\n}\n\n ```\n\n**Causes:**\n\n- Email already exists for this Partner\n    \n- Customer already has wallet in requested currency\n    \n\n**Solutions:**\n\n- ✅ Use different email address\n    \n- ✅ Update existing customer instead\n    \n- ✅ Check for duplicate entries\n    \n\n#### 3\\. Insufficient Balance (402)\n\n**Response:**\n\n``` json\n{\n  \"success\": false,\n  \"error\": {\n    \"error\": \"BUSINESS_RULE_ERROR\",\n    \"message\": \"Unable to pre-charge all currency groups\"\n  }\n}\n\n ```\n\n**Causes:**\n\n- Partner balance too low\n    \n- Cannot allocate requested initial funds\n    \n\n**Solutions:**\n\n- ✅ Add funds to Partner account\n    \n- ✅ Reduce initialFunds amount\n    \n- ✅ Contact finance team\n    \n\n---\n\n## 🎨 Customization\n\n### What parts of ORBT can be customized?\n\nPartners can customize:\n\n| Element | Options |\n| --- | --- |\n| **Visual** | Logo, colors, UI elements |\n| **Communications** | Email templates, notifications |\n| **Catalog** | Brand availability, pricing |\n| **Rules** | Bonus rules, marketplace visibility |\n\n### Can notifications follow the Partner's look and feel?\n\n**Yes.** Notifications can adopt:\n\n- Partner branding\n    \n- Custom colors\n    \n- Partner logos\n    \n- Branded email templates\n    \n\nThis creates a seamless white-label experience for Consumers.\n\n---\n\n## 🔌 API & Integrations\n\n### Does ORBT provide APIs for Partners?\n\n**Yes.** ORBT provides comprehensive APIs for:\n\n| Function | Description |\n| --- | --- |\n| **Consumer creation** | Create customer accounts |\n| **Wallet funding** | Add/remove funds |\n| **Order creation** | Process gift card purchases |\n| **Status checks** | Query order/transaction status |\n| **Reporting** | Retrieve analytics data |\n\n### Where is the API documentation available?\n\nInside the **Partner Portal** under the **\"API & Security\"** section.\n\nYou can also find it in this Postman collection.\n\n### Can ORBT integrate with checkout flows?\n\n**Yes.** Partners can integrate ORBT directly into:\n\n- Their own systems\n    \n- Customer portals\n    \n- Mobile apps\n    \n- Web applications\n    \n- Third-party platforms\n    \n\n### Is API usage secure?\n\n**Yes.** ORBT security features include:\n\n- 🔐 Encrypted API keys\n    \n- 🔄 Key rotation capabilities\n    \n- 🚫 Key revocation\n    \n- 📊 Usage monitoring and logging\n    \n- ✅ HMAC-SHA256 request signing\n    \n\n---\n\n## 🔒 Security\n\n### Does ORBT support role-based access?\n\n**Yes.** Team Members receive individually defined roles and permissions:\n\n- Full access (Admin)\n    \n- Limited access (Operator)\n    \n- Read-only access (Viewer)\n    \n- Custom role combinations\n    \n\n### Are API keys secure?\n\n**Yes.** Keys are:\n\n- Encrypted at rest\n    \n- Can be created on-demand\n    \n- Can be revoked immediately\n    \n- Can be rotated regularly\n    \n- Monitored for unusual activity\n    \n\n### How does ORBT handle PII (Personally Identifiable Information)?\n\nORBT:\n\n- Stores minimal PII\n    \n- Follows Ncentiva's security standards\n    \n- Complies with data handling regulations\n    \n- Implements encryption for sensitive data\n    \n- Provides audit trails\n    \n\n---\n\n## 🔧 Troubleshooting\n\n### Why is an order pending?\n\n**Common Reasons:**\n\n- Delays from Brand provider\n    \n- Temporary processing queues\n    \n- Payment verification in progress\n    \n- High-volume processing periods\n    \n\n**Recommended Action:**\n\n- Wait 15-30 minutes\n    \n- Check order status\n    \n- Contact support if status doesn't change after 1 hour\n    \n\n### Why did an order fail?\n\n**Common Reasons:**\n\n| Cause | Solution |\n| --- | --- |\n| Insufficient funds | Add funds to wallet |\n| Incorrect Recipient info | Verify email address |\n| Provider-side errors | Wait and retry |\n| Temporary system unavailability | Retry after a few minutes |\n| Invalid brand selection | Confirm brand is active |\n\n### How can a Partner resolve a failed order?\n\n**Step-by-Step:**\n\n1. **Retry the order** - Use retry button in Portal\n    \n2. **Review logs** - Check transaction details\n    \n3. **Check wallet balances** - Ensure sufficient funds\n    \n4. **Verify customer details** - Confirm email and currency\n    \n5. **Contact ORBT Support** - If issue persists\n    \n\n---\n\n## ❓ FAQ\n\n### General Questions\n\n**Q: What is the difference between a Partner and a Consumer?**\n\n**A:** A Partner is a business using ORBT to distribute value. A Consumer is an end-user receiving that value.\n\n---\n\n**Q: Can one email address be used for multiple Consumers?**\n\n**A:** No. Each Consumer must have a unique email address per Partner.\n\n---\n\n**Q: What happens if a Consumer forgets their password?**\n\n**A:** They can use the \"Forgot Password\" link to receive a reset email.\n\n---\n\n### Technical Questions\n\n**Q: How long is the HMAC signature valid?**\n\n**A:** Signatures should be generated fresh for each request. Timestamps older than 5 minutes may be rejected.\n\n---\n\n**Q: Can I use the same API key for UAT and Production?**\n\n**A:** No. UAT and Production have separate credentials for security.\n\n---\n\n**Q: What's the rate limit for API calls?**\n\n**A:** Contact your account manager for specific rate limits based on your tier.\n\n---\n\n### Operational Questions\n\n**Q: How quickly are funds reflected in Consumer wallets?**\n\n**A:** Immediately upon successful API call or Partner action.\n\n---\n\n**Q: Can I bulk-create Consumers via API?**\n\n**A:** Yes, you can make multiple API calls or use the CSV bulk upload feature.\n\n---\n\n**Q: What happens to unused Campaign funds?**\n\n**A:** They remain in the Campaign budget and can be reallocated or returned to Partner balance.\n\n---\n\n## 📞 Support\n\n### Need Help?\n\n| Support Type | Contact |\n| --- | --- |\n| **Technical Support** | [support@ncentiva.com](https://mailto:support@ncentiva.com) |\n| **API Documentation** | Check Partner Portal > API & Security |\n| **Account Management** | Your dedicated account manager |\n| **Emergency** | Contact via Partner Portal help center |\n\n### Support Hours\n\n- 🕐 Monday - Friday: 9 AM - 6 PM EST\n    \n- 📧 Email support: 24/7 (response within 24 hours)\n    \n- 🚨 Critical issues: Immediate escalation\n    \n\n### Before Contacting Support\n\nPlease have ready:\n\n- Partner ID\n    \n- Consumer ID (if applicable)\n    \n- Transaction ID or Order ID\n    \n- Error messages (screenshots helpful)\n    \n- Steps to reproduce the issue\n    \n\n---\n\n## 📝 Additional Resources\n\n- 📚 Full API Documentation: Partner Portal\n    \n- 🎥 Video Tutorials: Available in Partner Portal\n    \n- 📖 Integration Guides: Coming soon\n    \n- 💡 Best Practices: Check Partner Resources section\n    \n\n---\n\n**Document Version:** 1.0  \n**Last Updated:** February 12, 2026  \n**Maintained By:** ORBT Product Team","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"38333563","team":6448726,"collectionId":"08d4f669-7edc-4973-81f7-5eb7c86b4b1a","publishedId":"2sBXcBmMRR","public":true,"publicUrl":"https://help.orbt.com","privateUrl":"https://go.postman.co/documentation/38333563-08d4f669-7edc-4973-81f7-5eb7c86b4b1a","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"00B4F0"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"Launch event-based campaigns to reward partners, employees, and customers with digital gift cards for occasions like Christmas, Eid, birthdays, and top achievers."},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/0061fd92-ae1a-449c-a2ed-6832f5121b4d/T3JidCBsb2dvICgxKS5wbmc=","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"00B4F0"}},{"name":"light","logo":"https://content.pstmn.io/0061fd92-ae1a-449c-a2ed-6832f5121b4d/T3JidCBsb2dvICgxKS5wbmc=","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"00B4F0"}}]}},"version":"8.10.1","publishDate":"2026-02-12T13:58:40.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":"Launch event-based campaigns to reward partners, employees, and customers with digital gift cards for occasions like Christmas, Eid, birthdays, and top achievers."},"logos":{"logoLight":"https://content.pstmn.io/0061fd92-ae1a-449c-a2ed-6832f5121b4d/T3JidCBsb2dvICgxKS5wbmc=","logoDark":"https://content.pstmn.io/0061fd92-ae1a-449c-a2ed-6832f5121b4d/T3JidCBsb2dvICgxKS5wbmc="}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/36f334aa1475e3faa309aa4af59f53c12df1532bd9a52540e242f01d2e9f6898","favicon":"https://orbt.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://help.orbt.com/view/metadata/2sBXcBmMRR"}