zernio-sdk 0.0.830 → 0.0.832
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/docs/ListPhoneNumberCountries200ResponseCountriesInner.md +1 -1
- data/docs/ListPhoneNumberCountries200ResponseCountriesInnerTypesInner.md +1 -1
- data/docs/ListPhoneNumbers200ResponseNumbersInner.md +1 -1
- data/docs/ListWhatsAppNumberCountries200ResponseCountriesInner.md +1 -1
- data/docs/MessagesApi.md +6 -6
- data/docs/PhoneNumbersApi.md +1 -1
- data/docs/WhatsAppPhoneNumbersApi.md +1 -1
- data/lib/zernio-sdk/api/messages_api.rb +6 -6
- data/lib/zernio-sdk/api/phone_numbers_api.rb +2 -2
- data/lib/zernio-sdk/api/whats_app_phone_numbers_api.rb +2 -2
- data/lib/zernio-sdk/models/list_phone_number_countries200_response_countries_inner.rb +1 -0
- data/lib/zernio-sdk/models/list_phone_number_countries200_response_countries_inner_types_inner.rb +1 -0
- data/lib/zernio-sdk/models/list_phone_numbers200_response_numbers_inner.rb +1 -1
- data/lib/zernio-sdk/models/list_whats_app_number_countries200_response_countries_inner.rb +1 -0
- data/lib/zernio-sdk/version.rb +1 -1
- data/openapi.yaml +16 -8
- data/spec/api/messages_api_spec.rb +3 -3
- data/spec/api/phone_numbers_api_spec.rb +1 -1
- data/spec/api/whats_app_phone_numbers_api_spec.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 61f77fdd54e926a7230ea74ace3606ebb4d0d9a46d1a76a0fabb1c3079a73579
|
|
4
|
+
data.tar.gz: b1a1985fc31ab357de075c7a1f77c81d38be1e8c6a02d3d3e514fea11164bbde
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 388f00ec6f368ebacb57e09663e0c74b1327cd08e47bca54501530fff1efad3764550ff0b781d82e1ac20567f35ec42fe9ab404a30f2625ac5a1879da8f35e85
|
|
7
|
+
data.tar.gz: 478580308ff1116844c228018be43cd19a6bc7ce67f7555f5b815be3ca47998d937ec66825a970ac3e03e139d6e3ff2bc41c9d1904a4fea7cbf3f412c1e8853d
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **code** | **String** | ISO 3166-1 alpha-2 | [optional] |
|
|
8
8
|
| **tier** | **Integer** | | [optional] |
|
|
9
|
-
| **monthly_cents** | **Integer** |
|
|
9
|
+
| **monthly_cents** | **Integer** | Price a NEW number in this country costs per month, in cents, for the default (first) type. 1.5x the carrier's monthly cost, rounded up to a whole dollar, minimum $3. | [optional] |
|
|
10
10
|
| **needs_kyc** | **Boolean** | | [optional] |
|
|
11
11
|
| **calls_available** | **Boolean** | Regular phone (PSTN) calling on the number, inbound + outbound. Available on every offerable country. | [optional] |
|
|
12
12
|
| **whatsapp_available** | **Boolean** | WhatsApp can be enabled on numbers from this country. | [optional] |
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
| **number_type** | **String** | | [optional] |
|
|
8
8
|
| **tier** | **Integer** | | [optional] |
|
|
9
9
|
| **needs_kyc** | **Boolean** | | [optional] |
|
|
10
|
-
| **monthly_cents** | **Integer** |
|
|
10
|
+
| **monthly_cents** | **Integer** | Price a NEW number of this type costs per month, in cents. | [optional] |
|
|
11
11
|
| **whatsapp_available** | **Boolean** | Always false for toll_free (WhatsApp does not reliably register toll-free numbers). | [optional] |
|
|
12
12
|
| **sms_available** | **Boolean** | | [optional] |
|
|
13
13
|
| **calls_available** | **Boolean** | | [optional] |
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
| **status** | **String** | | [optional] |
|
|
11
11
|
| **registrant_name** | **String** | For regulated numbers, who it's registered for (company or person) — set from the submitted KYC. | [optional] |
|
|
12
12
|
| **telnyx_order_id** | **String** | Present once the number order has been placed (i.e. the requirement group was approved). Absent while still in identity review. | [optional] |
|
|
13
|
-
| **monthly_cents** | **Integer** |
|
|
13
|
+
| **monthly_cents** | **Integer** | What this number bills each month, in cents. Stamped when the number was bought, so an existing number keeps its price when the rate card changes. | [optional] |
|
|
14
14
|
| **hosted_by_zernio** | **Boolean** | False for numbers you brought yourself (connected via Meta embedded signup) — they live on your own carrier, so SMS/Calls can't be enabled on them. | [optional] |
|
|
15
15
|
| **sip_trunk_id** | **String** | SIP trunk the number is attached to; null when not trunked. While attached, enabling Calls or WhatsApp calling, requesting WhatsApp verification, and releasing the number all return 409. | [optional] |
|
|
16
16
|
| **profile_id** | **Object** | | [optional] |
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **code** | **String** | ISO 3166-1 alpha-2 | [optional] |
|
|
8
8
|
| **tier** | **Integer** | | [optional] |
|
|
9
|
-
| **monthly_cents** | **Integer** |
|
|
9
|
+
| **monthly_cents** | **Integer** | Price a NEW number in this country costs per month, in cents, for the default (first) type. 1.5x the carrier's monthly cost, rounded up to a whole dollar, minimum $3. | [optional] |
|
|
10
10
|
| **needs_kyc** | **Boolean** | | [optional] |
|
|
11
11
|
| **outbound_calling_available** | **Boolean** | | [optional] |
|
|
12
12
|
|
data/docs/MessagesApi.md
CHANGED
|
@@ -329,7 +329,7 @@ Zernio.configure do |config|
|
|
|
329
329
|
end
|
|
330
330
|
|
|
331
331
|
api_instance = Zernio::MessagesApi.new
|
|
332
|
-
conversation_id = 'conversation_id_example' # String |
|
|
332
|
+
conversation_id = 'conversation_id_example' # String | Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
333
333
|
account_id = 'account_id_example' # String | The social account ID
|
|
334
334
|
|
|
335
335
|
begin
|
|
@@ -363,7 +363,7 @@ end
|
|
|
363
363
|
|
|
364
364
|
| Name | Type | Description | Notes |
|
|
365
365
|
| ---- | ---- | ----------- | ----- |
|
|
366
|
-
| **conversation_id** | **String** |
|
|
366
|
+
| **conversation_id** | **String** | Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed. | |
|
|
367
367
|
| **account_id** | **String** | The social account ID | |
|
|
368
368
|
|
|
369
369
|
### Return type
|
|
@@ -400,7 +400,7 @@ Zernio.configure do |config|
|
|
|
400
400
|
end
|
|
401
401
|
|
|
402
402
|
api_instance = Zernio::MessagesApi.new
|
|
403
|
-
conversation_id = 'conversation_id_example' # String |
|
|
403
|
+
conversation_id = 'conversation_id_example' # String | Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
404
404
|
account_id = 'account_id_example' # String | Social account ID
|
|
405
405
|
opts = {
|
|
406
406
|
limit: 56, # Integer | Number of messages to return per page. Default 100, max 100.
|
|
@@ -439,7 +439,7 @@ end
|
|
|
439
439
|
|
|
440
440
|
| Name | Type | Description | Notes |
|
|
441
441
|
| ---- | ---- | ----------- | ----- |
|
|
442
|
-
| **conversation_id** | **String** |
|
|
442
|
+
| **conversation_id** | **String** | Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed. | |
|
|
443
443
|
| **account_id** | **String** | Social account ID | |
|
|
444
444
|
| **limit** | **Integer** | Number of messages to return per page. Default 100, max 100. | [optional][default to 100] |
|
|
445
445
|
| **cursor** | **String** | Opaque pagination cursor. Pass `pagination.nextCursor` from a prior response verbatim: a cursor we cannot parse returns 400 rather than silently restarting from the first page. | [optional] |
|
|
@@ -1014,7 +1014,7 @@ Zernio.configure do |config|
|
|
|
1014
1014
|
end
|
|
1015
1015
|
|
|
1016
1016
|
api_instance = Zernio::MessagesApi.new
|
|
1017
|
-
conversation_id = 'conversation_id_example' # String |
|
|
1017
|
+
conversation_id = 'conversation_id_example' # String | Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
1018
1018
|
update_inbox_conversation_request = Zernio::UpdateInboxConversationRequest.new({account_id: 'account_id_example', status: 'active'}) # UpdateInboxConversationRequest |
|
|
1019
1019
|
|
|
1020
1020
|
begin
|
|
@@ -1048,7 +1048,7 @@ end
|
|
|
1048
1048
|
|
|
1049
1049
|
| Name | Type | Description | Notes |
|
|
1050
1050
|
| ---- | ---- | ----------- | ----- |
|
|
1051
|
-
| **conversation_id** | **String** |
|
|
1051
|
+
| **conversation_id** | **String** | Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed. | |
|
|
1052
1052
|
| **update_inbox_conversation_request** | [**UpdateInboxConversationRequest**](UpdateInboxConversationRequest.md) | | |
|
|
1053
1053
|
|
|
1054
1054
|
### Return type
|
data/docs/PhoneNumbersApi.md
CHANGED
|
@@ -1149,7 +1149,7 @@ end
|
|
|
1149
1149
|
|
|
1150
1150
|
Purchase phone number
|
|
1151
1151
|
|
|
1152
|
-
Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
1152
|
+
Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. The monthly price is the one `GET /v1/phone-numbers/countries` quotes for that country and `numberType` at the time of purchase, and it is stamped on the number: later rate-card changes never move a number you already own. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
1153
1153
|
|
|
1154
1154
|
### Examples
|
|
1155
1155
|
|
|
@@ -660,7 +660,7 @@ end
|
|
|
660
660
|
|
|
661
661
|
Purchase phone number
|
|
662
662
|
|
|
663
|
-
Deprecated alias of `/v1/phone-numbers/purchase`; same contract. New integrations should use that path. Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
663
|
+
Deprecated alias of `/v1/phone-numbers/purchase`; same contract. New integrations should use that path. Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. The monthly price is the one `GET /v1/phone-numbers/countries` quotes for that country and `numberType` at the time of purchase, and it is stamped on the number: later rate-card changes never move a number you already own. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
664
664
|
|
|
665
665
|
### Examples
|
|
666
666
|
|
|
@@ -325,7 +325,7 @@ module Zernio
|
|
|
325
325
|
|
|
326
326
|
# Get conversation
|
|
327
327
|
# Retrieve details and metadata for a specific conversation. Requires accountId query parameter.
|
|
328
|
-
# @param conversation_id [String]
|
|
328
|
+
# @param conversation_id [String] Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
329
329
|
# @param account_id [String] The social account ID
|
|
330
330
|
# @param [Hash] opts the optional parameters
|
|
331
331
|
# @return [GetInboxConversation200Response]
|
|
@@ -336,7 +336,7 @@ module Zernio
|
|
|
336
336
|
|
|
337
337
|
# Get conversation
|
|
338
338
|
# Retrieve details and metadata for a specific conversation. Requires accountId query parameter.
|
|
339
|
-
# @param conversation_id [String]
|
|
339
|
+
# @param conversation_id [String] Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
340
340
|
# @param account_id [String] The social account ID
|
|
341
341
|
# @param [Hash] opts the optional parameters
|
|
342
342
|
# @return [Array<(GetInboxConversation200Response, Integer, Hash)>] GetInboxConversation200Response data, response status code and response headers
|
|
@@ -395,7 +395,7 @@ module Zernio
|
|
|
395
395
|
|
|
396
396
|
# List messages
|
|
397
397
|
# Fetch messages for a specific conversation, with cursor-based pagination and ordering control. Pagination: pass `pagination.nextCursor` from a prior response back as the `cursor` query param to fetch the next page. The cursor is opaque; do not parse or construct it client-side. Sort order: defaults to `asc` (oldest first, chat style). For the \"show me the latest messages\" pattern, pass `?sortOrder=desc&limit=N`. Twitter, Instagram, Telegram, WhatsApp and Reddit honor the requested order from the local message store. For Facebook and Bluesky, the upstream APIs only return newest-first and have no order parameter — sort order is best-effort and only reverses items within a single page (pages still walk newest→oldest). The response field `sortOrderApplied` tells you what was actually applied. Reddit threads are paginated client-side because Reddit's API has no per-thread cursor. Very long threads may be upstream-truncated by Reddit's inbox/sent windows (~100 most-recent items each); this is a Reddit platform limitation. Instagram and Facebook conversations include history from before the account was connected, replayed from Meta. That replay covers the 500 most recent messages per conversation: a longer thread keeps its newest 500 and older messages are not retrievable. Messages that arrived after the account was connected are unaffected. Replayed messages are stored as already read and emit no webhooks. Twitter/X limitation: X's encrypted \"X Chat\" messages are not accessible via the API. Conversations where the other participant uses encrypted X Chat may only show your outgoing messages. See the list conversations endpoint for more details. This endpoint is read-only and does NOT mark messages as read or send read receipts. To mark a conversation read (and send WhatsApp blue ticks on eligible accounts), call `POST /v1/inbox/conversations/{conversationId}/read`.
|
|
398
|
-
# @param conversation_id [String]
|
|
398
|
+
# @param conversation_id [String] Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
399
399
|
# @param account_id [String] Social account ID
|
|
400
400
|
# @param [Hash] opts the optional parameters
|
|
401
401
|
# @option opts [Integer] :limit Number of messages to return per page. Default 100, max 100. (default to 100)
|
|
@@ -409,7 +409,7 @@ module Zernio
|
|
|
409
409
|
|
|
410
410
|
# List messages
|
|
411
411
|
# Fetch messages for a specific conversation, with cursor-based pagination and ordering control. Pagination: pass `pagination.nextCursor` from a prior response back as the `cursor` query param to fetch the next page. The cursor is opaque; do not parse or construct it client-side. Sort order: defaults to `asc` (oldest first, chat style). For the \"show me the latest messages\" pattern, pass `?sortOrder=desc&limit=N`. Twitter, Instagram, Telegram, WhatsApp and Reddit honor the requested order from the local message store. For Facebook and Bluesky, the upstream APIs only return newest-first and have no order parameter — sort order is best-effort and only reverses items within a single page (pages still walk newest→oldest). The response field `sortOrderApplied` tells you what was actually applied. Reddit threads are paginated client-side because Reddit's API has no per-thread cursor. Very long threads may be upstream-truncated by Reddit's inbox/sent windows (~100 most-recent items each); this is a Reddit platform limitation. Instagram and Facebook conversations include history from before the account was connected, replayed from Meta. That replay covers the 500 most recent messages per conversation: a longer thread keeps its newest 500 and older messages are not retrievable. Messages that arrived after the account was connected are unaffected. Replayed messages are stored as already read and emit no webhooks. Twitter/X limitation: X's encrypted \"X Chat\" messages are not accessible via the API. Conversations where the other participant uses encrypted X Chat may only show your outgoing messages. See the list conversations endpoint for more details. This endpoint is read-only and does NOT mark messages as read or send read receipts. To mark a conversation read (and send WhatsApp blue ticks on eligible accounts), call `POST /v1/inbox/conversations/{conversationId}/read`.
|
|
412
|
-
# @param conversation_id [String]
|
|
412
|
+
# @param conversation_id [String] Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
413
413
|
# @param account_id [String] Social account ID
|
|
414
414
|
# @param [Hash] opts the optional parameters
|
|
415
415
|
# @option opts [Integer] :limit Number of messages to return per page. Default 100, max 100. (default to 100)
|
|
@@ -1088,7 +1088,7 @@ module Zernio
|
|
|
1088
1088
|
|
|
1089
1089
|
# Update conversation status
|
|
1090
1090
|
# Archive or activate a conversation. Requires accountId in request body.
|
|
1091
|
-
# @param conversation_id [String]
|
|
1091
|
+
# @param conversation_id [String] Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
1092
1092
|
# @param update_inbox_conversation_request [UpdateInboxConversationRequest]
|
|
1093
1093
|
# @param [Hash] opts the optional parameters
|
|
1094
1094
|
# @return [UpdateInboxConversation200Response]
|
|
@@ -1099,7 +1099,7 @@ module Zernio
|
|
|
1099
1099
|
|
|
1100
1100
|
# Update conversation status
|
|
1101
1101
|
# Archive or activate a conversation. Requires accountId in request body.
|
|
1102
|
-
# @param conversation_id [String]
|
|
1102
|
+
# @param conversation_id [String] Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
1103
1103
|
# @param update_inbox_conversation_request [UpdateInboxConversationRequest]
|
|
1104
1104
|
# @param [Hash] opts the optional parameters
|
|
1105
1105
|
# @return [Array<(UpdateInboxConversation200Response, Integer, Hash)>] UpdateInboxConversation200Response data, response status code and response headers
|
|
@@ -1065,7 +1065,7 @@ module Zernio
|
|
|
1065
1065
|
end
|
|
1066
1066
|
|
|
1067
1067
|
# Purchase phone number
|
|
1068
|
-
# Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
1068
|
+
# Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. The monthly price is the one `GET /v1/phone-numbers/countries` quotes for that country and `numberType` at the time of purchase, and it is stamped on the number: later rate-card changes never move a number you already own. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
1069
1069
|
# @param purchase_phone_number_request [PurchasePhoneNumberRequest]
|
|
1070
1070
|
# @param [Hash] opts the optional parameters
|
|
1071
1071
|
# @return [PurchasePhoneNumber200Response]
|
|
@@ -1075,7 +1075,7 @@ module Zernio
|
|
|
1075
1075
|
end
|
|
1076
1076
|
|
|
1077
1077
|
# Purchase phone number
|
|
1078
|
-
# Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
1078
|
+
# Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. The monthly price is the one `GET /v1/phone-numbers/countries` quotes for that country and `numberType` at the time of purchase, and it is stamped on the number: later rate-card changes never move a number you already own. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
1079
1079
|
# @param purchase_phone_number_request [PurchasePhoneNumberRequest]
|
|
1080
1080
|
# @param [Hash] opts the optional parameters
|
|
1081
1081
|
# @return [Array<(PurchasePhoneNumber200Response, Integer, Hash)>] PurchasePhoneNumber200Response data, response status code and response headers
|
|
@@ -621,7 +621,7 @@ module Zernio
|
|
|
621
621
|
end
|
|
622
622
|
|
|
623
623
|
# Purchase phone number
|
|
624
|
-
# Deprecated alias of `/v1/phone-numbers/purchase`; same contract. New integrations should use that path. Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
624
|
+
# Deprecated alias of `/v1/phone-numbers/purchase`; same contract. New integrations should use that path. Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. The monthly price is the one `GET /v1/phone-numbers/countries` quotes for that country and `numberType` at the time of purchase, and it is stamped on the number: later rate-card changes never move a number you already own. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
625
625
|
# @param purchase_whats_app_phone_number_request [PurchaseWhatsAppPhoneNumberRequest]
|
|
626
626
|
# @param [Hash] opts the optional parameters
|
|
627
627
|
# @return [PurchaseWhatsAppPhoneNumber200Response]
|
|
@@ -631,7 +631,7 @@ module Zernio
|
|
|
631
631
|
end
|
|
632
632
|
|
|
633
633
|
# Purchase phone number
|
|
634
|
-
# Deprecated alias of `/v1/phone-numbers/purchase`; same contract. New integrations should use that path. Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
634
|
+
# Deprecated alias of `/v1/phone-numbers/purchase`; same contract. New integrations should use that path. Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. The monthly price is the one `GET /v1/phone-numbers/countries` quotes for that country and `numberType` at the time of purchase, and it is stamped on the number: later rate-card changes never move a number you already own. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
635
635
|
# @param purchase_whats_app_phone_number_request [PurchaseWhatsAppPhoneNumberRequest]
|
|
636
636
|
# @param [Hash] opts the optional parameters
|
|
637
637
|
# @return [Array<(PurchaseWhatsAppPhoneNumber200Response, Integer, Hash)>] PurchaseWhatsAppPhoneNumber200Response data, response status code and response headers
|
|
@@ -20,6 +20,7 @@ module Zernio
|
|
|
20
20
|
|
|
21
21
|
attr_accessor :tier
|
|
22
22
|
|
|
23
|
+
# Price a NEW number in this country costs per month, in cents, for the default (first) type. 1.5x the carrier's monthly cost, rounded up to a whole dollar, minimum $3.
|
|
23
24
|
attr_accessor :monthly_cents
|
|
24
25
|
|
|
25
26
|
attr_accessor :needs_kyc
|
|
@@ -29,7 +29,7 @@ module Zernio
|
|
|
29
29
|
# Present once the number order has been placed (i.e. the requirement group was approved). Absent while still in identity review.
|
|
30
30
|
attr_accessor :telnyx_order_id
|
|
31
31
|
|
|
32
|
-
#
|
|
32
|
+
# What this number bills each month, in cents. Stamped when the number was bought, so an existing number keeps its price when the rate card changes.
|
|
33
33
|
attr_accessor :monthly_cents
|
|
34
34
|
|
|
35
35
|
# False for numbers you brought yourself (connected via Meta embedded signup) — they live on your own carrier, so SMS/Calls can't be enabled on them.
|
|
@@ -20,6 +20,7 @@ module Zernio
|
|
|
20
20
|
|
|
21
21
|
attr_accessor :tier
|
|
22
22
|
|
|
23
|
+
# Price a NEW number in this country costs per month, in cents, for the default (first) type. 1.5x the carrier's monthly cost, rounded up to a whole dollar, minimum $3.
|
|
23
24
|
attr_accessor :monthly_cents
|
|
24
25
|
|
|
25
26
|
attr_accessor :needs_kyc
|
data/lib/zernio-sdk/version.rb
CHANGED
data/openapi.yaml
CHANGED
|
@@ -27032,7 +27032,7 @@ paths:
|
|
|
27032
27032
|
in: path
|
|
27033
27033
|
required: true
|
|
27034
27034
|
schema: { type: string }
|
|
27035
|
-
description:
|
|
27035
|
+
description: 'Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.'
|
|
27036
27036
|
- name: accountId
|
|
27037
27037
|
in: query
|
|
27038
27038
|
required: true
|
|
@@ -27169,7 +27169,7 @@ paths:
|
|
|
27169
27169
|
in: path
|
|
27170
27170
|
required: true
|
|
27171
27171
|
schema: { type: string }
|
|
27172
|
-
description:
|
|
27172
|
+
description: 'Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.'
|
|
27173
27173
|
requestBody:
|
|
27174
27174
|
required: true
|
|
27175
27175
|
content:
|
|
@@ -27249,7 +27249,7 @@ paths:
|
|
|
27249
27249
|
in: path
|
|
27250
27250
|
required: true
|
|
27251
27251
|
schema: { type: string }
|
|
27252
|
-
description:
|
|
27252
|
+
description: 'Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.'
|
|
27253
27253
|
- name: accountId
|
|
27254
27254
|
in: query
|
|
27255
27255
|
required: true
|
|
@@ -33947,7 +33947,7 @@ paths:
|
|
|
33947
33947
|
status: { type: string, enum: [pending_payment, pending_regulatory, regulatory_declined, provisioning, verifying, active, suspended, releasing, released] }
|
|
33948
33948
|
registrantName: { type: [string, "null"], description: "For regulated numbers, who it's registered for (company or person) — set from the submitted KYC." }
|
|
33949
33949
|
telnyxOrderId: { type: [string, "null"], description: Present once the number order has been placed (i.e. the requirement group was approved). Absent while still in identity review. }
|
|
33950
|
-
monthlyCents: { type: integer, description:
|
|
33950
|
+
monthlyCents: { type: integer, description: "What this number bills each month, in cents. Stamped when the number was bought, so an existing number keeps its price when the rate card changes." }
|
|
33951
33951
|
hostedByZernio: { type: boolean, description: "False for numbers you brought yourself (connected via Meta embedded signup) — they live on your own carrier, so SMS/Calls can't be enabled on them." }
|
|
33952
33952
|
sipTrunkId: { type: [string, "null"], description: 'SIP trunk the number is attached to; null when not trunked. While attached, enabling Calls or WhatsApp calling, requesting WhatsApp verification, and releasing the number all return 409.' }
|
|
33953
33953
|
profileId: { type: object }
|
|
@@ -34097,6 +34097,10 @@ paths:
|
|
|
34097
34097
|
no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`;
|
|
34098
34098
|
a regulated country returns `202` with `status: "kyc_required"` and a `kycUrl`.
|
|
34099
34099
|
|
|
34100
|
+
The monthly price is the one `GET /v1/phone-numbers/countries` quotes for that
|
|
34101
|
+
country and `numberType` at the time of purchase, and it is stamped on the number:
|
|
34102
|
+
later rate-card changes never move a number you already own.
|
|
34103
|
+
|
|
34100
34104
|
Requires usage-based billing (the Usage plan). The maximum number of phone numbers
|
|
34101
34105
|
is determined by the user's plan.
|
|
34102
34106
|
security:
|
|
@@ -34299,7 +34303,7 @@ paths:
|
|
|
34299
34303
|
properties:
|
|
34300
34304
|
code: { type: string, description: ISO 3166-1 alpha-2 }
|
|
34301
34305
|
tier: { type: integer, enum: [1, 2, 3, 4] }
|
|
34302
|
-
monthlyCents: { type: integer }
|
|
34306
|
+
monthlyCents: { type: integer, description: "Price a NEW number in this country costs per month, in cents, for the default (first) type. 1.5x the carrier's monthly cost, rounded up to a whole dollar, minimum $3." }
|
|
34303
34307
|
needsKyc: { type: boolean }
|
|
34304
34308
|
callsAvailable: { type: boolean, description: "Regular phone (PSTN) calling on the number, inbound + outbound. Available on every offerable country." }
|
|
34305
34309
|
whatsappAvailable: { type: boolean, description: WhatsApp can be enabled on numbers from this country. }
|
|
@@ -34320,7 +34324,7 @@ paths:
|
|
|
34320
34324
|
numberType: { type: string, enum: [local, mobile, national, toll_free] }
|
|
34321
34325
|
tier: { type: integer, enum: [1, 2, 3, 4] }
|
|
34322
34326
|
needsKyc: { type: boolean }
|
|
34323
|
-
monthlyCents: { type: integer }
|
|
34327
|
+
monthlyCents: { type: integer, description: "Price a NEW number of this type costs per month, in cents." }
|
|
34324
34328
|
whatsappAvailable: { type: boolean, description: "Always false for toll_free (WhatsApp does not reliably register toll-free numbers)." }
|
|
34325
34329
|
smsAvailable: { type: boolean }
|
|
34326
34330
|
callsAvailable: { type: boolean }
|
|
@@ -34491,7 +34495,7 @@ paths:
|
|
|
34491
34495
|
status: { type: string, enum: [pending_payment, pending_regulatory, regulatory_declined, provisioning, verifying, active, suspended, releasing, released] }
|
|
34492
34496
|
registrantName: { type: [string, "null"], description: "For regulated numbers, who it's registered for (company or person) — set from the submitted KYC." }
|
|
34493
34497
|
telnyxOrderId: { type: [string, "null"], description: Present once the number order has been placed (i.e. the requirement group was approved). Absent while still in identity review. }
|
|
34494
|
-
monthlyCents: { type: integer, description:
|
|
34498
|
+
monthlyCents: { type: integer, description: "What this number bills each month, in cents. Stamped when the number was bought, so an existing number keeps its price when the rate card changes." }
|
|
34495
34499
|
hostedByZernio: { type: boolean, description: "False for numbers you brought yourself (connected via Meta embedded signup) — they live on your own carrier, so SMS/Calls can't be enabled on them." }
|
|
34496
34500
|
sipTrunkId: { type: [string, "null"], description: 'SIP trunk the number is attached to; null when not trunked. While attached, enabling Calls or WhatsApp calling, requesting WhatsApp verification, and releasing the number all return 409.' }
|
|
34497
34501
|
profileId: { type: object }
|
|
@@ -34557,6 +34561,10 @@ paths:
|
|
|
34557
34561
|
no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`;
|
|
34558
34562
|
a regulated country returns `202` with `status: "kyc_required"` and a `kycUrl`.
|
|
34559
34563
|
|
|
34564
|
+
The monthly price is the one `GET /v1/phone-numbers/countries` quotes for that
|
|
34565
|
+
country and `numberType` at the time of purchase, and it is stamped on the number:
|
|
34566
|
+
later rate-card changes never move a number you already own.
|
|
34567
|
+
|
|
34560
34568
|
Requires usage-based billing (the Usage plan). The maximum number of phone numbers
|
|
34561
34569
|
is determined by the user's plan.
|
|
34562
34570
|
security:
|
|
@@ -34700,7 +34708,7 @@ paths:
|
|
|
34700
34708
|
properties:
|
|
34701
34709
|
code: { type: string, description: ISO 3166-1 alpha-2 }
|
|
34702
34710
|
tier: { type: integer, enum: [1, 2, 3, 4] }
|
|
34703
|
-
monthlyCents: { type: integer }
|
|
34711
|
+
monthlyCents: { type: integer, description: "Price a NEW number in this country costs per month, in cents, for the default (first) type. 1.5x the carrier's monthly cost, rounded up to a whole dollar, minimum $3." }
|
|
34704
34712
|
needsKyc: { type: boolean }
|
|
34705
34713
|
outboundCallingAvailable: { type: boolean }
|
|
34706
34714
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
@@ -89,7 +89,7 @@ describe 'MessagesApi' do
|
|
|
89
89
|
# unit tests for get_inbox_conversation
|
|
90
90
|
# Get conversation
|
|
91
91
|
# Retrieve details and metadata for a specific conversation. Requires accountId query parameter.
|
|
92
|
-
# @param conversation_id
|
|
92
|
+
# @param conversation_id Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
93
93
|
# @param account_id The social account ID
|
|
94
94
|
# @param [Hash] opts the optional parameters
|
|
95
95
|
# @return [GetInboxConversation200Response]
|
|
@@ -102,7 +102,7 @@ describe 'MessagesApi' do
|
|
|
102
102
|
# unit tests for get_inbox_conversation_messages
|
|
103
103
|
# List messages
|
|
104
104
|
# Fetch messages for a specific conversation, with cursor-based pagination and ordering control. Pagination: pass `pagination.nextCursor` from a prior response back as the `cursor` query param to fetch the next page. The cursor is opaque; do not parse or construct it client-side. Sort order: defaults to `asc` (oldest first, chat style). For the \"show me the latest messages\" pattern, pass `?sortOrder=desc&limit=N`. Twitter, Instagram, Telegram, WhatsApp and Reddit honor the requested order from the local message store. For Facebook and Bluesky, the upstream APIs only return newest-first and have no order parameter — sort order is best-effort and only reverses items within a single page (pages still walk newest→oldest). The response field `sortOrderApplied` tells you what was actually applied. Reddit threads are paginated client-side because Reddit's API has no per-thread cursor. Very long threads may be upstream-truncated by Reddit's inbox/sent windows (~100 most-recent items each); this is a Reddit platform limitation. Instagram and Facebook conversations include history from before the account was connected, replayed from Meta. That replay covers the 500 most recent messages per conversation: a longer thread keeps its newest 500 and older messages are not retrievable. Messages that arrived after the account was connected are unaffected. Replayed messages are stored as already read and emit no webhooks. Twitter/X limitation: X's encrypted \"X Chat\" messages are not accessible via the API. Conversations where the other participant uses encrypted X Chat may only show your outgoing messages. See the list conversations endpoint for more details. This endpoint is read-only and does NOT mark messages as read or send read receipts. To mark a conversation read (and send WhatsApp blue ticks on eligible accounts), call `POST /v1/inbox/conversations/{conversationId}/read`.
|
|
105
|
-
# @param conversation_id
|
|
105
|
+
# @param conversation_id Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
106
106
|
# @param account_id Social account ID
|
|
107
107
|
# @param [Hash] opts the optional parameters
|
|
108
108
|
# @option opts [Integer] :limit Number of messages to return per page. Default 100, max 100.
|
|
@@ -224,7 +224,7 @@ describe 'MessagesApi' do
|
|
|
224
224
|
# unit tests for update_inbox_conversation
|
|
225
225
|
# Update conversation status
|
|
226
226
|
# Archive or activate a conversation. Requires accountId in request body.
|
|
227
|
-
# @param conversation_id
|
|
227
|
+
# @param conversation_id Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
228
228
|
# @param update_inbox_conversation_request
|
|
229
229
|
# @param [Hash] opts the optional parameters
|
|
230
230
|
# @return [UpdateInboxConversation200Response]
|
|
@@ -226,7 +226,7 @@ describe 'PhoneNumbersApi' do
|
|
|
226
226
|
|
|
227
227
|
# unit tests for purchase_phone_number
|
|
228
228
|
# Purchase phone number
|
|
229
|
-
# Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
229
|
+
# Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. The monthly price is the one `GET /v1/phone-numbers/countries` quotes for that country and `numberType` at the time of purchase, and it is stamped on the number: later rate-card changes never move a number you already own. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
230
230
|
# @param purchase_phone_number_request
|
|
231
231
|
# @param [Hash] opts the optional parameters
|
|
232
232
|
# @return [PurchasePhoneNumber200Response]
|
|
@@ -146,7 +146,7 @@ describe 'WhatsAppPhoneNumbersApi' do
|
|
|
146
146
|
|
|
147
147
|
# unit tests for purchase_whats_app_phone_number
|
|
148
148
|
# Purchase phone number
|
|
149
|
-
# Deprecated alias of `/v1/phone-numbers/purchase`; same contract. New integrations should use that path. Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
149
|
+
# Deprecated alias of `/v1/phone-numbers/purchase`; same contract. New integrations should use that path. Payment-first: you do not pick a specific number, the system provisions one and auto-assigns it. With usage-based billing active and a payment method on file, the number provisions inline and bills per month on your usage-based invoice (there is no checkout redirect). No payment method on file returns `402 PAYMENT_REQUIRED`; a regulated country returns `202` with `status: \"kyc_required\"` and a `kycUrl`. The monthly price is the one `GET /v1/phone-numbers/countries` quotes for that country and `numberType` at the time of purchase, and it is stamped on the number: later rate-card changes never move a number you already own. Requires usage-based billing (the Usage plan). The maximum number of phone numbers is determined by the user's plan.
|
|
150
150
|
# @param purchase_whats_app_phone_number_request
|
|
151
151
|
# @param [Hash] opts the optional parameters
|
|
152
152
|
# @return [PurchaseWhatsAppPhoneNumber200Response]
|