System check identified some issues: WARNINGS: ?: (urls.W003) Your URL pattern 'admin/logout/' [name='admin:logout'] has a name including a ':'. Remove the colon, to avoid ambiguous namespace references. Testing M-Pesa Configuration... ================================================== M-Pesa Settings: BUSINESS_SHORTCODE: 4125311 CONSUMER_KEY: rD4ImUJhQqeH0zSTbFyFnv8miWCVbYPZ CONSUMER_SECRET: o31AMfIyMLavX5Jq ENVIRONMENT: production PASSKEY: 1a1563c13221eae3055dacaa1df782647051bbd9f350c91940260e4145b3b6d5 business_short_code: 4125311 consumer_key: rD4ImUJhQqeH0zSTbFyFnv8miWCVbYPZ consumer_secret: **************** environment: production passkey: **************************************************************** ================================================== Testing internet connectivity... ✅ Internet connectivity OK Testing access token for production environment... API Base URL: https://api.safaricom.co.ke M-Pesa: Requesting access token from https://api.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials M-Pesa: Using environment production M-Pesa: Consumer Key length: 32 M-Pesa: Consumer Secret length: 16 M-Pesa Token Response Status: 200 M-Pesa Token Response Headers: {'content-type': 'application/json;charset=UTF-8', 'cache-control': 'no-store', 'x-request-id': 'e607b317-bb4c-4eee-8c0b-3639816b5f25', 'content-length': '113', 'date': 'Wed, 30 Jul 2025 12:30:08 GMT'} M-Pesa Token Response: {'access_token': 'BsbLP3TcSfrykIAVFmASyBXodTL5', 'expires_in': '3599'} M-Pesa: Access token obtained successfully ✅ Access token obtained successfully! Token preview: BsbLP3TcSfrykIAVFmAS... Testing API endpoint availability... ⚠️ API endpoint test returned: 401 ================================================== Testing C2B URL registration... M-Pesa: Getting fresh access token for C2B URL registration... M-Pesa: Requesting access token from https://api.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials M-Pesa: Using environment production M-Pesa: Consumer Key length: 32 M-Pesa: Consumer Secret length: 16 M-Pesa Token Response Status: 200 M-Pesa Token Response Headers: {'content-type': 'application/json;charset=UTF-8', 'cache-control': 'no-store', 'x-request-id': '3e616e41-8bd4-4af7-b4c0-5faffc284ab0', 'content-length': '113', 'date': 'Wed, 30 Jul 2025 12:30:10 GMT'} M-Pesa Token Response: {'access_token': 'eZqszfSoAeoLhHsxrJDSHyGHfpYD', 'expires_in': '3599'} M-Pesa: Access token obtained successfully M-Pesa: Using access token: eZqszfSoAe... M-Pesa: Registering C2B URLs with payload: {'ShortCode': '4125311', 'ResponseType': 'Completed', 'ConfirmationURL': 'https://your-domain.com/payments/mpesa-paybill-callback/', 'ValidationURL': 'https://your-domain.com/payments/mpesa-paybill-callback/'} M-Pesa: Request URL: https://api.safaricom.co.ke/mpesa/c2b/v1/registerurl M-Pesa: Request Headers: {'Authorization': 'Bearer eZqszfSoAeoLhHsxrJDSHyGHfpYD', 'Content-Type': 'application/json', 'Cache-Control': 'no-cache'} M-Pesa C2B Registration Response Status: 401 M-Pesa C2B Registration Response Headers: {'content-type': 'application/json;charset=UTF-8', 'www-authenticate': 'Bearer realm="null",error="invalid_token",error_description="keymanagement.service.InvalidAPICallAsNoApiProductMatchFound: Invalid API call as no apiproduct match found"', 'cache-control': 'no-store', 'x-request-id': '9f79ef9e-6e8e-46c2-9db9-5afdf184537a', 'content-length': '228', 'date': 'Wed, 30 Jul 2025 12:30:11 GMT'} M-Pesa C2B Registration Response: {'requestId': '6247-4852-b62a-dd8738ba87319190177', 'errorCode': '401.003.01', 'errorMessage': 'Error Occurred - Invalid Access Token - '} ⚠️ Access token is invalid for C2B registration This usually means your M-Pesa app is not approved for production or your credentials don't match the selected environment ================================================== Configuration test completed!