Skip to main content

Auto Payment

The PayTechUZ SDK provides a unified Framework integration for handling Auto Payments (Card tokenization and recurrent payments).

Payme

Cards

You can manage saved cards using the cards property of the PaymeGateway instance.

from paytechuz.gateways.payme import PaymeGateway


# Initialize Payme gateway
payme = PaymeGateway(
payme_id="your_payme_id",
payme_key="your_payme_key",
is_test_mode=True
)

# 1. Create a new card
# This will return a token that needs to be verified
create_response = payme.cards.create(
card_number="8600000000000000",
expire_date="12/25",
save=True # Set to True to save the card for future use
)
print(create_response)

# 2. Get verification code (if not received automatically)
payme.cards.get_verify_code(token="card_token")

# 3. Verify the card with the code sent to the user via SMS
verify_response = payme.cards.verify(
token="card_token",
code="123456"
)
print(verify_response)

# 4. Check card status
check_response = payme.cards.check(token="card_token")
print(check_response)

# 5. Remove a saved card
payme.cards.remove(token="card_token")

Receipts

You can manage receipts using the receipts property of the PaymeGateway instance.

from paytechuz.gateways.payme import PaymeGateway

# Initialize Payme gateway
payme = PaymeGateway(
payme_id="your_payme_id",
payme_key="your_payme_key",
is_test_mode=True
)

# 1. Create a receipt
create_response = payme.receipts.create(
amount=100000, # 1000 sum (in tiyin)
account={"order_id": "12345"},
description="Payment for order #12345"
)
print(create_response)

# 2. Pay a receipt with a saved card
pay_response = payme.receipts.pay(
receipt_id="receipt_id",
token="card_token_here"
)
print(pay_response)

# 3. Check receipt status
check_response = payme.receipts.check(receipt_id="receipt_id")
print(check_response)

# 4. Send receipt to phone number (SMS)
send_response = payme.receipts.send(
receipt_id="receipt_id",
phone="998901234567"
)
print(send_response)

# 5. Cancel a receipt
cancel_response = payme.receipts.cancel(
receipt_id="receipt_id",
reason="Refund requested"
)
print(cancel_response)

Click

Cards

Click supports card tokenization via the standardized cards property.

from paytechuz.gateways.click import ClickGateway

# Initialize Click gateway
click = ClickGateway(
service_id="your_service_id",
merchant_id="your_merchant_id",
merchant_user_id="your_merchant_user_id",
secret_key="your_secret_key",
is_test_mode=True
)

# 1. Request a card token
# This returns a temporary token and sends SMS to the user
token_response = click.cards.create(
card_number="8600000000000000",
expire_date="0330", # MMYY format
save=True # Same as Payme! (maps to temporary=0)
)
print(token_response)

# 2. Verify the card token
verify_response = click.cards.verify(
card_token="card_token",
sms_code="12345"
)
print(verify_response)

# 3. Make a payment with the verified token
payment_response = click.cards.pay(
card_token=card_token,
amount=50000,
transaction_parameter="order_123"
)
print(payment_response)

Invoices

You can manage invoices using the invoices property (or receipts alias) of the ClickGateway instance.

# 1. Create an invoice
invoice_response = click.invoices.create(
id="order_123",
amount=150000,
phone="998901234567",
description="Payment for order #123"
)
print(invoice_response)

# 2. Check invoice status
status_response = click.invoices.check(invoice_id="invoice_id")
print(status_response)

# 3. Cancel an invoice
cancel_response = click.invoices.cancel(
invoice_id="invoice_id",
reason="Order cancelled"
)
print(cancel_response)