{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Environments","description":"API documentation for integrating with NovaMed - healthcare partner integration platform","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"environments","__idx":0},"children":["Environments"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The NovaMed Partner API provides two environments: Development for testing and Production for live integrations."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"base-urls","__idx":1},"children":["Base URLs"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Environment"},"children":["Environment"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Base URL"},"children":["Base URL"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Development"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://novamed-feapidev.nimbushealthcaretest.com"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Production"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://feapi.novamed.care"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"development-environment","__idx":2},"children":["Development Environment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the development environment for testing your integration."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Base URL"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://novamed-feapidev.nimbushealthcaretest.com"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"features","__idx":3},"children":["Features"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Test data"]},": Pre-configured test clinics, practitioners, patients, and medications"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No real orders"]},": Orders created in development don't result in actual shipments"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Full API access"]},": All endpoints available with test data"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Higher rate limits"]},": More lenient rate limits for testing"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"important-notes","__idx":4},"children":["Important Notes"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["⚠️ ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Do not send PHI"]}," (Protected Health Information) to the Development environment"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Development data may be reset periodically"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use provided test IDs for testing"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"getting-started-with-development","__idx":5},"children":["Getting Started with Development"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Obtain your development API key from NovaMed"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use the development base URL in all requests"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Start testing with your assigned clinic ID"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST https://novamed-feapidev.nimbushealthcaretest.com/api/external/practitioner \\\n  -H \"x-api-key: your-dev-api-key\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -d '{\n    \"npi_number\": \"1234567890\",\n    \"first_name\": \"Test\",\n    \"last_name\": \"Provider\",\n    ...\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"production-environment","__idx":6},"children":["Production Environment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the production environment for live integrations with real patient data."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Base URL"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://feapi.novamed.care"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"features-1","__idx":7},"children":["Features"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Real data"]},": All operations affect real patients and orders"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Actual shipments"]},": Orders result in real pharmacy fulfillment"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Stricter validation"]},": More rigorous validation and compliance checks"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Standard rate limits"]},": Production rate limits apply"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"production-requirements","__idx":8},"children":["Production Requirements"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before accessing production:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["✅ Complete Business Associate Agreement (BAA) with Nimbus Healthcare"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["✅ Pass integration review with NovaMed team"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["✅ Complete testing in development environment"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["✅ Obtain production API credentials"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST https://feapi.novamed.care/api/external/practitioner \\\n  -H \"x-api-key: your-prod-api-key\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -d '{\n    \"npi_number\": \"1234567890\",\n    \"first_name\": \"Sarah\",\n    \"last_name\": \"Johnson\",\n    ...\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"api-keys","__idx":9},"children":["API Keys"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["API keys are environment-specific and tied to your clinic:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Environment"},"children":["Environment"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Key Format"},"children":["Key Format"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Usage"},"children":["Usage"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Development"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dev_xxxxx"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Testing only"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Production"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod_xxxxx"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Live operations"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"key-management","__idx":10},"children":["Key Management"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Never mix environments"]},": Development keys only work with the development URL"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Keep keys secure"]},": Store in environment variables, never in code"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rotate regularly"]},": Contact NovaMed to rotate compromised keys"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"rate-limits","__idx":11},"children":["Rate Limits"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Rate limits vary by environment:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"development","__idx":12},"children":["Development"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Endpoint"},"children":["Endpoint"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Limit"},"children":["Limit"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All endpoints"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["100 requests/minute"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"production","__idx":13},"children":["Production"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Endpoint"},"children":["Endpoint"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Limit"},"children":["Limit"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All endpoints"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["60 requests/minute"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"rate-limit-headers","__idx":14},"children":["Rate Limit Headers"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All responses include rate limit information:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"X-RateLimit-Limit: 60\nX-RateLimit-Remaining: 55\nX-RateLimit-Reset: 1705320000\n"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"rate-limit-exceeded","__idx":15},"children":["Rate Limit Exceeded"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you exceed rate limits, you'll receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429 Too Many Requests"]}," response:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"RATE_LIMIT_EXCEEDED\",\n    \"message\": \"Rate limit exceeded. Please retry after 60 seconds.\",\n    \"retry_after\": 60\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"webhooks-by-environment","__idx":16},"children":["Webhooks by Environment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure webhook URLs separately for each environment:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Environment"},"children":["Environment"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Webhook Delivery"},"children":["Webhook Delivery"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Development"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sends to your development webhook URL"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Production"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sends to your production webhook URL"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Register webhooks for each environment:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# Development webhook\ncurl -X POST https://novamed-feapidev.nimbushealthcaretest.com/api/external/webhook \\\n  -H \"x-api-key: your-dev-api-key\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"clinic_id\": \"your-clinic-uuid\",\n    \"webhook_url\": \"https://your-dev-server.com/webhooks/novamed\"\n  }'\n\n# Production webhook\ncurl -X POST https://feapi.novamed.care/api/external/webhook \\\n  -H \"x-api-key: your-prod-api-key\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"clinic_id\": \"your-clinic-uuid\",\n    \"webhook_url\": \"https://your-prod-server.com/webhooks/novamed\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"migration-checklist","__idx":17},"children":["Migration Checklist"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before moving from Development to Production:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pre-production-checklist","__idx":18},"children":["Pre-Production Checklist"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Complete all API integration testing in development"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Verify error handling for all error codes"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Test webhook delivery and processing"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Implement idempotency for all write operations"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Set up production webhook endpoints"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Complete BAA with Nimbus Healthcare"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Pass integration review with NovaMed team"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Obtain production API credentials"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Update application configuration with production URLs"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"go-live-checklist","__idx":19},"children":["Go-Live Checklist"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Configure production API keys securely"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Register production webhook URLs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Start with low-volume testing"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Monitor error rates and response times"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Verify webhook delivery in production"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Gradually increase traffic"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"environment-comparison","__idx":20},"children":["Environment Comparison"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Feature"},"children":["Feature"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Development"},"children":["Development"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Production"},"children":["Production"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Base URL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["novamed-feapidev.nimbushealthcaretest.com"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["feapi.novamed.care"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Test data"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Real patient data"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Orders"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No real shipments"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Real shipments"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PHI"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not allowed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Allowed (with BAA)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rate Limits"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["100 req/min"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["60 req/min"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Validation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Basic"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Strict"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["BAA Required"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"best-practices","__idx":21},"children":["Best Practices"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Always test in development first"]}," - Never test new features in production"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use environment variables"]}," - Store API keys and base URLs in environment variables"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Separate configurations"]}," - Maintain separate config files for each environment"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Monitor production"]}," - Set up alerting for error rates and API failures"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Keep development active"]}," - Use development for ongoing testing and debugging"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"configuration-example","__idx":22},"children":["Configuration Example"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"// config.js\nconst config = {\n  development: {\n    baseUrl: 'https://novamed-feapidev.nimbushealthcaretest.com',\n    apiKey: process.env.NOVAMED_DEV_API_KEY,\n    webhookUrl: 'https://dev.yourapp.com/webhooks/novamed'\n  },\n  production: {\n    baseUrl: 'https://feapi.novamed.care',\n    apiKey: process.env.NOVAMED_PROD_API_KEY,\n    webhookUrl: 'https://yourapp.com/webhooks/novamed'\n  }\n};\n\nconst env = process.env.NODE_ENV || 'development';\nmodule.exports = config[env];\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":23},"children":["Next Steps"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/quickstart"},"children":["Get started with development"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/authentication"},"children":["Learn about authentication"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/webhooks"},"children":["Set up webhooks"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/api-reference"},"children":["Read the API reference"]}]}]}]},"headings":[{"value":"Environments","id":"environments","depth":1},{"value":"Base URLs","id":"base-urls","depth":2},{"value":"Development Environment","id":"development-environment","depth":2},{"value":"Features","id":"features","depth":3},{"value":"Important Notes","id":"important-notes","depth":3},{"value":"Getting Started with Development","id":"getting-started-with-development","depth":3},{"value":"Production Environment","id":"production-environment","depth":2},{"value":"Features","id":"features-1","depth":3},{"value":"Production Requirements","id":"production-requirements","depth":3},{"value":"API Keys","id":"api-keys","depth":2},{"value":"Key Management","id":"key-management","depth":3},{"value":"Rate Limits","id":"rate-limits","depth":2},{"value":"Development","id":"development","depth":3},{"value":"Production","id":"production","depth":3},{"value":"Rate Limit Headers","id":"rate-limit-headers","depth":3},{"value":"Rate Limit Exceeded","id":"rate-limit-exceeded","depth":3},{"value":"Webhooks by Environment","id":"webhooks-by-environment","depth":2},{"value":"Migration Checklist","id":"migration-checklist","depth":2},{"value":"Pre-Production Checklist","id":"pre-production-checklist","depth":3},{"value":"Go-Live Checklist","id":"go-live-checklist","depth":3},{"value":"Environment Comparison","id":"environment-comparison","depth":2},{"value":"Best Practices","id":"best-practices","depth":2},{"value":"Configuration Example","id":"configuration-example","depth":3},{"value":"Next Steps","id":"next-steps","depth":2}],"frontmatter":{"title":"Environments","description":"Development vs Production environments for NovaMed Partner API","seo":{"title":"Environments"}},"lastModified":"2025-12-19T22:43:10.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/environments","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}