# ASPSMS ASPSMS (https://www.aspsms.com) provides an SMS gateway and the ASPSMS WebAPI for sending and managing SMS programmatically. ## ASPSMS WebAPI Base URL: https://webapi.aspsms.com Authentication: Userkey and Password as query parameters on every request. JSON bodies use Content-Type: application/json. For text SMS set Operation to "SendTextSMS". Interactive Swagger UI: https://webapi.aspsms.com ### Human documentation - API overview (endpoints and use cases): https://www.aspsms.com/en/webapi/ https://www.aspsms.com/de/webapi/ - Status Codes, Delivery Status (DST), Reason Codes (RSN): https://www.aspsms.com/en/webapi/codes/ https://www.aspsms.com/de/webapi/codes/ - Code examples index: https://www.aspsms.com/en/examples/webapi/ https://www.aspsms.com/de/examples/webapi/ - Code examples by language: - Python: https://www.aspsms.com/en/examples/webapi/python/ and https://www.aspsms.com/de/examples/webapi/python/ - C#: https://www.aspsms.com/en/examples/webapi/csharp/ and https://www.aspsms.com/de/examples/webapi/csharp/ - PHP: https://www.aspsms.com/en/examples/webapi/php/ and https://www.aspsms.com/de/examples/webapi/php/ - JavaScript / Node.js: https://www.aspsms.com/en/examples/webapi/javascript/ and https://www.aspsms.com/de/examples/webapi/javascript/ ### Main capabilities - Check credentials, credit balance, estimate credits before sending - Send simple SMS (GET /SendSimpleSMS) - Send advanced SMS (POST /ASPSMSSendSMS) with Recipients and TransactionReferenceNumber - Personalized SMS with RecipientsEx (same Originator, individual MessageData per recipient) - Deferred delivery, validity period (LifeTime) - Deactivate pending SMS by MSISDN or TransactionReferenceNumber - Delivery webhooks (HTTP GET only): URLBufferedMessageNotification, URLDeliveryNotification, URLNonDeliveryNotification - Send logs and traffic statistics (TrafficStat01, SendingStat01-04) - Incoming SMS / two-way (ReceivingStat01-02, optional ReceiveURL) - Delivery statistics per recipient (MSISDNDLRStat) and ignore list - Phonebook: numbers, groups, group relations - Jobs and Templates - Operators and originator management ### Delivery webhooks Called exclusively via HTTP GET. URL length max. 200 characters. Placeholders: , , , , , , ### Status values (summary) - API StatusCode: result of the API request (1 = OK). Full list: /en/webapi/codes/ - Delivery Status (DST): -1 not submitted/rejected, 0 Delivered, 1 Buffered, 2 Not Delivered - After DST 1 (Buffered) a second update with 0 or 2 is common - Reason Codes (RSN): relevant when DST is 1 or 2; common codes include 000, 103, 107, 108, 110, 118 Full lists and explanations: https://www.aspsms.com/en/webapi/codes/ ### Important distinction API StatusCode describes whether the HTTP API accepted the request. DST and RSN describe delivery of an individual SMS to the handset. ## Optional detailed files - https://www.aspsms.com/webapi/llms.txt - https://www.aspsms.com/webapi/codes/llms.txt - https://www.aspsms.com/examples/webapi/llms.txt ## About ASPSMS ASPSMS is a professional SMS gateway operated by VADIAN.NET AG (St. Gallen, Switzerland, founded 1995). Swiss technology, Swiss support, data under Swiss privacy rules. VADIAN.NET AG is ISO 27001 certified and an OFCOM-registered telecommunications service provider. Outbound SMS coverage: more than 200 countries / many mobile networks. Product launched 2001. Related brands include asptoken.com, smsblaster.com, smsbooster.com. Website: https://www.aspsms.com/ About: https://www.aspsms.com/en/instruction/aboutus/ Documentation hub: https://www.aspsms.com/en/documentation/ ## Which API to use For new integrations prefer the ASPSMS WebAPI: https://webapi.aspsms.com Human overview: https://www.aspsms.com/en/webapi/ Code examples: https://www.aspsms.com/en/examples/webapi/ Other interfaces (legacy or special cases): - JSON API (REST): https://json.aspsms.com/ - SOAP: https://soap.aspsms.com/aspsmsx2.asmx - XML, SMTP (email-to-SMS), simple HTTP, ActiveX/COM, .NET assembly on NuGet - No-code: Zapier, Microsoft Power Automate, make.com Full interface list: https://www.aspsms.com/en/documentation/ ## Originator (sender ID) - Alphanumeric: up to 11 characters (e.g. company name). Typically one-way; not supported on every network worldwide. - Numeric: phone number in international format; may require unlock; can allow replies when combined with two-way setup. Originator rules can depend on destination country. Unlock/authorization flows exist in the APIs. ## Message length Standard SMS: up to 160 characters (GSM 7-bit). Unicode (e.g. emoji, some languages) uses fewer characters per part. Concatenated SMS: up to 9 parts, up to about 1,377 characters total (about 153 characters per part because of the concatenation header). Multipart messages consume credits per part (times network multiplier). ## Two-way SMS (inbound) Global Two-Way SMS: rent virtual inbound number(s); no SIM card; monthly fee (not the same as prepaid outbound-only credits model). Inbound SMS can be forwarded by HTTP GET webhook or by email (plain or XML). Swiss numbers available; other countries on request. Coverage list is separate from outbound network list. https://www.aspsms.com/en/two-way/ ## ASPTOKEN (OTP / 2FA) Optional product for SMS two-factor authentication: generate, send, and verify codes on the ASPSMS side (SendTokenSMS / VerifyToken), primarily via SOAP. Alternatively send your own OTP text via WebAPI/JSON and verify in your own application. https://www.aspsms.com/en/asptoken/documentation/ ## Typical use cases Transactional SMS (order status, appointments), alerts, marketing campaigns, OTP/2FA, employee notifications, two-way customer dialogs with a virtual number. ## End-user tools (non-API) SMSBLASTER (web/Windows), Outlook / Email-to-SMS (SMTP), other client tools listed on the site. Same credit account can apply across related tools where stated. ## Pricing (summary) Prepaid ASPSMS Credits; no setup fee; no monthly fee for standard outbound SMS; credits do not expire. Cost per SMS = network credit multiplier x price per credit (depends on purchased package volume). Always use live prices and/or POST /ASPSMSEstimateCreditConsumption for planning: https://www.aspsms.com/en/prices/ ## Pricing and ASPSMS Credits ASPSMS uses prepaid credits. There is no setup fee and no monthly fee for standard outbound SMS. Credits are purchased in advance and do not expire. ### How cost is calculated 1. You buy a package of ASPSMS Credits. The price per credit depends on the package size (volume discounts). 2. Each SMS consumes one or more credits. The number of credits depends mainly on the destination network (a network-specific multiplier / termination factor). 3. Effective cost of one SMS ≈ (credits required for that network) × (price per credit from your purchase package). Examples of multipliers (illustrative; always verify on the live price list): - Many Swiss networks: 1 credit per standard SMS (up to 160 characters) - Some networks (e.g. certain MVNOs / operators): 1.75 credits per standard SMS Longer messages may be sent as multiple SMS parts; credit consumption then scales with the number of parts. For exact operator lists and current prices see: https://www.aspsms.com/en/prices/ https://www.aspsms.com/de/prices/ ### Volume discounts Credits are sold in packages (e.g. 500, 1'000, 2'500, ... up to 100'000+). Larger packages reduce the price per credit. Larger quantities on request. Published package prices are listed on the prices pages above (CHF / EUR / other currencies as offered on the site). ### API helpers - GET /ASPSMSCredits - current credit balance of the account - POST /ASPSMSEstimateCreditConsumption - estimate credits for a list of MSISDNs before sending (supports multiplicity notation such as "0041791111111,5" for five messages to the same number) - StatusCode 5 means not enough credits available ### Billing notes - Credits are prepaid; sending fails or is rejected when the balance is insufficient. - Destination pricing is network-dependent. Prefer EstimateCreditConsumption for cost planning in applications. - Do not hardcode permanent per-network prices in client software; use the estimate API and/or the official prices page.