डेवलपर
B2B API दस्तावेज़
nwp.ae के पीछे का B2B API: अपने क्लाइंट्स के लिए नेट रेट पर मूल्य निकालें और बुक करें, वाउचर जारी करें, और होटल डेस्क, कॉर्पोरेट ट्रांसपोर्ट व DMC प्रोग्राम चलाएँ, साथ में आपके रेट, स्टेटमेंट और इनवॉइस। अर्ली एक्सेस: सैंडबॉक्स कुंजियाँ लेबल किए गए टेस्ट डेटा के साथ जवाब देती हैं, और लाइव कुंजियाँ स्वीकृति पर जारी होती हैं।
स्थितिअर्ली एक्सेस · केवल सैंडबॉक्स
सैंडबॉक्स असली अनुरोधों को असली स्कीमा से जाँचता है और टेस्ट डेटा के साथ जवाब देता है। कुछ भी बुक नहीं होता, कोई वाहन रोका नहीं जाता और कोई मूल्य नहीं लौटाया जाता। सैंडबॉक्स के साथ कोई सर्विस-लेवल प्रतिबद्धता नहीं है, और API खुलने पर स्वीकृत पार्टनरों को प्रोडक्शन कुंजियाँ जारी की जाती हैं।
अर्ली एक्सेस का अनुरोध करेंअवलोकन
HTTPS पर JSON। Content-Type: application/json भेजें। हर जवाब JSON होता है और उसमें ट्रेड डेस्क को बताने के लिए एक x-request-id हेडर होता है; सैंडबॉक्स जवाबों में x-nwp-environment: sandbox भी होता है।
| बेस URL | — |
|---|---|
| सैंडबॉक्स | https://nwp.ae/api/b2b/sandbox |
| प्रोडक्शन | https://nwp.ae/api/b2b/v1अभी खुला नहीं · लाइव कुंजी आवश्यक — स्वीकृति पर जारी |
B2B API v1
खाते के हर काम के लिए एक API: आपकी व्यावसायिक शर्तों (नेट रेट, कमीशन या टैरिफ़) पर मूल्य वाले ग्राउंड ट्रांसपोर्ट और टूर व गतिविधियाँ, आपके क्लाइंट्स की बुकिंग, वाउचर और नाम बोर्ड, होटल डेस्क, कॉर्पोरेट ट्रांसपोर्ट, DMC प्रोग्राम, बुकिंग विजेट, उपयोगकर्ता, सूचनाएँ, स्टेटमेंट और इनवॉइस। सैंडबॉक्स कुंजियाँ (nwp_test_…) आवेदकों के लिए खुली हैं: वे हर एंडपॉइंट पर sandbox: true चिह्नित परीक्षण डेटा देती हैं, कभी बुकिंग नहीं करतीं और आपके खाते में कुछ नहीं बदलतीं। लाइव कुंजियाँ (nwp_live_…) स्वीकृति पर जारी होती हैं और तब काम करती हैं जब NWP आपके खाते के लिए लाइव एक्सेस चालू कर देता है। हर POST एक Idempotency-Key लेता है, हर उत्तर में x-request-id होता है, और हर कुंजी की अपनी प्रति-मिनट सीमा होती है।
OpenAPI 3.1 दस्तावेज़: /api/b2b/v1/openapi.json
ग्राउंड ट्रांसपोर्ट
POST/api/b2b/v1/transport/quoteआपकी शर्तों पर मूल्य
स्कोप:
transport:readPOST/api/b2b/v1/transport/bookingsबुक करें
स्कोप:
transport:writeलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/transport/bookings/{id}बुकिंग की स्थिति और रद्दीकरण शर्तें
स्कोप:
transport:readPOST/api/b2b/v1/transport/bookings/{id}/cancelनीति के अनुसार रद्द करें
स्कोप:
transport:writeलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/transport/bookings/{id}/voucherआपके ब्रांड में वाउचर (HTML या PDF)
स्कोप:
transport:read
टूर और गतिविधियाँ
GET/api/b2b/v1/activities/productsबिक्री पर उत्पाद, प्रति व्यक्ति या प्रति वाहन
स्कोप:
activities:readGET/api/b2b/v1/activities/products/{id}/availabilityदिनवार उपलब्धता
स्कोप:
activities:readPOST/api/b2b/v1/activities/quoteआपकी शर्तों पर मूल्य
स्कोप:
activities:readPOST/api/b2b/v1/activities/bookingsबुक करें
स्कोप:
activities:writeलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/activities/bookings/{id}बुकिंग की स्थिति और रद्दीकरण शर्तें
स्कोप:
activities:readPOST/api/b2b/v1/activities/bookings/{id}/cancelनीति के अनुसार रद्द करें
स्कोप:
activities:writeलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/activities/bookings/{id}/voucherआपके ब्रांड में वाउचर (HTML या PDF)
स्कोप:
activities:read
क्रूज़
GET/api/b2b/v1/cruise/sailingsयात्राएँ
स्कोप:
cruise:readअभी उपलब्ध नहीं: क्रूज़ आपूर्तिकर्ता जुड़ने तक 501 देता हैPOST/api/b2b/v1/cruise/quoteआपकी शर्तों पर मूल्य
स्कोप:
cruise:readअभी उपलब्ध नहीं: क्रूज़ आपूर्तिकर्ता जुड़ने तक 501 देता हैPOST/api/b2b/v1/cruise/bookingsबुक करें
स्कोप:
cruise:writeअभी उपलब्ध नहीं: क्रूज़ आपूर्तिकर्ता जुड़ने तक 501 देता हैGET/api/b2b/v1/cruise/bookings/{id}बुकिंग की स्थिति और रद्दीकरण शर्तें
स्कोप:
cruise:readअभी उपलब्ध नहीं: क्रूज़ आपूर्तिकर्ता जुड़ने तक 501 देता हैPOST/api/b2b/v1/cruise/bookings/{id}/cancelनीति के अनुसार रद्द करें
स्कोप:
cruise:writeअभी उपलब्ध नहीं: क्रूज़ आपूर्तिकर्ता जुड़ने तक 501 देता है
स्वागत गाइड
GET/api/b2b/v1/guides/propertiesआपकी प्रॉपर्टी
स्कोप:
guides:readPOST/api/b2b/v1/guides/propertiesप्रॉपर्टी जोड़ें
स्कोप:
guides:writeGET/api/b2b/v1/guides/properties/{id}प्रॉपर्टी की गाइड, लिंक और फ़ाइलें
स्कोप:
guides:readPATCH/api/b2b/v1/guides/properties/{id}प्रॉपर्टी बदलें
स्कोप:
guides:writePOST/api/b2b/v1/guides/properties/{id}/statusगाइड रोकें या फिर से चालू करें
स्कोप:
guides:writePOST/api/b2b/v1/guides/properties/{id}/linkमेहमान लिंक बदलें
स्कोप:
guides:writeGET/api/b2b/v1/guides/properties/{id}/wifiवाई-फ़ाई की जानकारी पढ़ें
स्कोप:
guides_wifi:readPOST/api/b2b/v1/guides/properties/{id}/wifiवाई-फ़ाई सेट करें
स्कोप:
guides_wifi:writeGET/api/b2b/v1/guides/properties/{id}/qrQR कोड (PNG या SVG)
स्कोप:
guides:readGET/api/b2b/v1/guides/properties/{id}/cardप्रिंट करने योग्य कार्ड (PDF या HTML)
स्कोप:
guides:readGET/api/b2b/v1/guides/statsस्कैन, व्यू, बुकिंग और आपका हिस्सा
स्कोप:
guides:read
खाता
GET/api/b2b/v1/whoamiकुंजी जाँचें
स्कोप:
account:readGET/api/b2b/v1/openapi.jsonयह API, OpenAPI 3.1 में
एफ़िलिएट
GET/api/b2b/v1/affiliate/statsकिसी अवधि के आँकड़े: क्लिक, बुकिंग, कन्वर्ज़न, कमाई
स्कोप:
affiliate:readGET/api/b2b/v1/affiliate/linksआपके ट्रैकिंग लिंक, QR कोड के साथ
स्कोप:
affiliate:readPOST/api/b2b/v1/affiliate/linksUTM के साथ ट्रैकिंग लिंक बनाएँ
स्कोप:
affiliate:writeलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/affiliate/links/{code}/qrकिसी लिंक का QR कोड (SVG या PNG)
स्कोप:
affiliate:readGET/api/b2b/v1/affiliate/performanceलिंक के अनुसार क्लिक, बुकिंग और कमाई
स्कोप:
affiliate:readGET/api/b2b/v1/affiliate/payoutsभुगतान बैलेंस और भुगतान अनुरोध
स्कोप:
affiliate:readPOST/api/b2b/v1/affiliate/payoutsभुगतान का अनुरोध करें, बैंक ट्रांसफ़र से भेजा जाता है
स्कोप:
affiliate:writeलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/affiliate/payouts/{reference}/cancelभुगतान अनुरोध वापस लें
स्कोप:
affiliate:writeलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/affiliate/bank-detailsबैंक विवरण सहेजें (केवल भेजे जा सकते हैं, कभी लौटाए नहीं जाते)
स्कोप:
affiliate:writeलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/affiliate/widgetविजेट की सेटिंग और स्निपेट
स्कोप:
affiliate:readPOST/api/b2b/v1/affiliate/widgetबुकिंग विजेट सेट अप करें
स्कोप:
affiliate:writeलाइव कुंजी आवश्यक — स्वीकृति पर जारी
आपके क्लाइंट्स की बुकिंग
POST/api/b2b/v1/bookings/quoteआपकी शर्तों पर मूल्य
स्कोप:
bookings:createPOST/api/b2b/v1/bookingsबुक करें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/bookingsसूची
स्कोप:
bookings:viewGET/api/b2b/v1/bookings/creditedआपके खाते में जमा बुकिंग
स्कोप:
bookings:viewGET/api/b2b/v1/bookings/{ref}विवरण
स्कोप:
bookings:viewPOST/api/b2b/v1/bookings/{ref}/cancelनीति के अनुसार रद्द करें
स्कोप:
bookings:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/bookings/{ref}/amendmentsट्रेड डेस्क से बदलाव का अनुरोध करें
स्कोप:
bookings:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/bookings/{ref}/brandइसके दस्तावेज़ों पर आपका ब्रांड, या कोई नहीं
स्कोप:
bookings:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/bookings/{ref}/voucherआपके ब्रांड में वाउचर (HTML या PDF)
स्कोप:
bookings:viewGET/api/b2b/v1/bookings/{ref}/name-boardड्राइवर का नाम बोर्ड (HTML)
स्कोप:
bookings:viewGET/api/b2b/v1/requestsबदलाव और सेवा अनुरोध, डेस्क के जवाबों के साथ
स्कोप:
bookings:viewPOST/api/b2b/v1/requests/{id}/withdrawखुला अनुरोध वापस लें
स्कोप:
bookings:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारी
होटल डेस्क
POST/api/b2b/v1/desk/salesडेस्क पर त्वरित बिक्री
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/desk/days/{date}एक दिन की बिक्री, या उसका सेटलमेंट CSV या PDF में
स्कोप:
statements:readPOST/api/b2b/v1/desk/days/{date}/closeदिन बंद करें और उसका सेटलमेंट स्थिर करें
स्कोप:
statements:readलाइव कुंजी आवश्यक — स्वीकृति पर जारी
कॉर्पोरेट ट्रांसपोर्ट
GET/api/b2b/v1/corporate/cost-centresसूची
स्कोप:
bookings:viewPOST/api/b2b/v1/corporate/cost-centresबनाएँ या बदलें
स्कोप:
settings:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/corporate/cost-centres/{id}/approversबनाएँ या बदलें
स्कोप:
settings:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/corporate/requestsसूची
स्कोप:
bookings:viewPOST/api/b2b/v1/corporate/requestsबुक करें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/corporate/requests/{id}/decisionस्वीकृत या अस्वीकार करें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/corporate/shuttlesसूची
स्कोप:
bookings:viewPOST/api/b2b/v1/corporate/shuttlesबनाएँ या बदलें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/corporate/shuttles/{id}/statusइसकी स्थिति बदलें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/corporate/shuttles/{id}/scheduleएक महीने की यात्राएँ निर्धारित करें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/corporate/shuttles/{id}/repriceनया तय हुआ रेट लागू करें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/corporate/usageकॉस्ट सेंटर के अनुसार उपयोग (JSON या CSV)
स्कोप:
statements:read
DMC प्रोग्राम
GET/api/b2b/v1/dmc/programmesसूची
स्कोप:
bookings:viewPOST/api/b2b/v1/dmc/programmesबनाएँ या बदलें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/dmc/programmes/{id}विवरण
स्कोप:
bookings:viewPOST/api/b2b/v1/dmc/programmes/{id}/versionsमूल्य सहित संस्करण सहेजें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/dmc/programmes/{id}/statusइसकी स्थिति बदलें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/dmc/programmes/{id}/brandइसके दस्तावेज़ों पर आपका ब्रांड, या कोई नहीं
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/dmc/programmes/{id}/acceptएक संस्करण स्वीकार करें और बुक करें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/dmc/programmes/{id}/proposalक्लाइंट प्रस्ताव (HTML)
स्कोप:
bookings:viewPOST/api/b2b/v1/dmc/programmes/{id}/linksसमय-सीमा वाला क्लाइंट लिंक जारी करें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीGET/api/b2b/v1/dmc/programmes/{id}/linksक्लाइंट लिंक और किसने स्वीकार किया
स्कोप:
bookings:viewPOST/api/b2b/v1/dmc/programmes/{id}/links/{link}/revokeक्लाइंट लिंक रद्द करें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारी
रेट और कोटेशन अनुरोध
GET/api/b2b/v1/rates/catalogueआपके रेट पर कैटलॉग (JSON, CSV या PDF)
स्कोप:
rates:viewGET/api/b2b/v1/rates/sheetसेवाओं की रेट शीट
स्कोप:
rates:viewPOST/api/b2b/v1/quote-requestsकोटेशन अनुरोध भेजें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/wholesale-requestsवाहन क्षमता का अनुरोध करें
स्कोप:
bookings:createलाइव कुंजी आवश्यक — स्वीकृति पर जारी
बुकिंग विजेट
GET/api/b2b/v1/widgetविजेट की सेटिंग और स्निपेट
स्कोप:
tracking:viewPOST/api/b2b/v1/widgetविजेट बदलें
स्कोप:
tracking:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारी
उपयोगकर्ता
GET/api/b2b/v1/usersसूची
स्कोप:
users:viewPOST/api/b2b/v1/usersकिसी व्यक्ति को आमंत्रित करें
स्कोप:
users:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/users/{id}/roleकिसी व्यक्ति की भूमिका बदलें
स्कोप:
users:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/users/{id}/deactivateकिसी व्यक्ति की पहुँच हटाएँ
स्कोप:
users:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/users/{id}/reactivateकिसी व्यक्ति की पहुँच बहाल करें
स्कोप:
users:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारी
सूचनाएँ
GET/api/b2b/v1/inboxआपके खाते से जुड़ी सूचनाएँ
स्कोप:
inbox:view
स्टेटमेंट और इनवॉइस
GET/api/b2b/v1/statementsस्टेटमेंट, बैलेंस और खुले इनवॉइस
स्कोप:
statements:readGET/api/b2b/v1/statements/{period}एक महीने का स्टेटमेंट (JSON या PDF)
स्कोप:
statements:readGET/api/b2b/v1/invoices/{id}एक इनवॉइस (JSON या PDF)
स्कोप:
statements:read
खाता सेटिंग
GET/api/b2b/v1/settingsखाते का विवरण, संपर्क और बिलिंग ईमेल
स्कोप:
settings:viewPOST/api/b2b/v1/settings/billing-emailबिलिंग ईमेल तय करें
स्कोप:
settings:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/settings/contactsसंपर्क जोड़ें या बदलें
स्कोप:
settings:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/settings/contacts/{id}/removeसंपर्क हटाएँ
स्कोप:
settings:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारीPOST/api/b2b/v1/settings/brandइसके दस्तावेज़ों पर आपका ब्रांड, या कोई नहीं
स्कोप:
settings:manageलाइव कुंजी आवश्यक — स्वीकृति पर जारी
curl -X POST 'https://nwp.ae/api/b2b/v1/transport/quote' \
-H 'Authorization: Bearer nwp_test_…' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f1c2b0e-quote-1' \
-d '{"airport":"dxb","terminal":"t3","direction":"from_airport","place":"downtown","vehicle":"vclass","pickup_date":"2026-11-02","pickup_time":"14:30","passengers":3,"bags":3}'ऑथेंटिकेशन
हर सैंडबॉक्स कॉल के लिए बेयरर टोकन चाहिए। डेवलपर हैंडशेक एक टोकन जारी करता है: JWT के आकार का टोकन जो nwp_sandbox_ से शुरू होता है, 30 दिन चलता है और केवल टेस्ट डेटा खोलता है।
1सैंडबॉक्स टोकन का अनुरोध करें
curl -X POST https://nwp.ae/api/b2b/orchestration \
-H 'Content-Type: application/json' \
-d '{
"action": "developer_handshake",
"platform_name": "Example Travel App",
"contact_email": "developers@example.com",
"use_case": "transfers"
}'{
"environment": "sandbox",
"status": "early-access",
"test_data": true,
"token_type": "Bearer",
"token": "nwp_sandbox_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImVudiI6InNhbmRib3gifQ…",
"expires_at": "2026-10-31T08:00:00.000Z",
"scopes": [
"sandbox:transfers.quote",
"sandbox:availability.read"
],
"endpoints": [
{
"method": "POST",
"url": "https://nwp.ae/api/b2b/sandbox/transfers"
},
{
"method": "GET",
"url": "https://nwp.ae/api/b2b/sandbox/availability"
},
{
"method": "GET",
"url": "https://nwp.ae/api/b2b/sandbox/status"
}
],
"production": {
"status": "not_open",
"request_access": "https://nwp.ae/register?type=institutional"
}
}2उसके साथ सैंडबॉक्स को कॉल करें
curl -X POST https://nwp.ae/api/b2b/sandbox/transfers \
-H 'Authorization: Bearer nwp_sandbox_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImVudiI6InNhbmRib3gifQ…' \
-H 'Content-Type: application/json' \
-d @transfer.jsonट्रांसफ़र अनुरोध
नीचे दिए फ़ील्ड सैंडबॉक्स ट्रांसफ़र एंडपॉइंट पर भेजें। फ़ील्ड के नाम API का हिस्सा हैं और हर भाषा में अंग्रेज़ी में ही रहते हैं।
pickup_locationआवश्यक{ type: "airport" | "coordinates" | "hotel", … }यात्री को कहाँ से लिया जाता है: एयरपोर्ट टर्मिनल (DXB_T1, DXB_T2, DXB_T3, DWC, SHJ), यूएई के भीतर निर्देशांक, या होटल संदर्भ।
dropoff_locationआवश्यक{ type: "hotel" | "coordinates" | "airport", … }यात्री को कहाँ ले जाया जाता है: होटल संदर्भ स्ट्रिंग (आपका अपना होटल कोड या होटल का नाम), निर्देशांक, या एयरपोर्ट टर्मिनल।
flight_numberशर्त परstringआने वाली उड़ान, जैसे EK202। पिकअप उड़ान की निर्धारित लैंडिंग के अनुसार तय होता है।
pickup_atशर्त परstring (ISO 8601)ऑफ़सेट के साथ ISO 8601। तब आवश्यक जब पिकअप एयरपोर्ट पर न हो, या जब एयरपोर्ट पिकअप की कोई उड़ान न हो।
buffer_minutes_overrideवैकल्पिकintegerलैंडिंग के बाद मुफ़्त प्रतीक्षा, मिनटों में, 0 से 180 तक। डिफ़ॉल्ट 60 है: वही मुफ़्त प्रतीक्षा जो समूह की ट्रांसफ़र साइट पहले से हर आगमन को देती है।
vehicle_classआवश्यकenumइनमें से एक: VIP_V_CLASS, EXECUTIVE_SEDAN या LUXURY_COACH।
passengersवैकल्पिकintegerश्रेणी की सीटों से ज़्यादा होने पर अस्वीकार।
client_metadataवैकल्पिकobjectयात्री के वाउचर के लिए व्हाइट-लेबल विवरण: agency_name, logo_url (केवल https), voucher_branding और agency_reference।
| फ़ील्ड | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
pickup_location | { type: "airport" | "coordinates" | "hotel", … } | आवश्यक | यात्री को कहाँ से लिया जाता है: एयरपोर्ट टर्मिनल (DXB_T1, DXB_T2, DXB_T3, DWC, SHJ), यूएई के भीतर निर्देशांक, या होटल संदर्भ। |
dropoff_location | { type: "hotel" | "coordinates" | "airport", … } | आवश्यक | यात्री को कहाँ ले जाया जाता है: होटल संदर्भ स्ट्रिंग (आपका अपना होटल कोड या होटल का नाम), निर्देशांक, या एयरपोर्ट टर्मिनल। |
flight_number | string | शर्त पर | आने वाली उड़ान, जैसे EK202। पिकअप उड़ान की निर्धारित लैंडिंग के अनुसार तय होता है। |
pickup_at | string (ISO 8601) | शर्त पर | ऑफ़सेट के साथ ISO 8601। तब आवश्यक जब पिकअप एयरपोर्ट पर न हो, या जब एयरपोर्ट पिकअप की कोई उड़ान न हो। |
buffer_minutes_override | integer | वैकल्पिक | लैंडिंग के बाद मुफ़्त प्रतीक्षा, मिनटों में, 0 से 180 तक। डिफ़ॉल्ट 60 है: वही मुफ़्त प्रतीक्षा जो समूह की ट्रांसफ़र साइट पहले से हर आगमन को देती है। |
vehicle_class | enum | आवश्यक | इनमें से एक: VIP_V_CLASS, EXECUTIVE_SEDAN या LUXURY_COACH। |
passengers | integer | वैकल्पिक | श्रेणी की सीटों से ज़्यादा होने पर अस्वीकार। |
client_metadata | object | वैकल्पिक | यात्री के वाउचर के लिए व्हाइट-लेबल विवरण: agency_name, logo_url (केवल https), voucher_branding और agency_reference। |
{
"pickup_location": {
"type": "airport",
"terminal": "DXB_T3"
},
"dropoff_location": {
"type": "hotel",
"hotel_ref": "EXAMPLE-HOTEL-DOWNTOWN"
},
"flight_number": "EK202",
"buffer_minutes_override": 60,
"vehicle_class": "VIP_V_CLASS",
"passengers": 4,
"client_metadata": {
"agency_name": "Example Travel",
"logo_url": "https://example.com/logo.png",
"voucher_branding": {
"mode": "white_label",
"accent_hex": "#0A0A0A"
},
"agency_reference": "EX-10442"
}
}वाहन श्रेणियाँ
| श्रेणी | वाहन | सीटें |
|---|---|---|
VIP_V_CLASS | Mercedes-Benz V-Class or similar | 7 |
EXECUTIVE_SEDAN | Lexus ES 350 or a similar executive saloon | 3 |
LUXURY_COACH | Toyota Coaster or King Long coach | 30 |
हर वाहन काम के लिए अपने लाइसेंस प्राप्त शॉफ़र के साथ किराए पर लिया जाता है; श्रेणी वाहन का प्रकार और उसकी सीटें तय करती है।
जवाब
सैंडबॉक्स कोटेशन अनुरोध को दोहराता है और जोड़ता है कि पिकअप का समय कैसे तय होगा और वाउचर पर ब्रांडिंग कैसे होगी। इसमें कभी कोई मूल्य नहीं होता।
{
"environment": "sandbox",
"test_data": true,
"notice": "Sandbox response: test data only. Nothing is booked, no vehicle is held and no price is quoted. Production is not open yet.",
"quote_id": "SBX-WT5PCXWF",
"status": "sandbox_accepted",
"vehicle": {
"class": "VIP_V_CLASS",
"description": "Mercedes-Benz V-Class or similar",
"max_passengers": 7
},
"passengers": 4,
"pickup": {
"location": {
"type": "airport",
"terminal": "DXB_T3"
},
"timing": {
"mode": "flight_landing",
"flight_number": "EK202",
"driver_ready": "at the scheduled landing time",
"free_waiting_minutes": 60,
"live_arrival_tracking": "planned"
}
},
"dropoff": {
"location": {
"type": "hotel",
"hotel_ref": "EXAMPLE-HOTEL-DOWNTOWN"
}
},
"voucher": {
"branding": "white_label",
"agency_name": "Example Travel",
"logo_url": "https://example.com/logo.png",
"accent_hex": "#0A0A0A",
"footer_text": null,
"agency_reference": "EX-10442",
"shows_nwp_branding": false
},
"price": null,
"price_note": "Sandbox quotes carry no price. Net rates are issued to approved partners in the portal.",
"default_buffer_minutes": 60,
"created_at": "2026-10-01T08:00:00.000Z"
}{
"error": {
"code": "validation_failed",
"message": "One or more fields are invalid.",
"retryable": false,
"fields": [
"flight_number"
],
"issues": [
{
"path": "flight_number",
"message": "flight_number must be an airline flight number such as EK202."
}
]
},
"environment": "sandbox"
}उड़ान का समय
आज पिकअप बुकिंग में दर्ज लैंडिंग समय के अनुसार तय होता है, और ड्राइवर उसके बाद बफ़र अवधि तक मुफ़्त प्रतीक्षा करता है। अगर उड़ान का समय बदलता है, तो ट्रेड डेस्क को बताएँ और पिकअप भी उसके साथ बदल जाता है।
FlightAware या AeroDataBox के ज़रिए स्वचालित लाइव आगमन ट्रैकिंग की योजना है। दोनों में से कोई अभी जुड़ा नहीं है, और सैंडबॉक्स live_arrival_tracking को planned (योजना में) के रूप में दिखाता है।
साइन की गई उपलब्धता
हैंडशेक एक साइन किया गया उपलब्धता URL लौटाता है। सिग्नेचर तारीख, वाहन श्रेणी और समाप्ति को कवर करता है; इनमें से कुछ भी बदलें तो कॉल अस्वीकार हो जाती है। स्थितियाँ विकास के लिए नमूने हैं।
curl 'https://nwp.ae/api/b2b/sandbox/availability?date=2026-10-15&vehicle_class=VIP_V_CLASS&expires=1760572800&sig=…'{
"environment": "sandbox",
"test_data": true,
"notice": "Sandbox response: test data only. Nothing is booked, no vehicle is held and no price is quoted. Production is not open yet.",
"date": "2026-10-15",
"vehicle_class": "VIP_V_CLASS",
"vehicle": {
"description": "Mercedes-Benz V-Class or similar",
"max_passengers": 7
},
"sample_status": "on_request",
"note": "A sample status for building against. Real availability is confirmed by the trade desk until the API opens."
}खाता क्रियाएँ
एक्शन के साथ ऑर्केस्ट्रेशन एंडपॉइंट पर POST करें। जो एक्शन किसी व्यक्ति से कुछ करने को कहता है, उसे जवाब में यह बताए जाने से पहले संग्रहीत करके ट्रेड डेस्क को सौंप दिया जाता है।
| एक्शन | यह क्या करता है |
|---|---|
credit_line_application | यूएई में पंजीकृत कंपनी के लिए Net-15, 30, 45 या 60 की शर्तें। ट्रेड लाइसेंस नंबर और TRN (15 अंक, 100 से शुरू) आवश्यक हैं। हर आवेदन की समीक्षा एक व्यक्ति करता है, और क्रेडिट लाइन स्वीकृत होने तक बुकिंग का अग्रिम भुगतान होता है। |
wallet_topup | आपके खाते में अग्रिम भुगतान। कार्ड से टॉप-अप अभी उपलब्ध नहीं है, इसलिए ट्रेड डेस्क आपको बैंक ट्रांसफ़र के लिए इनवॉइस भेजता है, और जवाब में यह बताया जाता है। |
account_payload | आपके खाते का मुद्रा मैट्रिक्स। AED आधार है और एकमात्र मुद्रा है जिसमें कुछ भी चार्ज किया या कमाया जाता है; अन्य मुद्राएँ साइट की दैनिक दर पर केवल दिखाने के लिए रूपांतरण हैं, इसलिए रूपांतरण से मार्जिन कभी नहीं बदलता। |
tracking_link | हॉलिडे-होम और एफ़िलिएट टियर के लिए एक निर्धारित (deterministic) पार्टनर URL और QR कोड, साथ में यह साफ़ बयान कि आज इसका श्रेय कहाँ जाता है। |
developer_handshake | एक सैंडबॉक्स टोकन, सैंडबॉक्स एंडपॉइंट और एक साइन किया गया उपलब्धता URL। |
{
"action": "credit_line_application",
"company_legal_name": "Example Travel L.L.C.",
"trade_licence_number": "1234567",
"licence_authority": "Department of Economy and Tourism, Dubai",
"trn": "100000000000003",
"contact_name": "Finance Desk",
"contact_email": "finance@example.com",
"requested_terms": "NET_30",
"requested_limit_aed": 50000
}{
"action": "wallet_topup",
"company_name": "Example Travel L.L.C.",
"contact_email": "finance@example.com",
"amount_aed": 10000,
"purchase_order": "PO-2291"
}{
"action": "account_payload",
"company_name": "Example Travel L.L.C.",
"tier": "Tier_4_Regional_DMCs",
"display_currencies": [
"USD",
"EUR"
],
"lines": [
{
"label": "Your own city-tour package",
"net_aed": 400,
"sell_aed": 560
}
]
}{
"action": "tracking_link",
"partner_code": "HHO-EXAMPLE",
"tier": "Tier_1_Holiday_Homes",
"property_id": "marina-2104",
"destination": "dubaitransfers.ae"
}त्रुटियाँ
हर त्रुटि का आकार एक जैसा होता है: error.code, error.message और error.retryable, और वैलिडेशन विफल होने पर fields और issues भी।
| स्थिति | कोड | अर्थ |
|---|---|---|
| 400 | invalid_json | बॉडी मान्य JSON नहीं है। |
| 401 | unauthenticated | कोई सैंडबॉक्स टोकन नहीं, या टोकन विकृत, समाप्त या गलत तरीके से साइन किया गया है। |
| 404 | not_found | यह एंडपॉइंट इस होस्ट पर मौजूद नहीं है। |
| 405 | method_not_allowed | यह एंडपॉइंट कोई दूसरा मेथड लेता है। |
| 413 | payload_too_large | बॉडी 16 KB से बड़ी है। |
| 422 | validation_failed | कोई फ़ील्ड गायब है या गलत है: fields और issues देखें। |
| 429 | rate_limited | इस पते से बहुत ज़्यादा अनुरोध: retry_after_seconds के बाद फिर से प्रयास करें। |
| 500 | internal | हमारी ओर से कुछ विफल हुआ: अनुरोध ID बताएँ। |
| 502 | upstream_unavailable | किसी पेमेंट प्रदाता ने जवाब नहीं दिया। |
| 503 | not_configured | अनुरोध संग्रहीत नहीं हो सका: ट्रेड डेस्क को ईमेल करें। |
रेट लिमिट
खाता क्रियाएँ प्रति पता, प्रति घंटे सीमित हैं: credit_line_application: 5, wallet_topup: 10, account_payload: 60, tracking_link: 60, और developer_handshake: 10। सैंडबॉक्स कॉल प्रति पता प्रति घंटे 120 तक सीमित हैं।
बुकिंग विजेट
बुकिंग विजेट अर्ली एक्सेस में स्वीकृत पार्टनरों के लिए खुला है: एक स्क्रिप्ट टैग nwp.ae के टूर और ट्रांसफ़र आपकी साइट पर सार्वजनिक मूल्य पर, बारह भाषाओं में, आपके नाम के साथ और हर बुकिंग पर आपके पार्टनर कोड सहित दिखाता है। इसे API के ज़रिए सेट करें: बुकिंग विजेट के एंडपॉइंट इसकी सेटिंग पढ़ते और बदलते हैं, और पेस्ट करने के लिए स्निपेट लौटाते हैं।