@@ -2031,6 +2031,7 @@ components:
20312031 messageLength :
20322032 type : integer
20332033 description : The length of the message content.
2034+ nullable : true
20342035 example : 18
20352036 attachmentCount :
20362037 type : integer
@@ -2620,14 +2621,13 @@ components:
26202621 type : string
26212622 description : Displayed text for user to click
26222623 maxLength : 25
2623- example : Hello world
2624+ example : Track my order
26242625 rbmActionPostbackData :
26252626 title : Post Back Data
26262627 type : string
2627- format : byte
2628- description : Base64 payload the customer receives when the reply is clicked.
2628+ description : Payload the customer receives when the reply is clicked.
26292629 maxLength : 2048
2630- example : SGVsbG8gd29ybGQ=
2630+ example : track-order-43654
26312631 rbmActionBase :
26322632 type : object
26332633 properties :
@@ -2916,8 +2916,8 @@ components:
29162916 properties :
29172917 text :
29182918 type : string
2919- description : The text associated with the suggestion response .
2920- example : Yes, I would like to proceed
2919+ description : The text of the suggestion the user tapped .
2920+ example : Track my order
29212921 postbackData :
29222922 $ref : ' #/components/schemas/rbmActionPostbackData'
29232923 pairedMessageId :
@@ -2938,6 +2938,70 @@ components:
29382938 format : double
29392939 description : The longitude of the client's location.
29402940 example : ' -122.4194'
2941+ rbmSession :
2942+ type : object
2943+ description : >-
2944+ RCS interactive session information for the message.
2945+
2946+ An interactive session is a 24-hour window covering all Rich and Rich
2947+ Media messages exchanged between an
2948+
2949+ RCS agent and a specific end user mobile number. It is triggered when at
2950+ least 4 messages are exchanged within
2951+
2952+ 24 hours, at least 2 of them mobile-originated and at least 1
2953+ mobile-terminated.
2954+
2955+ Only present on `message-delivered`, `message-received` and
2956+ `session-started` callbacks for RBM messages of
2957+
2958+ US agents with the Conversational billing category. Omitted for all
2959+ other messages.
2960+ properties :
2961+ canInitiate :
2962+ type : boolean
2963+ description : >-
2964+ Whether the message can start an interactive session.
2965+
2966+ `false` if the message is already part of an active session, or if
2967+ the agent is not eligible for
2968+
2969+ interactive session billing.
2970+ example : false
2971+ id :
2972+ type : string
2973+ nullable : true
2974+ description : >-
2975+ The unique identifier of the interactive session the message is part
2976+ of. This is not a message ID.
2977+
2978+ Omitted if the message is not part of a session.
2979+ example : 0f5a3b9c-2d4e-4f6a-8b1c-7e9d0a2b3c4d
2980+ type :
2981+ type : string
2982+ nullable : true
2983+ description : |-
2984+ The type of the interactive session.
2985+ Only present on `session-started` callbacks.
2986+ example : INTERACTIVE_SESSION
2987+ startTime :
2988+ type : string
2989+ nullable : true
2990+ format : date-time
2991+ description : >-
2992+ The time the 24-hour session window opened. Only present on
2993+ `session-started` callbacks.
2994+ example : ' 2026-08-06T09:59:55Z'
2995+ endTime :
2996+ type : string
2997+ nullable : true
2998+ format : date-time
2999+ description : >-
3000+ The time the 24-hour session window closes. Only present on
3001+ `session-started` callbacks.
3002+ example : ' 2026-08-07T09:59:55Z'
3003+ required :
3004+ - canInitiate
29413005 callback :
29423006 description : >-
29433007 Callbacks are divided into two types based on direction of the related
@@ -2960,6 +3024,7 @@ components:
29603024 message-delivered : ' #/components/schemas/statusCallback'
29613025 message-failed : ' #/components/schemas/statusCallback'
29623026 message-read : ' #/components/schemas/statusCallback'
3027+ session-started : ' #/components/schemas/statusCallback'
29633028 message-received : ' #/components/schemas/inboundCallback'
29643029 requested-location-response : ' #/components/schemas/inboundCallback'
29653030 suggestion-response : ' #/components/schemas/inboundCallback'
@@ -3060,12 +3125,17 @@ components:
30603125
30613126 - `message-read` indicates that the RBM message was read by the
30623127 recipient.
3128+
3129+ - `session-started` indicates that a previously exchanged RBM message is
3130+ now part of an RCS interactive session and is no longer billed
3131+ individually.
30633132 enum :
30643133 - message-sending
30653134 - message-sent
30663135 - message-delivered
30673136 - message-failed
30683137 - message-read
3138+ - session-started
30693139 example : message-delivered
30703140 inboundCallbackTypeEnum :
30713141 type : string
@@ -3143,6 +3213,8 @@ components:
31433213 $ref : ' #/components/schemas/priorityEnum'
31443214 channel :
31453215 $ref : ' #/components/schemas/multiChannelMessageChannelEnum'
3216+ session :
3217+ $ref : ' #/components/schemas/rbmSession'
31463218 required :
31473219 - id
31483220 - owner
@@ -4876,6 +4948,10 @@ components:
48764948 $ref : ' #/components/schemas/sipCallId'
48774949 sipResponseCode :
48784950 $ref : ' #/components/schemas/sipResponseCode'
4951+ sipStatusLine :
4952+ $ref : ' #/components/schemas/sipStatusLine'
4953+ sipHeaders :
4954+ $ref : ' #/components/schemas/sipHeaders'
48794955 dtmfCallback :
48804956 type : object
48814957 description : >-
@@ -5395,6 +5471,12 @@ components:
53955471 $ref : ' #/components/schemas/errorMessage'
53965472 errorId :
53975473 $ref : ' #/components/schemas/errorId'
5474+ sipResponseCode :
5475+ $ref : ' #/components/schemas/sipResponseCode'
5476+ sipStatusLine :
5477+ $ref : ' #/components/schemas/sipStatusLine'
5478+ sipHeaders :
5479+ $ref : ' #/components/schemas/sipHeaders'
53985480 eventType :
53995481 type : string
54005482 description : >-
@@ -5710,23 +5792,44 @@ components:
57105792 additionalProperties :
57115793 type : string
57125794 description : >-
5713- (optional) Map of customer-supplied X-* headers from the original
5714- INVITE. Keys are lowercase (SIP headers are case-insensitive). Present
5715- only for inbound SIP URI calls with custom headers. Note - keys preserve
5716- the original SIP header name in lowercase rather than Bandwidth's usual
5717- camelCase JSON convention, since these are passthrough values from the
5718- caller's SIP INVITE, not Bandwidth-defined fields. If the same header
5719- name is sent more than once in the INVITE, only the last value is kept.
5795+ (optional) Map of SIP headers, with lowercase keys (SIP headers are
5796+ case-insensitive). On the Initiate callback, contains the
5797+ customer-supplied X-* headers from the original INVITE; present only for
5798+ inbound SIP URI calls with custom headers. On the Disconnect and
5799+ Transfer Disconnect callbacks, contains a single `reason` key holding
5800+ the raw, unmodified `Reason` header value from the final SIP response
5801+ that rejected an outbound call (or transferred leg); present only when
5802+ that response included a `Reason` header (for example, `v=analytics1`
5803+ call-analytics block information from a terminating carrier). If the
5804+ response carries more than one `Reason` header, all values are returned
5805+ in the order received, separated by `, `. Note - on the Initiate
5806+ callback, keys preserve the original SIP header name in lowercase rather
5807+ than Bandwidth's usual camelCase JSON convention, since these are
5808+ passthrough values from the caller's SIP INVITE, not Bandwidth-defined
5809+ fields. If the same header name is sent more than once in the INVITE,
5810+ only the last value is kept. The example shown is for the Initiate
5811+ callback; on the Disconnect and Transfer Disconnect callbacks the only
5812+ key is `reason`.
57205813 example :
57215814 x-custom-header : customer-value
57225815 x-session-id : sess-12345
57235816 sipResponseCode :
57245817 type : integer
57255818 description : >-
5726- (optional) The SIP status code returned by Bandwidth's SBC when it
5727- rejected an outbound call's INVITE (e.g. 486 for busy, 603 for decline).
5728- Present only when an outbound call was rejected by the SBC.
5819+ (optional) The SIP status code of the final response that rejected an
5820+ outbound call's (or transferred leg's) INVITE (e.g. 486 for busy, 603
5821+ for decline). Present only when the call was rejected with a SIP
5822+ response.
57295823 example : 486
5824+ sipStatusLine :
5825+ type : string
5826+ description : >-
5827+ (optional) The full SIP status line, exactly as received, of the final
5828+ response that rejected an outbound call's INVITE. The reason phrase can
5829+ help distinguish outcomes that share a status code, such as `603 Network
5830+ Blocked` and `603 Decline`. Present only when an outbound call was
5831+ rejected with a SIP response.
5832+ example : SIP/2.0 603 Network Blocked
57305833 codeRequest :
57315834 type : object
57325835 properties :
@@ -8878,6 +8981,31 @@ components:
88788981 media :
88798982 - >-
88808983 https://messaging.bandwidth.com/api/v2/users/9900902/media/14762070468292kw2fuqty55yp2b2/0/bw.png
8984+ rbmMessageReceivedSessionCallbackExample :
8985+ summary : >-
8986+ An example of a rbm message-received callback body for a message that is
8987+ part of an RCS interactive session.
8988+ value :
8989+ time : ' 2026-08-06T10:00:05.502180Z'
8990+ type : message-received
8991+ to : BandwidthRBM
8992+ description : Incoming message received
8993+ message :
8994+ id : 1786010405502l2ntaoajuqjhqnxu
8995+ owner : BandwidthRBM
8996+ applicationId : 93de2206-9669-4e07-948d-329f4b722ee2
8997+ time : ' 2026-08-06T10:00:05.302180Z'
8998+ segmentCount : 1
8999+ direction : in
9000+ to :
9001+ - BandwidthRBM
9002+ from : ' +12345678902'
9003+ channel : RBM
9004+ content :
9005+ text : Yes, please book it for tomorrow.
9006+ session :
9007+ canInitiate : false
9008+ id : 0f5a3b9c-2d4e-4f6a-8b1c-7e9d0a2b3c4d
88819009 messageSendingCallbackExample :
88829010 summary : An example of a message-sending callback body.
88839011 value :
@@ -8977,6 +9105,79 @@ components:
89779105 owner : ' +12345678902'
89789106 direction : out
89799107 segmentCount : 1
9108+ rbmMessageDeliveredSessionCallbackExample :
9109+ summary : >-
9110+ An example of a rbm message-delivered callback body for a message that
9111+ is part of an RCS interactive session.
9112+ value :
9113+ type : message-delivered
9114+ time : ' 2026-08-06T10:01:11.160744Z'
9115+ description : Message delivered to handset.
9116+ to : ' +12345678902'
9117+ message :
9118+ id : 1786010470868ty55yp2b2kw2fuq
9119+ time : ' 2026-08-06T10:01:10.868292Z'
9120+ to :
9121+ - ' +12345678902'
9122+ from : BandwidthRBM
9123+ text : ' '
9124+ applicationId : 93de2206-9669-4e07-948d-329f4b722ee2
9125+ owner : BandwidthRBM
9126+ direction : out
9127+ segmentCount : 1
9128+ channel : RBM
9129+ session :
9130+ canInitiate : false
9131+ id : 0f5a3b9c-2d4e-4f6a-8b1c-7e9d0a2b3c4d
9132+ rbmMessageDeliveredCanInitiateSessionCallbackExample :
9133+ summary : >-
9134+ An example of a rbm message-delivered callback body for a message that
9135+ is not yet part of an RCS interactive session.
9136+ value :
9137+ type : message-delivered
9138+ time : ' 2026-08-06T09:59:56.160744Z'
9139+ description : Message delivered to handset.
9140+ to : ' +12345678902'
9141+ message :
9142+ id : 1786010395000kw2fuqty55yp2b2
9143+ time : ' 2026-08-06T09:59:55.000000Z'
9144+ to :
9145+ - ' +12345678902'
9146+ from : BandwidthRBM
9147+ text : ' '
9148+ applicationId : 93de2206-9669-4e07-948d-329f4b722ee2
9149+ owner : BandwidthRBM
9150+ direction : out
9151+ segmentCount : 1
9152+ channel : RBM
9153+ session :
9154+ canInitiate : true
9155+ sessionStartedCallbackExample :
9156+ summary : An example of a session-started callback body.
9157+ value :
9158+ type : session-started
9159+ time : ' 2026-08-06T10:00:00.123000Z'
9160+ description : Message is now part of an RCS interactive session.
9161+ to : ' +12345678902'
9162+ message :
9163+ id : 1786010395000kw2fuqty55yp2b2
9164+ owner : BandwidthRBM
9165+ applicationId : 93de2206-9669-4e07-948d-329f4b722ee2
9166+ time : ' 2026-08-06T10:00:00.120000Z'
9167+ segmentCount : 1
9168+ direction : out
9169+ to :
9170+ - ' +12345678902'
9171+ from : BandwidthRBM
9172+ text : ' '
9173+ tag : ' '
9174+ channel : RBM
9175+ session :
9176+ canInitiate : false
9177+ id : 0f5a3b9c-2d4e-4f6a-8b1c-7e9d0a2b3c4d
9178+ type : INTERACTIVE_SESSION
9179+ startTime : ' 2026-08-06T09:59:55Z'
9180+ endTime : ' 2026-08-07T09:59:55Z'
89809181 messageFailedCallbackExample :
89819182 summary : An example of a message-failed callback body.
89829183 value :
@@ -9980,6 +10181,9 @@ components:
998010181 $ref : ' #/components/examples/smsMessageReceivedCallbackExample'
998110182 mmsMessageReceivedCallback :
998210183 $ref : ' #/components/examples/mmsMessageReceivedCallbackExample'
10184+ rbmMessageReceivedSessionCallback :
10185+ $ref : >-
10186+ #/components/examples/rbmMessageReceivedSessionCallbackExample
998310187 responses :
998410188 ' 200 ' :
998510189 description : OK
@@ -9995,8 +10199,9 @@ components:
999510199 information regarding a message sent (MT)
999610200
999710201 from your message-enabled Bandwidth telephone number.
9998- <p>The payload type will be one of <code>message-sending</code>, <code>message-sent</code>, <code>message-delivered</code>, <code>message-failed</code> or <code>message-read</code>.
9999- <p>Note that <code>message-read</code> callbacks are pertinent only for RBM messages sent from the <code>/messages/multiChannel</code> endpoint.
10202+ <p>The payload type will be one of <code>message-sending</code>, <code>message-sent</code>, <code>message-delivered</code>, <code>message-failed</code>, <code>message-read</code> or <code>session-started</code>.
10203+ <p>Note that <code>message-read</code> and <code>session-started</code> callbacks are pertinent only for RBM messages sent from the <code>/messages/multiChannel</code> endpoint.
10204+ <p>Note that <code>session-started</code> callbacks are pertinent only for RBM messages of agents with the Conversational billing category.
1000010205 </p><p>Please visit <a
1000110206 href='/docs/messaging/webhooks/'>Webhooks</a></p>
1000210207 content :
@@ -10015,8 +10220,16 @@ components:
1001510220 groupMmsMessageDeliveredCallback :
1001610221 $ref : >-
1001710222 #/components/examples/groupMmsMessageDeliveredCallbackExample
10223+ rbmMessageDeliveredSessionCallback :
10224+ $ref : >-
10225+ #/components/examples/rbmMessageDeliveredSessionCallbackExample
10226+ rbmMessageDeliveredCanInitiateSessionCallback :
10227+ $ref : >-
10228+ #/components/examples/rbmMessageDeliveredCanInitiateSessionCallbackExample
1001810229 messageFailedCallback :
1001910230 $ref : ' #/components/examples/messageFailedCallbackExample'
10231+ sessionStartedCallback :
10232+ $ref : ' #/components/examples/sessionStartedCallbackExample'
1002010233 responses :
1002110234 ' 200 ' :
1002210235 description : OK
0 commit comments