C# 카카오페이 400오류가 나옵니다

    string url = "https://kapi.kakao.com/v1/payment/ready";

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    req.Method = "POST";
    req.Host = "kapi.kakao.com";
    req.Headers.Add("Authorization", "KakaoAK a0a250f51dc38d946ebdb79f3461e54f");
    req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";

    List<KeyValuePair<string, object>> data = new List<KeyValuePair<string, object>>()
        {
            new KeyValuePair<string, object>("cid", "TC0ONETIME"),
            new KeyValuePair<string, object>("partner_order_id", "namuseung"),
            new KeyValuePair<string, object>("partner_user_id", "namuseung"),
            new KeyValuePair<string, object>("item_name", "Kimmuseung"),
            new KeyValuePair<string, object>("quantity", 1),
            new KeyValuePair<string, object>("total_amount", 1000),
            new KeyValuePair<string, object>("tax_free_amount", 0),
            new KeyValuePair<string, object>("approval_url", "https://developers.kakao.com/success"),
            new KeyValuePair<string, object>("cancel_url", "https://developers.kakao.com/cancel"),
            new KeyValuePair<string, object>("fail_url", "https://developers.kakao.com/fail"),
    };

    StringBuilder builder = new StringBuilder();

    foreach (KeyValuePair<string, object> kvp in data)
    {
        builder.Append(kvp.Key + "=" + kvp.Value + "&");
    }

    // data들을 UTF8형식으로 바이트 변환함.            
    //byte[] bytes = Encoding.UTF8.GetBytes(builder.ToString());
    byte[] bytes = Encoding.UTF8.GetBytes(builder.ToString());


    req.ContentLength = bytes.Length;

    // HttpWebRequest req에 변환된 데이터들을 넣자.
    using (Stream reqStream = req.GetRequestStream())
        reqStream.Write(bytes, 0, bytes.Length);

    // 받은 내용 저장 변수
    string responseText = string.Empty;

    // HttpWebRequest req로부터 response한 결과 클래스
    using (WebResponse resp = req.GetResponse())
    {
        Stream respStream = resp.GetResponseStream();


    }

원인이 무엇일까요?