DEV Community

Cover image for How to Update Binance P2P Ad Price with Python: Complete Step-by-Step Tutorial
PyDev
PyDev

Posted on

How to Update Binance P2P Ad Price with Python: Complete Step-by-Step Tutorial

Managing cryptocurrency trading on Binance can be time-consuming, especially for P2P merchants who need to constantly adjust ad prices to stay competitive. By using the Binance API with Python, you can automatically update your ad prices in real time and reduce the need for manual adjustments.

In this guide, you’ll learn:

Why automating Binance P2P ad price updates is important

What you need before getting started

A working Python script for editing ad prices

Common errors and how to fix them

Why Automate Binance Ad Price Updates?

Manual ad management on Binance P2P is inefficient and risky. Automating price changes provides several benefits:

⚡ Instant reaction to market fluctuations
📉 Lower risk of losses due to delays
💼 Optimized trading workflows
⏰ Significant time savings for merchants

Automation is particularly valuable if you’re running multiple ads or trading in highly volatile markets.

Requirements Before You Start

To programmatically change ad prices on Binance P2P, you’ll need:

Binance API keys (make sure you generate them from your merchant account).

Verified merchant account (only merchants can modify ads through the API).

Python with Requests library installed:
pip install requests

Python Code Example: Update Binance P2P Ad Price

Here’s a practical example of how to change an ad price using Python and the Binance API:

import time
import hmac, hashlib
import requests

class BinanceAPI:
    def __init__(self, api_key, api_secret):
        self.api_key = api_key
        self.api_secret = api_secret

    def getServerTime(self):
        return int(time.time() * 1000)

    def getSignature(self):
        query_string = f"timestamp={self.getServerTime()}"
        return hmac.new(
            self.api_secret.encode("utf-8"),
            query_string.encode("utf-8"),
            hashlib.sha256
        ).hexdigest()

    def getApiKey(self):
        return self.api_key

    def edit_ad(self, adv_num, new_price):
        payload = {'advNo': adv_num, 'price': new_price}
        params = {'timestamp': self.getServerTime(), 'signature': self.getSignature()}
        headers = {"Content-Type": "application/json", "X-MBX-APIKEY": self.getApiKey()}

        res = requests.post(
            'https://api.binance.com/sapi/v1/c2c/ads/update?',
            headers=headers, json=payload, params=params
        ).json()

        if res.get('code') == -1002:
            print("Access error: Merchant API keys required.")
        elif res.get('success'):
            print(f"Price updated: ad {adv_num} → new price {new_price}")
        else:
            print(f"Update error: {res.get('message', 'Unknown error')}")

        return res

Enter fullscreen mode Exit fullscreen mode

Example Usage:

if __name__ == '__main__':
    api = BinanceAPI("YOUR_API_KEY", "YOUR_API_SECRET")
    api.edit_ad("1234567890987654321", "46")

Enter fullscreen mode Exit fullscreen mode

Common Errors and Solutions

Error code -1002: Access denied → Use merchant API keys.

success: False: Incorrect ad ID → Verify ad number.

HTTP 401 or 403: Authorization issue → Double-check API key and secret.

Ready-Made Binance P2P Bot

If you don’t want to build everything from scratch, consider using a ready-to-use Binance P2P Trade Bot.
This bot automatically:

Monitors competitor prices

Adjusts your ads to stay competitive

Saves you time and increases efficiency

Final Thoughts

Automating Binance P2P ad price changes with Python is an essential strategy for serious crypto traders. It helps you:

Stay competitive in fast-moving markets

Reduce manual effort

Improve trading efficiency

Whether you’re creating your own Binance trading bot or just optimizing a few ads, Python + Binance API gives you full control over your P2P pricing strategy.

Top comments (0)