Payment error: payment total does not match order total

Full Request Text POST /v2/orders HTTP/1.1 Host: Accept: / Content-Type: application/json Authorization: Bearer redacted Content-Length: 460 {“idempotency_key”:“2F38A1A044AB”,“order”:{“location_id”:“L8ZT4JFG0HWBA”,“customer_id”:“1431”,“line_items”:[{“quantity”:“1”,“name”:"(1) the best stuff",“base_price_money”:{“amount”:1500,“currency”:“USD”}}],“taxes”:[{“applied_money”:{“amount”:0,“currency”:“USD”},“scope”:“ORDER”,“type”:“ADDITIVE”,“name”:“Sales Tax”,“percentage”:“1.5”}],“discounts”:[{“amount_money”:{“amount”:0,“currency”:“USD”},“scope”:“ORDER”,“type”:“FIXED_AMOUNT”,“name”:“Order Discount”}]}} HTTP/1.1 200 OK Date: Thu, 03 Dec 2020 13:55:23 GMT Frame-Options: DENY X-Frame-Options: DENY X-Content-Type-Options: nosniff X-Xss-Protection: 1; mode=block Content-Type: application/json;charset=utf-8 Square-Version: 2020-11-18 Vary: Accept-Encoding, User-Agent Content-Length: 1911 Strict-Transport-Security: max-age=631152000; includeSubDomains; preload {“order”: {“id”: “A2yHGun6z8CHCrnidquAbsBL1pDZY”,“location_id”: “L8ZT4JFG0HWBA”,“line_items”: [{“uid”: “MGRYxvaY2Nnd5oVt7UgkIB”,“quantity”: “1”,“name”: “(1) the best stuff”,“base_price_money”: {“amount”: 1500,“currency”: “USD”},“gross_sales_money”: {“amount”: 1500,“currency”: “USD”},“total_tax_money”: {“amount”: 22,“currency”: “USD”},“total_discount_money”: {“amount”: 0,“currency”: “USD”},“total_money”: {“amount”: 1522,“currency”: “USD”},“variation_total_price_money”: {“amount”: 1500,“currency”: “USD”},“applied_taxes”: [{“uid”: “Kf2oTHWR8n4c4tJDDPnlnC”,“tax_uid”: “gLrHJZqNWg4mdy8qP1BUED”,“applied_money”: {“amount”: 22,“currency”: “USD”}}],“applied_discounts”: [{“uid”: “taINGtUmmzEB8v9FndW58”,“discount_uid”: “3jXdAEx9MgPU01cfzVBafB”,“applied_money”: {“amount”: 0,“currency”: “USD”}}]}],“taxes”: [{“uid”: “gLrHJZqNWg4mdy8qP1BUED”,“name”: “Sales Tax”,“percentage”: “1.5”,“type”: “ADDITIVE”,“applied_money”: {“amount”: 22,“currency”: “USD”},“scope”: “ORDER”}],“discounts”: [{“uid”: “3jXdAEx9MgPU01cfzVBafB”,“name”: “Order Discount”,“amount_money”: {“amount”: 0,“currency”: “USD”},“applied_money”: {“amount”: 0,“currency”: “USD”},“type”: “FIXED_AMOUNT”,“scope”: “ORDER”}],“created_at”: “2020-12-03T13:55:23.492Z”,“updated_at”: “2020-12-03T13:55:23.492Z”,“state”: “OPEN”,“version”: 1,“total_tax_money”: {“amount”: 22,“currency”: “USD”},“total_discount_money”: {“amount”: 0,“currency”: “USD”},“total_tip_money”: {“amount”: 0,“currency”: “USD”},“total_money”: {“amount”: 1522,“currency”: “USD”},“total_service_charge_money”: {“amount”: 0,“currency”: “USD”},“net_amounts”: {“total_money”: {“amount”: 1522,“currency”: “USD”},“tax_money”: {“amount”: 22,“currency”: “USD”},“discount_money”: {“amount”: 0,“currency”: “USD”},“tip_money”: {“amount”: 0,“currency”: “USD”},“service_charge_money”: {“amount”: 0,“currency”: “USD”}},“source”: {“name”: “Sandbox for sq0idp-DX93zxRRQP5MfY0bBL8BbQ”},“customer_id”: “1431”}}

