diff --git a/api/build/build.yaml b/api/build/build.yaml
index 14616590..1e4fdf8e 100644
--- a/api/build/build.yaml
+++ b/api/build/build.yaml
@@ -1384,7 +1384,7 @@ components:
- application/xml
resubmit:
type: boolean
- multiple_sumbissions:
+ multiple_submissions:
type: boolean
Fulfillment:
description: Describes how a an order will be rendered/fulfilled to the end-customer
@@ -16636,6 +16636,1057 @@ x-flows:
- descriptor:
code: SETTLEMENT_AMOUNT
value: '85'
+ - summary: On-Demand - Technical Cancellation Flow
+ details:
+ - description: Detailed process of cancelling a ride with soft & confirm status.
+ mermaid: |-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_confirm
+ Buyer Platform (BAP)-->>Seller Platform (BPP): NACK
+ Buyer Platform (BAP)->>Seller Platform (BPP): status
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_status
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with soft_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with confirm_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ reference: if any
+ steps:
+ - summary: Provider confirms the request
+ api: on_confirm
+ details:
+ - description: >-
+ The provider has confirmed the request, but the buyer app received
+ the request after the TTL had expired.
+ mermaid: |-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ rect rgb(191, 223, 255)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_confirm
+ Buyer Platform (BAP)-->>Seller Platform (BPP): NACK
+ end
+ Buyer Platform (BAP)->>Seller Platform (BPP): status
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_status
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ reference: if any
+ example:
+ value: *ref_44
+ - summary: Buyer app request for latest order status
+ api: status
+ details:
+ - description: Buyer app request for latest order status
+ mermaid: |-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_confirm
+ Buyer Platform (BAP)-->>Seller Platform (BPP): NACK
+ rect rgb(191, 223, 255)
+ Buyer Platform (BAP)->>Seller Platform (BPP): status
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ end
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_status
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ reference: if any
+ example:
+ value:
+ context:
+ action: status
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: example-bpp.com
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: d883e7f9-f6bc-4ddf-b64c-a2bc44e63ae2
+ timestamp: '2023-03-23T04:48:53Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+ message:
+ ref_id: 870782be-6757-43f1-945c-8eeaf9536259
+ - summary: Provider sends the latest order status
+ api: on_status
+ details:
+ - description: Provider sends the latest order status
+ mermaid: |-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_confirm
+ Buyer Platform (BAP)-->>Seller Platform (BPP): NACK
+ Buyer Platform (BAP)->>Seller Platform (BPP): status
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ rect rgb(191, 223, 255)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_status
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ end
+ reference: if any
+ example:
+ value:
+ context:
+ action: on_status
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: example-bpp.com
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: 8926b747-0362-4fcc-b795-0994a6287700
+ timestamp: '2023-12-10T08:03:34.294Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+ message:
+ order:
+ cancellation_terms:
+ - cancellation_fee:
+ percentage: '0'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ASSIGNED
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '30'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ENROUTE_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '50'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ARRIVED_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ percentage: '100'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_STARTED
+ reason_required: true
+ fulfillments:
+ - agent:
+ contact:
+ phone: '9856798567'
+ person:
+ name: Jason Roy
+ customer:
+ contact:
+ phone: '9876556789'
+ person:
+ name: Joe Adams
+ id: F1
+ state:
+ descriptor:
+ code: RIDE_ASSIGNED
+ stops:
+ - authorization:
+ token: '234234'
+ type: OTP
+ valid_to: '2023-12-10T08:05:34.294Z'
+ status: UNCLAIMED
+ location:
+ gps: 13.008935, 77.644408
+ type: START
+ instructions:
+ short_desc: short description of the location
+ long_desc: long description of the location
+ - location:
+ gps: 12.971186, 77.586812
+ type: END
+ tags:
+ - descriptor:
+ code: ROUTE_INFO
+ name: Route Information
+ display: true
+ list:
+ - descriptor:
+ code: ENCODED_POLYLINE
+ name: Path
+ value: _p~iF~ps|U_ulLnnqC_mqNvxq`@
+ - descriptor:
+ code: WAYPOINTS
+ name: Waypoints
+ value: >-
+ [{"gps":"12.909982,
+ 77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,
+ 77.611822"}]
+ type: DELIVERY
+ vehicle:
+ category: AUTO_RICKSHAW
+ variant: AUTO_RICKSHAW
+ make: Bajaj
+ model: Compact RE
+ registration: KA-01-AD-9876
+ id: O1
+ items:
+ - descriptor:
+ code: RIDE
+ name: Auto Ride
+ category_ids:
+ - C1
+ fulfillment_ids:
+ - F1
+ id: I1
+ location_ids:
+ - L1
+ - L3
+ payment_ids:
+ - PA1
+ price:
+ currency: INR
+ maximum_value: '176'
+ minimum_value: '136'
+ value: '146'
+ tags:
+ - descriptor:
+ code: FARE_POLICY
+ name: Daytime Charges
+ display: true
+ list:
+ - descriptor:
+ code: MIN_FARE
+ value: '30'
+ - descriptor:
+ code: MIN_FARE_DISTANCE_KM
+ value: '2'
+ - descriptor:
+ code: PER_KM_CHARGE
+ value: '15'
+ - descriptor:
+ code: PICKUP_CHARGE
+ value: '10'
+ - descriptor:
+ code: WAITING_CHARGE_PER_MIN
+ value: '2'
+ - descriptor:
+ code: NIGHT_CHARGE_MULTIPLIER
+ value: '1.5'
+ - descriptor:
+ code: NIGHT_SHIFT_START_TIME
+ value: '22:00:00'
+ - descriptor:
+ code: NIGHT_SHIFT_END_TIME
+ value: '05:00:00'
+ - descriptor:
+ code: INFO
+ name: General Information
+ display: true
+ list:
+ - descriptor:
+ code: DISTANCE_TO_NEAREST_DRIVER_METER
+ value: '661'
+ - descriptor:
+ code: ETA_TO_NEAREST_DRIVER_MIN
+ value: '3'
+ - descriptor:
+ code: FEATURE_LIST
+ name: Feature list
+ list:
+ - value: NON_AC
+ - value: LOW_PRICE
+ - value: DOORSTEP_PICK_UP
+ payments:
+ - collected_by: BPP
+ id: PA1
+ status: NOT-PAID
+ type: ON-FULFILLMENT
+ provider:
+ id: P1
+ quote:
+ breakup:
+ - price:
+ currency: INR
+ value: '30'
+ title: BASE_FARE
+ - price:
+ currency: INR
+ value: '116'
+ title: DISTANCE_FARE
+ price:
+ currency: INR
+ value: '146'
+ ttl: PT30S
+ status: ACTIVE
+ created_at: '2023-12-10T08:03:34.294Z'
+ updated_at: '2023-12-10T08:03:34.294Z'
+ tags:
+ - descriptor:
+ name: BAP Terms of Engagement
+ code: BAP_TERMS
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: PT60M
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bap.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
+ - descriptor:
+ code: SETTLEMENT_BANK_CODE
+ value: XXXXXXXX
+ - descriptor:
+ code: SETTLEMENT_BANK_ACCOUNT_NUMBER
+ value: xxxxxxxxxxxxxx
+ - descriptor:
+ code: SETTLEMENT_VIRTUAL_PAYMENT_ADDRESS
+ value: 9988199772@okicic
+ - descriptor:
+ code: BPP_TERMS
+ name: BPP Terms of Engagement
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: P2D
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bpp.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
+ - summary: Buyer app cancels the request for ride
+ api: cancel
+ details:
+ - description: Buyer app requests for cancellation of ride.
+ mermaid: |-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ rect rgb(191, 223, 255)
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with soft_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ end
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ reference: if any
+ example:
+ value:
+ context:
+ action: cancel
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: >-
+ api.beckn.juspay.in/dobpp/beckn/7f7896dd-787e-4a0b-8675-e9e6fe93bb8f
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: 8bbe4998-6243-4ce6-9859-c0f21c06d3db
+ timestamp: '2023-03-23T05:15:08Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+ message:
+ cancellation_reason_id: '000'
+ descriptor:
+ code: SOFT_CANCEL
+ name: Ride Cancellation
+ order_id: O1
+ - summary: Provider accepts/appends the terms of cancellation
+ api: on_cancel
+ details:
+ - description: >-
+ Provider accepts the terms of order and appends its own terms and
+ provides with latest order update.
+ mermaid: |-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with soft_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ rect rgb(191, 223, 255)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ end
+ reference: if any
+ example:
+ value:
+ context:
+ action: on_cancel
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: example-bpp.com
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: 8926b747-0362-4fcc-b795-0994a6287700
+ timestamp: '2023-12-10T08:03:34.294Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+ message:
+ order:
+ cancellation_terms:
+ - cancellation_fee:
+ percentage: '0'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ASSIGNED
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '30'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ENROUTE_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '50'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ARRIVED_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ percentage: '100'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_STARTED
+ reason_required: true
+ fulfillments:
+ - agent:
+ contact:
+ phone: '9856798567'
+ person:
+ name: Jason Roy
+ customer:
+ contact:
+ phone: '9876556789'
+ person:
+ name: Joe Adams
+ id: F1
+ state:
+ descriptor:
+ code: RIDE_ASSIGNED
+ stops:
+ - authorization:
+ token: '234234'
+ type: OTP
+ valid_to: '2023-12-10T08:05:34.294Z'
+ status: UNCLAIMED
+ location:
+ gps: 13.008935, 77.644408
+ type: START
+ instructions:
+ short_desc: short description of the location
+ long_desc: long description of the location
+ - location:
+ gps: 12.971186, 77.586812
+ type: END
+ tags:
+ - descriptor:
+ code: ROUTE_INFO
+ name: Route Information
+ display: true
+ list:
+ - descriptor:
+ code: ENCODED_POLYLINE
+ name: Path
+ value: _p~iF~ps|U_ulLnnqC_mqNvxq`@
+ - descriptor:
+ code: WAYPOINTS
+ name: Waypoints
+ value: >-
+ [{"gps":"12.909982,
+ 77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,
+ 77.611822"}]
+ type: DELIVERY
+ vehicle:
+ category: AUTO_RICKSHAW
+ variant: AUTO_RICKSHAW
+ make: Bajaj
+ model: Compact RE
+ registration: KA-01-AD-9876
+ id: O1
+ items:
+ - descriptor:
+ code: RIDE
+ name: Auto Ride
+ category_ids:
+ - C1
+ fulfillment_ids:
+ - F1
+ id: I1
+ location_ids:
+ - L1
+ - L3
+ payment_ids:
+ - PA1
+ price:
+ currency: INR
+ maximum_value: '176'
+ minimum_value: '136'
+ value: '146'
+ tags:
+ - descriptor:
+ code: FARE_POLICY
+ name: Daytime Charges
+ display: true
+ list:
+ - descriptor:
+ code: MIN_FARE
+ value: '30'
+ - descriptor:
+ code: MIN_FARE_DISTANCE_KM
+ value: '2'
+ - descriptor:
+ code: PER_KM_CHARGE
+ value: '15'
+ - descriptor:
+ code: PICKUP_CHARGE
+ value: '10'
+ - descriptor:
+ code: WAITING_CHARGE_PER_MIN
+ value: '2'
+ - descriptor:
+ code: NIGHT_CHARGE_MULTIPLIER
+ value: '1.5'
+ - descriptor:
+ code: NIGHT_SHIFT_START_TIME
+ value: '22:00:00'
+ - descriptor:
+ code: NIGHT_SHIFT_END_TIME
+ value: '05:00:00'
+ - descriptor:
+ code: INFO
+ name: General Information
+ display: true
+ list:
+ - descriptor:
+ code: DISTANCE_TO_NEAREST_DRIVER_METER
+ value: '661'
+ - descriptor:
+ code: ETA_TO_NEAREST_DRIVER_MIN
+ value: '3'
+ - descriptor:
+ code: FEATURE_LIST
+ name: Feature list
+ list:
+ - value: NON_AC
+ - value: LOW_PRICE
+ - value: DOORSTEP_PICK_UP
+ payments:
+ - collected_by: BPP
+ id: PA1
+ status: NOT-PAID
+ type: ON-FULFILLMENT
+ provider:
+ id: P1
+ quote:
+ breakup:
+ - price:
+ currency: INR
+ value: '30'
+ title: BASE_FARE
+ - price:
+ currency: INR
+ value: '116'
+ title: DISTANCE_FARE
+ - price:
+ currency: INR
+ value: '10'
+ title: CANCELLATION_CHARGES
+ - price:
+ currency: INR
+ value: '-146'
+ title: REFUND
+ price:
+ currency: INR
+ value: '10'
+ ttl: PT30S
+ status: SOFT_CANCEL
+ cancellation:
+ cancelled_by: CONSUMER
+ reason:
+ descriptor:
+ code: '000'
+ created_at: '2023-12-10T08:03:34.294Z'
+ updated_at: '2023-12-10T08:03:34.294Z'
+ tags:
+ - descriptor:
+ name: BAP Terms of Engagement
+ code: BAP_TERMS
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: PT60M
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bap.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
+ - descriptor:
+ code: SETTLEMENT_BANK_CODE
+ value: XXXXXXXX
+ - descriptor:
+ code: SETTLEMENT_BANK_ACCOUNT_NUMBER
+ value: xxxxxxxxxxxxxx
+ - descriptor:
+ code: SETTLEMENT_VIRTUAL_PAYMENT_ADDRESS
+ value: 9988199772@okicic
+ - descriptor:
+ code: BPP_TERMS
+ name: BPP Terms of Engagement
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: P2D
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bpp.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
+ - summary: Buyer app confirms the cancel request for ride
+ api: cancel
+ details:
+ - description: Buyer app give the confirmation to cancel the ride.
+ mermaid: |-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ rect rgb(191, 223, 255)
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with confirm_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ end
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ reference: if any
+ example:
+ value:
+ context:
+ action: cancel
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: >-
+ api.beckn.juspay.in/dobpp/beckn/7f7896dd-787e-4a0b-8675-e9e6fe93bb8f
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: 8bbe4998-6243-4ce6-9859-c0f21c06d3db
+ timestamp: '2023-03-23T05:15:08Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+ message:
+ cancellation_reason_id: '000'
+ descriptor:
+ code: CONFIRM_CANCEL
+ name: Ride Cancellation
+ order_id: O1
+ - summary: Provider accepts the terms of cancellation
+ api: on_cancel
+ details:
+ - description: >-
+ Provider accepts the terms of order and provides with latest order
+ update.
+ mermaid: |-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with confirm_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ rect rgb(191, 223, 255)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ end
+ reference: if any
+ example:
+ value:
+ context:
+ action: on_cancel
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: example-bpp.com
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: 8926b747-0362-4fcc-b795-0994a6287700
+ timestamp: '2023-12-10T08:03:34.294Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+ message:
+ order:
+ cancellation_terms:
+ - cancellation_fee:
+ percentage: '0'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ASSIGNED
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '30'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ENROUTE_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '50'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ARRIVED_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ percentage: '100'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_STARTED
+ reason_required: true
+ fulfillments:
+ - agent:
+ contact:
+ phone: '9856798567'
+ person:
+ name: Jason Roy
+ customer:
+ contact:
+ phone: '9876556789'
+ person:
+ name: Joe Adams
+ id: F1
+ state:
+ descriptor:
+ code: RIDE_CANCELLED
+ stops:
+ - authorization:
+ token: '234234'
+ type: OTP
+ valid_to: '2023-12-10T08:05:34.294Z'
+ status: UNCLAIMED
+ location:
+ gps: 13.008935, 77.644408
+ type: START
+ instructions:
+ short_desc: short description of the location
+ long_desc: long description of the location
+ - location:
+ gps: 12.971186, 77.586812
+ type: END
+ tags:
+ - descriptor:
+ code: ROUTE_INFO
+ name: Route Information
+ display: true
+ list:
+ - descriptor:
+ code: ENCODED_POLYLINE
+ name: Path
+ value: _p~iF~ps|U_ulLnnqC_mqNvxq`@
+ - descriptor:
+ code: WAYPOINTS
+ name: Waypoints
+ value: >-
+ [{"gps":"12.909982,
+ 77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,
+ 77.611822"}]
+ type: DELIVERY
+ vehicle:
+ category: AUTO_RICKSHAW
+ variant: AUTO_RICKSHAW
+ make: Bajaj
+ model: Compact RE
+ registration: KA-01-AD-9876
+ id: O1
+ items:
+ - descriptor:
+ code: RIDE
+ name: Auto Ride
+ category_ids:
+ - C1
+ fulfillment_ids:
+ - F1
+ id: I1
+ location_ids:
+ - L1
+ - L3
+ payment_ids:
+ - PA1
+ price:
+ currency: INR
+ maximum_value: '176'
+ minimum_value: '136'
+ value: '146'
+ tags:
+ - descriptor:
+ code: FARE_POLICY
+ name: Daytime Charges
+ display: true
+ list:
+ - descriptor:
+ code: MIN_FARE
+ value: '30'
+ - descriptor:
+ code: MIN_FARE_DISTANCE_KM
+ value: '2'
+ - descriptor:
+ code: PER_KM_CHARGE
+ value: '15'
+ - descriptor:
+ code: PICKUP_CHARGE
+ value: '10'
+ - descriptor:
+ code: WAITING_CHARGE_PER_MIN
+ value: '2'
+ - descriptor:
+ code: NIGHT_CHARGE_MULTIPLIER
+ value: '1.5'
+ - descriptor:
+ code: NIGHT_SHIFT_START_TIME
+ value: '22:00:00'
+ - descriptor:
+ code: NIGHT_SHIFT_END_TIME
+ value: '05:00:00'
+ - descriptor:
+ code: INFO
+ name: General Information
+ display: true
+ list:
+ - descriptor:
+ code: DISTANCE_TO_NEAREST_DRIVER_METER
+ value: '661'
+ - descriptor:
+ code: ETA_TO_NEAREST_DRIVER_MIN
+ value: '3'
+ - descriptor:
+ code: FEATURE_LIST
+ name: Feature list
+ list:
+ - value: NON_AC
+ - value: LOW_PRICE
+ - value: DOORSTEP_PICK_UP
+ payments:
+ - collected_by: BPP
+ id: PA1
+ status: NOT-PAID
+ type: ON-FULFILLMENT
+ provider:
+ id: P1
+ quote:
+ breakup:
+ - price:
+ currency: INR
+ value: '30'
+ title: BASE_FARE
+ - price:
+ currency: INR
+ value: '116'
+ title: DISTANCE_FARE
+ - price:
+ currency: INR
+ value: '10'
+ title: CANCELLATION_CHARGES
+ - price:
+ currency: INR
+ value: '-146'
+ title: REFUND
+ price:
+ currency: INR
+ value: '10'
+ ttl: PT30S
+ status: CANCELLED
+ cancellation:
+ cancelled_by: CONSUMER
+ reason:
+ descriptor:
+ code: '000'
+ created_at: '2023-12-10T08:03:34.294Z'
+ updated_at: '2023-12-10T08:03:34.294Z'
+ tags:
+ - descriptor:
+ name: BAP Terms of Engagement
+ code: BAP_TERMS
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: PT60M
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bap.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
+ - descriptor:
+ code: SETTLEMENT_BANK_CODE
+ value: XXXXXXXX
+ - descriptor:
+ code: SETTLEMENT_BANK_ACCOUNT_NUMBER
+ value: xxxxxxxxxxxxxx
+ - descriptor:
+ code: SETTLEMENT_VIRTUAL_PAYMENT_ADDRESS
+ value: 9988199772@okicic
+ - descriptor:
+ code: BPP_TERMS
+ name: BPP Terms of Engagement
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: P2D
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bpp.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
- summary: Driver not found on on_confirm
references: if any
details:
diff --git a/api/components/docs/changeLog/TRV10_2.1.0_030924.md b/api/components/docs/changeLog/TRV10_2.1.0_030924.md
index 022931df..3819d80f 100644
--- a/api/components/docs/changeLog/TRV10_2.1.0_030924.md
+++ b/api/components/docs/changeLog/TRV10_2.1.0_030924.md
@@ -58,7 +58,7 @@
- Added end location in search call for Purple Tags flow.
- Updated `payments.collected_by` for Ride cancellation by Driver Flow
-****1s Dec 2025****
+****1st Dec 2025****
- Added a new flow for `Female Driver` with optional customer and agent gender fields.
```
"fulfillment": {
@@ -75,5 +75,8 @@
}
```
+****6th March 2026****
+ - Added On-Demand - Technical Cancellation Flow
+
diff --git a/api/components/examples/on-demand/cancel/cancel_request_confirm_cancel.yaml b/api/components/examples/on-demand/cancel/cancel_request_confirm_cancel.yaml
new file mode 100644
index 00000000..6a92f4f7
--- /dev/null
+++ b/api/components/examples/on-demand/cancel/cancel_request_confirm_cancel.yaml
@@ -0,0 +1,23 @@
+context:
+ action: cancel
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: api.beckn.juspay.in/dobpp/beckn/7f7896dd-787e-4a0b-8675-e9e6fe93bb8f
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: 8bbe4998-6243-4ce6-9859-c0f21c06d3db
+ timestamp: '2023-03-23T05:15:08Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+message:
+ cancellation_reason_id: '000'
+ descriptor:
+ code: CONFIRM_CANCEL
+ name: Ride Cancellation
+ order_id: O1
\ No newline at end of file
diff --git a/api/components/examples/on-demand/cancel/cancel_request_soft_cancel.yaml b/api/components/examples/on-demand/cancel/cancel_request_soft_cancel.yaml
new file mode 100644
index 00000000..6f7f035c
--- /dev/null
+++ b/api/components/examples/on-demand/cancel/cancel_request_soft_cancel.yaml
@@ -0,0 +1,23 @@
+context:
+ action: cancel
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: api.beckn.juspay.in/dobpp/beckn/7f7896dd-787e-4a0b-8675-e9e6fe93bb8f
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: 8bbe4998-6243-4ce6-9859-c0f21c06d3db
+ timestamp: '2023-03-23T05:15:08Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+message:
+ cancellation_reason_id: '000'
+ descriptor:
+ code: SOFT_CANCEL
+ name: Ride Cancellation
+ order_id: O1
\ No newline at end of file
diff --git a/api/components/examples/on-demand/on_cancel/on_cancel_request_confirm_cancel.yaml b/api/components/examples/on-demand/on_cancel/on_cancel_request_confirm_cancel.yaml
new file mode 100644
index 00000000..7b22c890
--- /dev/null
+++ b/api/components/examples/on-demand/on_cancel/on_cancel_request_confirm_cancel.yaml
@@ -0,0 +1,281 @@
+context:
+ action: on_cancel
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: example-bpp.com
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: 8926b747-0362-4fcc-b795-0994a6287700
+ timestamp: '2023-12-10T08:03:34.294Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+message:
+ order:
+ cancellation_terms:
+ - cancellation_fee:
+ percentage: '0'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ASSIGNED
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '30'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ENROUTE_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '50'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ARRIVED_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ percentage: '100'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_STARTED
+ reason_required: true
+ fulfillments:
+ - agent:
+ contact:
+ phone: '9856798567'
+ person:
+ name: Jason Roy
+ customer:
+ contact:
+ phone: '9876556789'
+ person:
+ name: Joe Adams
+ id: F1
+ state:
+ descriptor:
+ code: RIDE_CANCELLED
+ stops:
+ - authorization:
+ token: '234234'
+ type: OTP
+ valid_to: '2023-12-10T08:05:34.294Z'
+ status: UNCLAIMED
+ location:
+ gps: 13.008935, 77.644408
+ type: START
+ instructions:
+ short_desc: short description of the location
+ long_desc: long description of the location
+ - location:
+ gps: 12.971186, 77.586812
+ type: END
+ tags:
+ - descriptor:
+ code: ROUTE_INFO
+ name: Route Information
+ display: true
+ list:
+ - descriptor:
+ code: ENCODED_POLYLINE
+ name: Path
+ value: _p~iF~ps|U_ulLnnqC_mqNvxq`@
+ - descriptor:
+ code: WAYPOINTS
+ name: Waypoints
+ value: >-
+ [{"gps":"12.909982,
+ 77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,
+ 77.611822"}]
+ type: DELIVERY
+ vehicle:
+ category: AUTO_RICKSHAW
+ variant: AUTO_RICKSHAW
+ make: Bajaj
+ model: Compact RE
+ registration: KA-01-AD-9876
+ id: O1
+ items:
+ - descriptor:
+ code: RIDE
+ name: Auto Ride
+ category_ids:
+ - 'C1'
+ fulfillment_ids:
+ - F1
+ id: I1
+ location_ids:
+ - L1
+ - L3
+ payment_ids:
+ - PA1
+ price:
+ currency: INR
+ maximum_value: '176'
+ minimum_value: '136'
+ value: '146'
+ tags:
+ - descriptor:
+ code: FARE_POLICY
+ name: Daytime Charges
+ display: true
+ list:
+ - descriptor:
+ code: MIN_FARE
+ value: '30'
+ - descriptor:
+ code: MIN_FARE_DISTANCE_KM
+ value: '2'
+ - descriptor:
+ code: PER_KM_CHARGE
+ value: '15'
+ - descriptor:
+ code: PICKUP_CHARGE
+ value: '10'
+ - descriptor:
+ code: WAITING_CHARGE_PER_MIN
+ value: '2'
+ - descriptor:
+ code: NIGHT_CHARGE_MULTIPLIER
+ value: '1.5'
+ - descriptor:
+ code: NIGHT_SHIFT_START_TIME
+ value: '22:00:00'
+ - descriptor:
+ code: NIGHT_SHIFT_END_TIME
+ value: '05:00:00'
+ - descriptor:
+ code: INFO
+ name: General Information
+ display: true
+ list:
+ - descriptor:
+ code: DISTANCE_TO_NEAREST_DRIVER_METER
+ value: '661'
+ - descriptor:
+ code: ETA_TO_NEAREST_DRIVER_MIN
+ value: '3'
+ - descriptor:
+ code: FEATURE_LIST
+ name: Feature list
+ list:
+ - value: NON_AC
+ - value: LOW_PRICE
+ - value: DOORSTEP_PICK_UP
+ payments:
+ - collected_by: BPP
+ id: PA1
+ status: NOT-PAID
+ type: ON-FULFILLMENT
+ provider:
+ id: P1
+ quote:
+ breakup:
+ - price:
+ currency: INR
+ value: '30'
+ title: BASE_FARE
+ - price:
+ currency: INR
+ value: '116'
+ title: DISTANCE_FARE
+ - price:
+ currency: INR
+ value: '10'
+ title: CANCELLATION_CHARGES
+ - price:
+ currency: INR
+ value: '-146'
+ title: REFUND
+ price:
+ currency: INR
+ value: '10'
+ ttl: PT30S
+ status: CANCELLED
+ cancellation:
+ cancelled_by: CONSUMER
+ reason:
+ descriptor:
+ code: "000"
+ created_at: '2023-12-10T08:03:34.294Z'
+ updated_at: '2023-12-10T08:03:34.294Z'
+ tags:
+ - descriptor:
+ name: BAP Terms of Engagement
+ code: BAP_TERMS
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: PT60M
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bap.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
+ - descriptor:
+ code: SETTLEMENT_BANK_CODE
+ value: 'XXXXXXXX'
+ - descriptor:
+ code: SETTLEMENT_BANK_ACCOUNT_NUMBER
+ value: 'xxxxxxxxxxxxxx'
+ - descriptor:
+ code: SETTLEMENT_VIRTUAL_PAYMENT_ADDRESS
+ value: '9988199772@okicic'
+ - descriptor:
+ code: BPP_TERMS
+ name: BPP Terms of Engagement
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: P2D
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bpp.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
\ No newline at end of file
diff --git a/api/components/examples/on-demand/on_cancel/on_cancel_request_soft_cancel.yaml b/api/components/examples/on-demand/on_cancel/on_cancel_request_soft_cancel.yaml
new file mode 100644
index 00000000..4e1c25d2
--- /dev/null
+++ b/api/components/examples/on-demand/on_cancel/on_cancel_request_soft_cancel.yaml
@@ -0,0 +1,281 @@
+context:
+ action: on_cancel
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: example-bpp.com
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: 8926b747-0362-4fcc-b795-0994a6287700
+ timestamp: '2023-12-10T08:03:34.294Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+message:
+ order:
+ cancellation_terms:
+ - cancellation_fee:
+ percentage: '0'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ASSIGNED
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '30'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ENROUTE_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '50'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ARRIVED_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ percentage: '100'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_STARTED
+ reason_required: true
+ fulfillments:
+ - agent:
+ contact:
+ phone: '9856798567'
+ person:
+ name: Jason Roy
+ customer:
+ contact:
+ phone: '9876556789'
+ person:
+ name: Joe Adams
+ id: F1
+ state:
+ descriptor:
+ code: RIDE_ASSIGNED
+ stops:
+ - authorization:
+ token: '234234'
+ type: OTP
+ valid_to: '2023-12-10T08:05:34.294Z'
+ status: UNCLAIMED
+ location:
+ gps: 13.008935, 77.644408
+ type: START
+ instructions:
+ short_desc: short description of the location
+ long_desc: long description of the location
+ - location:
+ gps: 12.971186, 77.586812
+ type: END
+ tags:
+ - descriptor:
+ code: ROUTE_INFO
+ name: Route Information
+ display: true
+ list:
+ - descriptor:
+ code: ENCODED_POLYLINE
+ name: Path
+ value: _p~iF~ps|U_ulLnnqC_mqNvxq`@
+ - descriptor:
+ code: WAYPOINTS
+ name: Waypoints
+ value: >-
+ [{"gps":"12.909982,
+ 77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,
+ 77.611822"}]
+ type: DELIVERY
+ vehicle:
+ category: AUTO_RICKSHAW
+ variant: AUTO_RICKSHAW
+ make: Bajaj
+ model: Compact RE
+ registration: KA-01-AD-9876
+ id: O1
+ items:
+ - descriptor:
+ code: RIDE
+ name: Auto Ride
+ category_ids:
+ - 'C1'
+ fulfillment_ids:
+ - F1
+ id: I1
+ location_ids:
+ - L1
+ - L3
+ payment_ids:
+ - PA1
+ price:
+ currency: INR
+ maximum_value: '176'
+ minimum_value: '136'
+ value: '146'
+ tags:
+ - descriptor:
+ code: FARE_POLICY
+ name: Daytime Charges
+ display: true
+ list:
+ - descriptor:
+ code: MIN_FARE
+ value: '30'
+ - descriptor:
+ code: MIN_FARE_DISTANCE_KM
+ value: '2'
+ - descriptor:
+ code: PER_KM_CHARGE
+ value: '15'
+ - descriptor:
+ code: PICKUP_CHARGE
+ value: '10'
+ - descriptor:
+ code: WAITING_CHARGE_PER_MIN
+ value: '2'
+ - descriptor:
+ code: NIGHT_CHARGE_MULTIPLIER
+ value: '1.5'
+ - descriptor:
+ code: NIGHT_SHIFT_START_TIME
+ value: '22:00:00'
+ - descriptor:
+ code: NIGHT_SHIFT_END_TIME
+ value: '05:00:00'
+ - descriptor:
+ code: INFO
+ name: General Information
+ display: true
+ list:
+ - descriptor:
+ code: DISTANCE_TO_NEAREST_DRIVER_METER
+ value: '661'
+ - descriptor:
+ code: ETA_TO_NEAREST_DRIVER_MIN
+ value: '3'
+ - descriptor:
+ code: FEATURE_LIST
+ name: Feature list
+ list:
+ - value: NON_AC
+ - value: LOW_PRICE
+ - value: DOORSTEP_PICK_UP
+ payments:
+ - collected_by: BPP
+ id: PA1
+ status: NOT-PAID
+ type: ON-FULFILLMENT
+ provider:
+ id: P1
+ quote:
+ breakup:
+ - price:
+ currency: INR
+ value: '30'
+ title: BASE_FARE
+ - price:
+ currency: INR
+ value: '116'
+ title: DISTANCE_FARE
+ - price:
+ currency: INR
+ value: '10'
+ title: CANCELLATION_CHARGES
+ - price:
+ currency: INR
+ value: '-146'
+ title: REFUND
+ price:
+ currency: INR
+ value: '10'
+ ttl: PT30S
+ status: SOFT_CANCEL
+ cancellation:
+ cancelled_by: CONSUMER
+ reason:
+ descriptor:
+ code: "000"
+ created_at: '2023-12-10T08:03:34.294Z'
+ updated_at: '2023-12-10T08:03:34.294Z'
+ tags:
+ - descriptor:
+ name: BAP Terms of Engagement
+ code: BAP_TERMS
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: PT60M
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bap.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
+ - descriptor:
+ code: SETTLEMENT_BANK_CODE
+ value: 'XXXXXXXX'
+ - descriptor:
+ code: SETTLEMENT_BANK_ACCOUNT_NUMBER
+ value: 'xxxxxxxxxxxxxx'
+ - descriptor:
+ code: SETTLEMENT_VIRTUAL_PAYMENT_ADDRESS
+ value: '9988199772@okicic'
+ - descriptor:
+ code: BPP_TERMS
+ name: BPP Terms of Engagement
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: P2D
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bpp.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
\ No newline at end of file
diff --git a/api/components/examples/on-demand/on_status/on_status_request_technical_cancel_1.yaml b/api/components/examples/on-demand/on_status/on_status_request_technical_cancel_1.yaml
new file mode 100644
index 00000000..a011edf4
--- /dev/null
+++ b/api/components/examples/on-demand/on_status/on_status_request_technical_cancel_1.yaml
@@ -0,0 +1,268 @@
+context:
+ action: on_status
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: example-bpp.com
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: 8926b747-0362-4fcc-b795-0994a6287700
+ timestamp: '2023-12-10T08:03:34.294Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+message:
+ order:
+ cancellation_terms:
+ - cancellation_fee:
+ percentage: '0'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ASSIGNED
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '30'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ENROUTE_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ amount:
+ currency: INR
+ value: '50'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_ARRIVED_PICKUP
+ reason_required: true
+ - cancellation_fee:
+ percentage: '100'
+ fulfillment_state:
+ descriptor:
+ code: RIDE_STARTED
+ reason_required: true
+ fulfillments:
+ - agent:
+ contact:
+ phone: '9856798567'
+ person:
+ name: Jason Roy
+ customer:
+ contact:
+ phone: '9876556789'
+ person:
+ name: Joe Adams
+ id: F1
+ state:
+ descriptor:
+ code: RIDE_ASSIGNED
+ stops:
+ - authorization:
+ token: '234234'
+ type: OTP
+ valid_to: '2023-12-10T08:05:34.294Z'
+ status: UNCLAIMED
+ location:
+ gps: 13.008935, 77.644408
+ type: START
+ instructions:
+ short_desc: short description of the location
+ long_desc: long description of the location
+ - location:
+ gps: 12.971186, 77.586812
+ type: END
+ tags:
+ - descriptor:
+ code: ROUTE_INFO
+ name: Route Information
+ display: true
+ list:
+ - descriptor:
+ code: ENCODED_POLYLINE
+ name: Path
+ value: _p~iF~ps|U_ulLnnqC_mqNvxq`@
+ - descriptor:
+ code: WAYPOINTS
+ name: Waypoints
+ value: >-
+ [{"gps":"12.909982,
+ 77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,77.611822"},{"gps":"12.909982,
+ 77.611822"}]
+ type: DELIVERY
+ vehicle:
+ category: AUTO_RICKSHAW
+ variant: AUTO_RICKSHAW
+ make: Bajaj
+ model: Compact RE
+ registration: KA-01-AD-9876
+ id: O1
+ items:
+ - descriptor:
+ code: RIDE
+ name: Auto Ride
+ category_ids:
+ - 'C1'
+ fulfillment_ids:
+ - F1
+ id: I1
+ location_ids:
+ - L1
+ - L3
+ payment_ids:
+ - PA1
+ price:
+ currency: INR
+ maximum_value: '176'
+ minimum_value: '136'
+ value: '146'
+ tags:
+ - descriptor:
+ code: FARE_POLICY
+ name: Daytime Charges
+ display: true
+ list:
+ - descriptor:
+ code: MIN_FARE
+ value: '30'
+ - descriptor:
+ code: MIN_FARE_DISTANCE_KM
+ value: '2'
+ - descriptor:
+ code: PER_KM_CHARGE
+ value: '15'
+ - descriptor:
+ code: PICKUP_CHARGE
+ value: '10'
+ - descriptor:
+ code: WAITING_CHARGE_PER_MIN
+ value: '2'
+ - descriptor:
+ code: NIGHT_CHARGE_MULTIPLIER
+ value: '1.5'
+ - descriptor:
+ code: NIGHT_SHIFT_START_TIME
+ value: '22:00:00'
+ - descriptor:
+ code: NIGHT_SHIFT_END_TIME
+ value: '05:00:00'
+ - descriptor:
+ code: INFO
+ name: General Information
+ display: true
+ list:
+ - descriptor:
+ code: DISTANCE_TO_NEAREST_DRIVER_METER
+ value: '661'
+ - descriptor:
+ code: ETA_TO_NEAREST_DRIVER_MIN
+ value: '3'
+ - descriptor:
+ code: FEATURE_LIST
+ name: Feature list
+ list:
+ - value: NON_AC
+ - value: LOW_PRICE
+ - value: DOORSTEP_PICK_UP
+ payments:
+ - collected_by: BPP
+ id: PA1
+ status: NOT-PAID
+ type: ON-FULFILLMENT
+ provider:
+ id: P1
+ quote:
+ breakup:
+ - price:
+ currency: INR
+ value: '30'
+ title: BASE_FARE
+ - price:
+ currency: INR
+ value: '116'
+ title: DISTANCE_FARE
+ price:
+ currency: INR
+ value: '146'
+ ttl: PT30S
+ status: ACTIVE
+ created_at: '2023-12-10T08:03:34.294Z'
+ updated_at: '2023-12-10T08:03:34.294Z'
+ tags:
+ - descriptor:
+ name: BAP Terms of Engagement
+ code: BAP_TERMS
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: PT60M
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bap.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
+ - descriptor:
+ code: SETTLEMENT_BANK_CODE
+ value: 'XXXXXXXX'
+ - descriptor:
+ code: SETTLEMENT_BANK_ACCOUNT_NUMBER
+ value: 'xxxxxxxxxxxxxx'
+ - descriptor:
+ code: SETTLEMENT_VIRTUAL_PAYMENT_ADDRESS
+ value: '9988199772@okicic'
+ - descriptor:
+ code: BPP_TERMS
+ name: BPP Terms of Engagement
+ display: false
+ list:
+ - descriptor:
+ code: BUYER_FINDER_FEES_PERCENTAGE
+ value: '1'
+ - descriptor:
+ code: DELAY_INTEREST
+ value: '5'
+ - descriptor:
+ code: SETTLEMENT_TYPE
+ value: UPI
+ - descriptor:
+ code: SETTLEMENT_WINDOW
+ value: P2D
+ - descriptor:
+ code: SETTLEMENT_BASIS
+ value: DELIVERY
+ - descriptor:
+ code: MANDATORY_ARBITRATION
+ value: 'true'
+ - descriptor:
+ code: COURT_JURISDICTION
+ value: New Delhi
+ - descriptor:
+ code: STATIC_TERMS
+ value: https://example-test-bpp.com/static-terms.txt
+ - descriptor:
+ code: SETTLEMENT_AMOUNT
+ value: '1.46'
\ No newline at end of file
diff --git a/api/components/examples/on-demand/status/status_request_technical_cancel_1.yaml b/api/components/examples/on-demand/status/status_request_technical_cancel_1.yaml
new file mode 100644
index 00000000..2d5c1f9e
--- /dev/null
+++ b/api/components/examples/on-demand/status/status_request_technical_cancel_1.yaml
@@ -0,0 +1,19 @@
+context:
+ action: status
+ bap_id: example-bap.com
+ bap_uri: https://example-bap.com/prod/trv10
+ bpp_id: example-bpp.com
+ bpp_uri: https://example-bpp.com/prod/seller
+ domain: ONDC:TRV10
+ location:
+ city:
+ code: std:080
+ country:
+ code: IND
+ message_id: d883e7f9-f6bc-4ddf-b64c-a2bc44e63ae2
+ timestamp: '2023-03-23T04:48:53Z'
+ transaction_id: 870782be-6757-43f1-945c-8eeaf9536259
+ ttl: PT30S
+ version: 2.1.0
+message:
+ ref_id: 870782be-6757-43f1-945c-8eeaf9536259
\ No newline at end of file
diff --git a/api/components/flows/index.yaml b/api/components/flows/index.yaml
index 4595dd1f..e2195abc 100644
--- a/api/components/flows/index.yaml
+++ b/api/components/flows/index.yaml
@@ -6,6 +6,7 @@
- $ref: ./on_driver_female_flow/index.yaml
- $ref: ./on_demand___ride_cancellation_by_driver/index.yaml
- $ref: ./on_demand___ride_cancellation_by_rider/index.yaml
+- $ref: ./on_demand_technical_cancellation/index.yaml
- $ref: ./Driver-not-found-on-on_confirm/index.yaml
- $ref: ./Driver-not-found-post-on_confirm/index.yaml
- $ref: ./on_demand___add_stop_for_given_ride/index.yaml
diff --git a/api/components/flows/on_demand_technical_cancellation/index.yaml b/api/components/flows/on_demand_technical_cancellation/index.yaml
new file mode 100644
index 00000000..713ec42f
--- /dev/null
+++ b/api/components/flows/on_demand_technical_cancellation/index.yaml
@@ -0,0 +1,161 @@
+summary: On-Demand - Technical Cancellation Flow
+details:
+ - description: Detailed process of cancelling a ride with soft & confirm status.
+ mermaid: >-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_confirm
+ Buyer Platform (BAP)-->>Seller Platform (BPP): NACK
+ Buyer Platform (BAP)->>Seller Platform (BPP): status
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_status
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with soft_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with confirm_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+reference: if any
+steps:
+ - summary: Provider confirms the request
+ api: on_confirm
+ details:
+ - description: The provider has confirmed the request, but the buyer app received the request after the TTL had expired.
+ mermaid: >-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ rect rgb(191, 223, 255)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_confirm
+ Buyer Platform (BAP)-->>Seller Platform (BPP): NACK
+ end
+ Buyer Platform (BAP)->>Seller Platform (BPP): status
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_status
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ reference: if any
+ example:
+ value:
+ $ref: "../../examples/on-demand/on_confirm/Return_confirmed_order_with_latest_fulfillment_details___X10.yaml"
+
+ - summary: Buyer app request for latest order status
+ api: status
+ details:
+ - description: Buyer app request for latest order status
+ mermaid: >-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_confirm
+ Buyer Platform (BAP)-->>Seller Platform (BPP): NACK
+ rect rgb(191, 223, 255)
+ Buyer Platform (BAP)->>Seller Platform (BPP): status
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ end
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_status
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ reference: if any
+ example:
+ value:
+ $ref: "../../examples/on-demand/status/status_request_technical_cancel_1.yaml"
+ - summary: Provider sends the latest order status
+ api: on_status
+ details:
+ - description: Provider sends the latest order status
+ mermaid: >-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_confirm
+ Buyer Platform (BAP)-->>Seller Platform (BPP): NACK
+ Buyer Platform (BAP)->>Seller Platform (BPP): status
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ rect rgb(191, 223, 255)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_status
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ end
+ reference: if any
+ example:
+ value:
+ $ref: "../../examples/on-demand/on_status/on_status_request_technical_cancel_1.yaml"
+
+
+
+
+ - summary: Buyer app cancels the request for ride
+ api: cancel
+ details:
+ - description: Buyer app requests for cancellation of ride.
+ mermaid: >-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ rect rgb(191, 223, 255)
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with soft_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ end
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ reference: if any
+ example:
+ value:
+ $ref: "../../examples/on-demand/cancel/cancel_request_soft_cancel.yaml"
+ - summary: Provider accepts/appends the terms of cancellation
+ api: on_cancel
+ details:
+ - description: Provider accepts the terms of order and appends its own terms and provides with latest order update.
+ mermaid: >-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with soft_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ rect rgb(191, 223, 255)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ end
+ reference: if any
+ example:
+ value:
+ $ref: "../../examples/on-demand/on_cancel/on_cancel_request_soft_cancel.yaml"
+
+ - summary: Buyer app confirms the cancel request for ride
+ api: cancel
+ details:
+ - description: Buyer app give the confirmation to cancel the ride.
+ mermaid: >-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ rect rgb(191, 223, 255)
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with confirm_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ end
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ reference: if any
+ example:
+ value:
+ $ref: "../../examples/on-demand/cancel/cancel_request_confirm_cancel.yaml"
+ - summary: Provider accepts the terms of cancellation
+ api: on_cancel
+ details:
+ - description: Provider accepts the terms of order and provides with latest order update.
+ mermaid: >-
+ sequenceDiagram
+ participant Buyer Platform (BAP)
+ participant Seller Platform (BPP)
+ Buyer Platform (BAP)->>Seller Platform (BPP): cancel - with confirm_cancel request
+ Seller Platform (BPP)-->>Buyer Platform (BAP):ACK
+ rect rgb(191, 223, 255)
+ Seller Platform (BPP)->>Buyer Platform (BAP):on_cancel
+ Buyer Platform (BAP)-->>Seller Platform (BPP): ACK
+ end
+ reference: if any
+ example:
+ value:
+ $ref: "../../examples/on-demand/on_cancel/on_cancel_request_confirm_cancel.yaml"
\ No newline at end of file
diff --git a/ui/build.js b/ui/build.js
index f69bb38d..cce00b32 100644
--- a/ui/build.js
+++ b/ui/build.js
@@ -1 +1 @@
-let build_spec = {"openapi":"3.0.0","info":{"title":"ONDC Specification","description":"ONDC Specification","version":"2.0.0"},"security":[{"SubscriberAuth":[]}],"paths":{"/search":{"post":{"tags":["Provider Platform","Gateway"],"description":"Consumer Platform declares the customer's intent to buy/avail products or services","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"properties":{"action":{"enum":["search"]}}}]},"message":{"type":"object","additionalProperties":false,"properties":{"intent":{"$ref":"#/components/schemas/Intent"}}}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/select":{"post":{"tags":["Provider Platform"],"description":"Consumer Platform declares the customer's cart (or equivalent) created by selecting objects from the catalog","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["select"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order":{"$ref":"#/components/schemas/Order"}},"required":["order"]}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/init":{"post":{"tags":["Provider Platform"],"description":"Initialize an order by providing billing and/or shipping details","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["init"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order":{"$ref":"#/components/schemas/Order"}},"required":["order"]}},"required":["context","message"]}}}},"responses":{"default":{"description":"Acknowledgement of message received after successful validation of schema and signature","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"object","properties":{"ack":{"allOf":[{"$ref":"#/components/schemas/Ack"},{"type":"object"},{"properties":{"status":{"enum":["ACK","NACK"]}}}]}},"required":["ack"]},"error":{"$ref":"#/components/schemas/Error"}},"required":["message"]}}}}}}},"/confirm":{"post":{"tags":["Provider Platform"],"description":"Initialize an order by providing billing and/or shipping details","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["confirm"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order":{"$ref":"#/components/schemas/Order"}},"required":["order"]}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/status":{"post":{"tags":["Provider Platform"],"description":"Fetch the latest order object","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["status"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"ref_id":{"$ref":"#/components/schemas/Order/properties/id"},"order_id":{"$ref":"#/components/schemas/Order/properties/id"}}}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/track":{"post":{"tags":["Provider Platform"],"description":"Track an active order","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["track"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order_id":{"$ref":"#/components/schemas/Order/properties/id"},"callback_url":{"type":"string","format":"uri"}},"required":["order_id"]}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/cancel":{"post":{"tags":["Provider Platform"],"description":"Cancel an order","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["cancel"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order_id":{"$ref":"#/components/schemas/Order/properties/id"},"cancellation_reason_id":{"$ref":"#/components/schemas/Option/properties/id"},"descriptor":{"$ref":"#/components/schemas/Descriptor"}},"required":["order_id"]}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/update":{"post":{"tags":["Provider Platform"],"description":"Remove object","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["update"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"update_target":{"description":"Comma separated values of order objects being updated. For example: ```\"update_target\":\"item,billing,fulfillment\"```","type":"string"},"order":{"description":"Updated order object","allOf":[{"$ref":"#/components/schemas/Order"}]}},"required":["update_target","order"]}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/rating":{"post":{"tags":["Provider Platform"],"description":"Provide feedback on a service","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["rating"]}},"required":["action"]}]},"message":{"type":"object","properties":{"order_id":{"$ref":"#/components/schemas/Order/properties/id"},"ratings":{"type":"array","items":{"$ref":"#/components/schemas/Rating"}}}}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/support":{"post":{"tags":["Provider Platform"],"description":"Contact support","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["support"]}},"required":["action"]}]},"message":{"type":"object","properties":{"support":{"$ref":"#/components/schemas/Support"}}}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/on_search":{"post":{"tags":["Consumer Platform"],"description":"Provider Platform sends its catalog in response to a search request.","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["on_search"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"catalog":{"$ref":"#/components/schemas/Catalog"}},"required":["catalog"]},"error":{"$ref":"#/components/schemas/Error"}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/on_select":{"post":{"tags":["Consumer Platform"],"description":"Send draft order object with quoted price for selected items","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["on_select"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order":{"$ref":"#/components/schemas/Order"}}},"error":{"$ref":"#/components/schemas/Error"}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/on_init":{"post":{"tags":["Consumer Platform"],"description":"Send order object with payment details updated","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["on_init"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order":{"$ref":"#/components/schemas/Order"}},"required":["order"]},"error":{"$ref":"#/components/schemas/Error"}},"required":["context"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/on_confirm":{"post":{"tags":["Consumer Platform"],"description":"Send active order object","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["on_confirm"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order":{"$ref":"#/components/schemas/Order"}},"required":["order"]},"error":{"$ref":"#/components/schemas/Error"}},"required":["context"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/on_track":{"post":{"tags":["Consumer Platform"],"description":"Send tracking details of an active order","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["on_track"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"tracking":{"$ref":"#/components/schemas/Tracking"}},"required":["tracking"]},"error":{"$ref":"#/components/schemas/Error"}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/on_cancel":{"post":{"tags":["Consumer Platform"],"description":"Send cancellation request_id with reasons list in case of cancellation request. Else send cancelled order object","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["on_cancel"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order":{"$ref":"#/components/schemas/Order"}},"required":["order"]},"error":{"$ref":"#/components/schemas/Error"}},"required":["context"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/on_update":{"post":{"tags":["Consumer Platform"],"description":"Returns updated service with updated runtime object","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["on_update"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order":{"$ref":"#/components/schemas/Order"}},"required":["order"]},"error":{"$ref":"#/components/schemas/Error"}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/on_status":{"post":{"tags":["Consumer Platform"],"description":"Fetch the status of a Service","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["on_status"]}},"required":["action"]}]},"message":{"type":"object","additionalProperties":false,"properties":{"order":{"$ref":"#/components/schemas/Order"}},"required":["order"]},"error":{"$ref":"#/components/schemas/Error"}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/on_rating":{"post":{"tags":["Consumer Platform"],"description":"Provide feedback on a service","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["on_rating"]}},"required":["action"]}]},"message":{"type":"object","properties":{"order_id":{"$ref":"#/components/schemas/Order/properties/id"},"ratings":{"type":"array","items":{"$ref":"#/components/schemas/Rating"}}}},"error":{"$ref":"#/components/schemas/Error"}},"required":["context"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}},"/on_support":{"post":{"tags":["Consumer Platform"],"description":"Contact Support","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"context":{"allOf":[{"$ref":"#/components/schemas/Context"},{"type":"object","properties":{"action":{"enum":["on_support"]}},"required":["action"]}]},"message":{"type":"object","properties":{"support":{"$ref":"#/components/schemas/Support"}}},"error":{"$ref":"#/components/schemas/Error"}},"required":["context","message"]}}}},"responses":{"default":{"$ref":"#/paths/~1init/post/responses/default"}}}}},"components":{"securitySchemes":{"SubscriberAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Signature of message body using Consumer Platform or Provider Platform subscriber's signing public key.
Format:Authorization : Signature keyId=\"{subscriber_id}|{unique_key_id}|{algorithm}\",algorithm=\"ed25519\",created=\"1606970629\",expires=\"1607030629\",headers=\"(created) (expires) digest\",signature=\"Base64(signing string)\""}},"schemas":{"Ack":{"description":"Describes the acknowledgement sent in response to an API call. If the implementation uses HTTP/S, then Ack must be returned in the same session. Every API call to a BPP must be responded to with an Ack whether the BPP intends to respond with a callback or not. This has one property called `status` that indicates the status of the Acknowledgement.","type":"object","additionalProperties":false,"properties":{"status":{"type":"string","description":"The status of the acknowledgement. If the request passes the validation criteria of the BPP, then this is set to ACK. If a BPP responds with status = `ACK` to a request, it is required to respond with a callback. If the request fails the validation criteria, then this is set to NACK. Additionally, if a BPP does not intend to respond with a callback even after the request meets the validation criteria, it should set this value to `NACK`.","enum":["ACK","NACK"]},"tags":{"description":"A list of tags containing any additional information sent along with the Acknowledgement.","type":"array","items":{"$ref":"#/components/schemas/TagGroup"}}}},"AddOn":{"description":"Describes an additional item offered as a value-addition to a product or service. This does not exist independently in a catalog and is always associated with an item.","type":"object","additionalProperties":false,"properties":{"id":{"description":"Provider-defined ID of the add-on","type":"string"},"descriptor":{"$ref":"#/components/schemas/Descriptor"},"price":{"$ref":"#/components/schemas/Price"},"quantity":{"$ref":"#/components/schemas/ItemQuantity"}}},"Address":{"description":"Describes a postal address.","type":"string"},"Agent":{"description":"Describes the direct performer, driver or executor that fulfills an order. It is usually a person. But in some rare cases, it could be a non-living entity like a drone, or a bot. Some examples of agents are Doctor in the healthcare sector, a driver in the mobility sector, or a delivery person in the logistics sector. This object can be set at any stage of the order lifecycle. This can be set at the discovery stage when the BPP wants to provide details on the agent fulfilling the order, like in healthcare, where the doctor's name appears during search. This object can also used to search for a particular person that the customer wants fulfilling an order. Sometimes, this object gets instantiated after the order is confirmed, like in the case of on-demand taxis, where the driver is assigned after the user confirms the ride.","type":"object","additionalProperties":false,"properties":{"person":{"$ref":"#/components/schemas/Person"},"contact":{"$ref":"#/components/schemas/Contact"},"organization":{"$ref":"#/components/schemas/Organization"},"rating":{"$ref":"#/components/schemas/Rating/properties/value"}}},"Authorization":{"description":"Describes an authorization mechanism used to start or end the fulfillment of an order. For example, in the mobility sector, the driver may require a one-time password to initiate the ride. In the healthcare sector, a patient may need to provide a password to open a video conference link during a teleconsultation.","type":"object","additionalProperties":false,"properties":{"type":{"description":"Type of authorization mechanism used. The allowed values for this field can be published as part of the network policy.","type":"string"},"token":{"description":"Token used for authorization. This is typically generated at the BPP. The BAP can send this value to the user via any channel that it uses to authenticate the user like SMS, Email, Push notification, or in-app rendering.","type":"string"},"valid_from":{"description":"Timestamp in RFC3339 format from which token is valid","type":"string","format":"date-time"},"valid_to":{"description":"Timestamp in RFC3339 format until which token is valid","type":"string","format":"date-time"},"status":{"description":"Status of the token","type":"string"}}},"Billing":{"description":"Describes the billing details of an entity.
This has properties like name,organization,address,email,phone,time,tax_number, created_at,updated_at","type":"object","additionalProperties":false,"properties":{"name":{"description":"Name of the billable entity","type":"string"},"organization":{"description":"Details of the organization being billed.","allOf":[{"$ref":"#/components/schemas/Organization"}]},"address":{"description":"The address of the billable entity","allOf":[{"$ref":"#/components/schemas/Address"}]},"state":{"description":"The state where the billable entity resides. This is important for state-level tax calculation","allOf":[{"$ref":"#/components/schemas/State"}]},"city":{"description":"The city where the billable entity resides.","allOf":[{"$ref":"#/components/schemas/City"}]},"email":{"description":"Email address where the bill is sent to","type":"string","format":"email"},"phone":{"description":"Phone number of the billable entity","type":"string"},"time":{"description":"Details regarding the billing period","allOf":[{"$ref":"#/components/schemas/Time"}]},"tax_id":{"description":"ID of the billable entity as recognized by the taxation authority","type":"string"}}},"Cancellation":{"description":"Describes a cancellation event","type":"object","additionalProperties":false,"properties":{"time":{"description":"Date-time when the order was cancelled by the buyer","type":"string","format":"date-time"},"cancelled_by":{"type":"string","enum":["CONSUMER","PROVIDER"]},"reason":{"description":"The reason for cancellation","allOf":[{"$ref":"#/components/schemas/Option"}]},"additional_description":{"description":"Any additional information regarding the nature of cancellation","allOf":[{"$ref":"#/components/schemas/Descriptor"}]}}},"CancellationTerm":{"description":"Describes the cancellation terms of an item or an order. This can be referenced at an item or order level. Item-level cancellation terms can override the terms at the order level.","type":"object","additionalProperties":false,"properties":{"fulfillment_state":{"description":"The state of fulfillment during which this term is applicable.","allOf":[{"$ref":"#/components/schemas/FulfillmentState"}]},"reason_required":{"description":"Indicates whether a reason is required to cancel the order","type":"boolean"},"cancel_by":{"description":"Information related to the time of cancellation.","allOf":[{"$ref":"#/components/schemas/Time"}]},"cancellation_fee":{"$ref":"#/components/schemas/Fee"},"xinput":{"$ref":"#/components/schemas/XInput"},"external_ref":{"$ref":"#/components/schemas/MediaFile"},"cancellation_eligible":{"description":"Indicates if cancellation is eligible","type":"boolean"}}},"Catalog":{"description":"Describes the products or services offered by a BPP. This is typically sent as the response to a search intent from a BAP. The payment terms, offers and terms of fulfillment supported by the BPP can also be included here. The BPP can show hierarchical nature of products/services in its catalog using the parent_category_id in categories. The BPP can also send a ttl (time to live) in the context which is the duration for which a BAP can cache the catalog and use the cached catalog.
This has properties like bbp/descriptor,bbp/categories,bbp/fulfillments,bbp/payments,bbp/offers,bbp/providers and exp
This is used in the following situations.