=== BulkSMS Integration Test === 1. Configuration Check: Username (TokenID): 3D5CEB01DDCA4AD99BB83F3EC29E00C5-01-0 Password (TokenSecret): ***************************** API URL: https://api.bulksms.com/v1/messages/send From Number: HarvestUAT Test Mode: Disabled 2. SMS Service Test: ✓ SMS Service initialized successfully ✓ Service configured: Yes ✓ Service status: { "configured": true, "service": "BulkSMS", "api_url": "https:\/\/api.bulksms.com\/v1\/messages\/send", "from_number": "HarvestUAT" } 3. OTP Sending Test (Test Mode): Testing OTP send to: +27123456789 Response: { "success": true, "data": [ { "id": "1581059079604801536", "type": "SENT", "from": "", "to": "27123456789", "body": "Your Harvest Rewards verification code is: 123456. Valid for 10 minutes. Do not share this code.", "encoding": "TEXT", "protocolId": 0, "messageClass": 0, "submission": { "id": "1-00000000002155726215", "date": "2025-12-11T21:24:19Z" }, "status": { "id": "ACCEPTED.null", "type": "ACCEPTED", "subtype": null }, "relatedSentMessageId": null, "userSuppliedId": null, "numberOfParts": null, "creditCost": null } ], "http_code": 201, "message_id": null } ✓ OTP test successful === Test Complete === 4. Direct BulkSMS API Test: URL: https://api.bulksms.com/v1/messages/send?to=%2B27123456789&body=Test+message+from+Harvest+Rewards+API Auth Header: Authorization: Basic M0Q1Q0VCMDFERENBNEFEOTlCQjgzRjNFQzI5RTAwQzUtMDEtMDpTOXloQmJPd2pxUGlsdUNFNGdoQ0RBQlNOMzc4eQ== Sending actual SMS request... HTTP Code: 201 Response: [ { "id" : "1581059081244774400", "type" : "SENT", "from" : "", "to" : "27123456789", "body" : "Test message from Harvest Rewards API", "encoding" : "TEXT", "protocolId" : 0, "messageClass" : 0, "submission" : { "id" : "1-00000000002155726216", "date" : "2025-12-11T21:24:19Z" }, "status" : { "id" : "ACCEPTED.null", "type" : "ACCEPTED", "subtype" : null }, "relatedSentMessageId" : null, "userSuppliedId" : null, "numberOfParts" : null, "creditCost" : null } ] ✓ Direct API test successful === All Tests Complete ===