Full Request Text POST /v2/payments HTTP/1.1 Host: Accept: / Content-Type: application/json Authorization: Bearer redacted Content-Length: 827 {“idempotency_key”:“2F38A1A044AB”,“autocomplete”:true,“location_id”:“L8ZT4JFG0HWBA”,“shipping_address”:{“first_name”:“Jones”,“last_name”:“Jones”,“organization”:null,“address_line_1”:“123 main”,“address_line_2”:null,“locality”:“Roswell”,“administrative_district_level_1”:“GA”,“postal_code”:“30076”,“country”:“US”},“billing_address”:{“first_name”:“Jones”,“last_name”:“Jones”,“organization”:null,“address_line_1”:“123 main”,“address_line_2”:null,“locality”:“Roswell”,“administrative_district_level_1”:“GA”,“postal_code”:“30076”,“country”:“US”},“amount_money”:{“amount”:1500,“currency”:“USD”},“customer_id":“6YVW4V4MQRW2V8XFPM62QQY5ZR”,“source_id”:“ccof:AckxynGrDd3YSjJD4GB”,“buyer_email_address”:"[email protected]”,“reference_id”:“2F38A1A044AB”,“note”:“Konnektive CRM Order - D088FED6FA”,“order_id”:“A2yHGun6z8CHCrnidquAbsBL1pDZY”} HTTP/1.1 400 Bad Request Date: Thu, 03 Dec 2020 13:55:23 GMT Frame-Options: DENY X-Frame-Options: DENY X-Content-Type-Options: nosniff X-Xss-Protection: 1; mode=block Content-Type: application/json Square-Version: 2020-11-18 Squareup–Connect–V2–Common–Versionmetadata-Bin: CgoyMDIwLTExLTE4 Content-Length: 1602 Strict-Transport-Security: max-age=631152000; includeSubDomains; preload {“errors”: [{“code”: “BAD_REQUEST”,“detail”: “The payment total does not match the order total.”,“category”: “INVALID_REQUEST_ERROR”}],“payment”: {“id”: “DLnrJgGsaLiwCMCucwC2sN39xWeZY”,“created_at”: “2020-12-03T13:55:24.046Z”,“updated_at”: “2020-12-03T13:55:24.237Z”,“amount_money”: {“amount”: 1500,“currency”: “USD”},“status”: “CANCELED”,“delay_duration”: “PT168H”,“source_type”: “CARD”,“card_details”: {“status”: “VOIDED”,“card”: {“card_brand”: “VISA”,“last_4”: “1111”,“exp_month”: 12,“exp_year”: 2025,“fingerprint”: “sq-1-av3iQDFAQpr-KdCvP2F1qyrO8_g4Tf_1LbN9eVTIuQUIzwLhwNY3UrDmbsOsnZ6CjQ”,“card_type”: “CREDIT”,“bin”: “411111”},“entry_method”: “ON_FILE”,“cvv_status”: “CVV_NOT_CHECKED”,“avs_status”: “AVS_ACCEPTED”,“statement_description”: “SQ *DEFAULT TEST ACCOUNT”},“location_id”: “L8ZT4JFG0HWBA”,“order_id”: “A2yHGun6z8CHCrnidquAbsBL1pDZY”,“reference_id”: “2F38A1A044AB”,“risk_evaluation”: {“created_at”: “2020-12-03T13:55:24.154Z”,“risk_level”: “NORMAL”},“buyer_email_address”: “[email protected]”,“billing_address”: {“address_line_1”: “123 main”,“locality”: “Roswell”,“administrative_district_level_1”: “GA”,“postal_code”: “30076”,“country”: “US”,“first_name”: “Jones”,“last_name”: “Jones”},“shipping_address”: {“address_line_1”: “123 main”,“locality”: “Roswell”,“administrative_district_level_1”: “GA”,“postal_code”: “30076”,“country”: “US”,“first_name”: “Jones”,“last_name”: “Jones”},“note”: “Konnektive CRM Order - D088FED6FA”,“customer_id”: “6YVW4V4MQRW2V8XFPM62QQY5ZR”,“total_money”: {“amount”: 1500,“currency”: “USD”},“delay_action”: “CANCEL”,“delayed_until”: “2020-12-10T13:55:24.046Z”}}

These are requests made to orders then payments API. Why would I be getting this error about payment/order totals not matching?

removed the hosts from the logs as it was not allowing me to submit with them included. the hosts are connect.squareupsandbox.com

You can see the order total_money->amount is equal to 1522. Yet, in your CreatePayment you set the amount_money to 1500. These two values do not equal, so the error occurs. The totals must match for the payment to succeed.