Answers.Body: <p>API documentation exists - <a href="https://docs.civicrm.org/dev/en/latest/api" rel="nofollow noreferrer">https://docs.civicrm.org/dev/en/latest/api</a>. You might even be able to get incoming SMS without coding an extension, using either the standard REST API or with the <a href="https://civicrm.org/blog/jaapjansma/using-civicrm-form-processor-extension-to-handle-form-submissions-from-an-external" rel="nofollow noreferrer">Form Processor</a> extension.  However, you're not going to get Civi to submit a request to an external URL without an extension.</p>
  
  <p>That said - CiviRules handles a significant chunk of what you're trying to do.  However, there's no "submit to an external URL" action.  If you were to sponsor the authorship of such an action, you could probably get quite a lot of mileage out of it.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-01-10T21:27:11.803Z
Answers.LastActivityDate: 2020-01-10T21:27:11.803Z
Answers.UserDisplayName: Jon G - Megaphone Tech
Answers.Body: <p>You need to write an extension (<a href="https://docs.civicrm.org/dev/en/latest/extensions/civix/#generate-module" rel="nofollow noreferrer">https://docs.civicrm.org/dev/en/latest/extensions/civix/#generate-module</a>), and you can use the existing provider extensions as a template and change what you need. You can also look at other third party extensions. I wrote one recently (<a href="https://lab.civicrm.org/extensions/ringcentral" rel="nofollow noreferrer">https://lab.civicrm.org/extensions/ringcentral</a>), which has some maybe nonstandard things, but mostly I copied and pasted the overall structure from twilio and clickatell, e.g. <a href="https://github.com/civicrm/org.civicrm.sms.twilio/blob/master/org_civicrm_sms_twilio.php" rel="nofollow noreferrer">https://github.com/civicrm/org.civicrm.sms.twilio/blob/master/org_civicrm_sms_twilio.php</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-11-22T15:20:02.057Z
Answers.Text: Thanks.. good answer, but writing an extension is over my head. I was hoping for a way to do with only webhooks.
Answers.UserDisplayName: Jason Miller
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-02-09T21:15:41.443Z
Answers.Text: I took a stab at this, and I created the extension, and I can see how the basic idea is to extend the CRM_SMS_Provider object and provide functions for send() and inbound(), but there's a lot of voodoo in those php files I don't understand. Let me ask you, how much coding should be required to implement this specific api consider how very, very simple it is. NowSMS uses http get with 3 variables in and 3 variables out, no encryption or security of any kind. From looking at these other extensions it seems a good deal of code is devoted to things other than sending and receiving the payload.
Answers.UserDisplayName: Jason Miller
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-11-20T22:07:37.720Z
Answers.LastActivityDate: 2019-11-20T22:07:37.720Z
Answers.UserDisplayName: Demerit
Body: <p>I use NowSMS for my SMS provider instead of Twilio and Clickatell. NowSMS goes through a cell phone, which is flat rate pricing instead of per text. I've found documentation for twilio or clickatell, but none about the api itself. Can someone point me toward documentation for the civicrm hooks or the "add new provider" screen? I assume civicrm does http/https in and out based on some triggers or web hooks, etc, soap, rest, xml, something? I'm self hosting civicrm on wordpress on my LAN, and NowSMS server is on the same lan, no authentication required, very very easy to program via simple http get commands with two phone numbers and some text. Anyway, yes, documentation please? We've already paid for NowSMS, and we currently use it quite successfully on other projects, so we are not willing to switch, thank you. Any help appreciated!</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-11-21T05:10:19.467Z
Comments.Text: This is very cool - please update this when it's done with a link to the extension?  Thanks!
Comments.UserDisplayName: Jon G - Megaphone Tech
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-11-22T15:18:09.470Z
Comments.Text: Honestly writing an extension is a bit over my head as I don't program in PHP. I was hoping I could do it with webhooks.
Comments.UserDisplayName: Jason Miller
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-01-10T17:07:33.580Z
Comments.Text: So is that a negative on documentation on API Type, API URL, and API Parameters?
Comments.UserDisplayName: Jason Miller
Tags: <api><sms>
Title: Documentation for new sms provider?
ThreadText: # Documentation for new sms provider?
  
  (Asked by: username_0 on 2019-11-20)
  
  I use NowSMS for my SMS provider instead of Twilio and Clickatell. NowSMS goes through a cell phone, which is flat rate pricing instead of per text. I've found documentation for twilio or clickatell, but none about the api itself. Can someone point me toward documentation for the civicrm hooks or the "add new provider" screen? I assume civicrm does http/https in and out based on some triggers or web hooks, etc, soap, rest, xml, something? I'm self hosting civicrm on wordpress on my LAN, and NowSMS server is on the same lan, no authentication required, very very easy to program via simple http get commands with two phone numbers and some text. Anyway, yes, documentation please? We've already paid for NowSMS, and we currently use it quite successfully on other projects, so we are not willing to switch, thank you. Any help appreciated!
  
  **Tags:** api, sms
  
  > **Comments:**
  > **username_1**: This is very cool - please update this when it's done with a link to the extension?  Thanks!  
  > **username_0**: Honestly writing an extension is a bit over my head as I don't program in PHP. I was hoping I could do it with webhooks.  
  > **username_0**: So is that a negative on documentation on API Type, API URL, and API Parameters?  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2019-11-20. Score: 4 | Accepted answer
  
  You need to write an extension (<https://docs.civicrm.org/dev/en/latest/extensions/civix/#generate-module>), and you can use the existing provider extensions as a template and change what you need. You can also look at other third party extensions. I wrote one recently (<https://lab.civicrm.org/extensions/ringcentral>), which has some maybe nonstandard things, but mostly I copied and pasted the overall structure from twilio and clickatell, e.g. <https://github.com/civicrm/org.civicrm.sms.twilio/blob/master/org_civicrm_sms_twilio.php>
  
  > **Comments:**
  > **username_0**: Thanks.. good answer, but writing an extension is over my head. I was hoping for a way to do with only webhooks.  
  > **username_0**: I took a stab at this, and I created the extension, and I can see how the basic idea is to extend the CRM_SMS_Provider object and provide functions for send() and inbound(), but there's a lot of voodoo in those php files I don't understand. Let me ask you, how much coding should be required to implement this specific api consider how very, very simple it is. NowSMS uses http get with 3 variables in and 3 variables out, no encryption or security of any kind. From looking at these other extensions it seems a good deal of code is devoted to things other than sending and receiving the payload.  
  
  ---
  
  ### Answer by username_1 on 2020-01-10. Score: 0
  
  API documentation exists - <https://docs.civicrm.org/dev/en/latest/api>. You might even be able to get incoming SMS without coding an extension, using either the standard REST API or with the [Form Processor](https://civicrm.org/blog/jaapjansma/using-civicrm-form-processor-extension-to-handle-form-submissions-from-an-external) extension. However, you're not going to get Civi to submit a request to an external URL without an extension.
  
  That said - CiviRules handles a significant chunk of what you're trying to do. However, there's no "submit to an external URL" action. If you were to sponsor the authorship of such an action, you could probably get quite a lot of mileage out of it.
  
  
  ---
  
  