Host-to-Host API
Kendi ödeme sayfanızı geliştirin
Saf REST primitifleri + HMAC imzalı webhook’lar. Kendi frontend’inizi getirin, kendi ödeme akışınızı gösterin, deneyimin her parçasını kontrol edin. Aynı Paymos backend’i, yüzeyde tam kontrol.

Nasıl çalışır
Üç çağrı. Ortada sizin arayüzünüz
Faturayı backend’inizden oluşturun, ödeme yüzeyini kendiniz gösterin, ödeme onaylandığında imzalı bir olay alın. Sınır temiz kalır.
- 1
Faturayı oluşturun
Backend’inizden /v1/invoices’a POST atın. Tutarı, para birimini, kendi harici sipariş ID’nizi gönderin. Fatura ID’sini ve ödeme URL’sini alın.
- 2
Kendi arayüzünüzü gösterin
Token ve ağı kendi tarafınızda toplayın ve sunucunuzdan onaylayın — çağrı yatırma adresini döndürür. Adresi, QR’ı, sayacı ürününüz nasıl görünüyorsa öyle gösterin.
- 3
İmzalı webhook’u alın
Ödeme onaylandığında Paymos, ucunuza HMAC imzalı bir olay POST’lar. İmzayı doğrulayın, siparişi ödendi işaretleyin, 200 döndürün.
Yayına almadan önce her çağrıyı deneyin
Paneldeki Playground, test API anahtarınızla gerçek sandbox istekleri gönderir. Ucu seçin, parametreleri doldurun, Gönder’e basın — canlı HMAC imzasını, header’ları, yanıtı görün. Postman yok, curl yok, dokümandan kopyala-yapıştır yok.

Arayüz kontrolü
Hazır sayfa yetmediğinde
API üzerinde kendi ödeme formunu geliştiren ekipler için — markalarına piksel hassasiyetinde ve kendi sistemlerine bağlı. Hiçbir hazır yüzey uymadığında başvuracağınız şey host-to-host.
Tam yüzey kontrolü
Cüzdan seçiciyi, QR’ı, durum güncellemelerini kendiniz gösterin. Sizin tasarım sisteminiz, sizin etkileşim diliniz, sizin markanız.
Her mimariye doğal
Node, Python, PHP, Go, Ruby, Java, .NET — HTTP konuşan her şey çalışır. SDK bağımlılığı yok.
Yeniden denemeli imzalı webhook’lar
HMAC imzalı yükler, en az bir kez teslimat, üstel geri çekilmeli yeniden denemeler. Kendi tarafınızda doğrulayın, kendi tarafınızda tekilleştirin.
Sandbox ortamı
Test modu production’ın yanında yaşar. Aynı uçlar, izole veri, gerçek para hareket etmez.
Neyi kontrol edersiniz
Arayüzü siz gösterirsiniz. Zinciri biz izleriz
Sınır net: frontend’iniz müşterinin gördüğü her pikseli yönetir. Altyapımız cüzdan türetme, zincir izleme, onay derinliği ve tahsilatı yönetir.
Sizin arayüzünüz
Cüzdan seçici, ağ seçici, adres gösterimi, QR üretimi, durum geri bildirimi — hepsi sizin tasarımınız.
Sizin akışınız
Adımları ürününüzün ihtiyacına göre sıralayın. Ödemeyi onboarding’e katın, ekranlara bölün, kimlik doğrulamanın arkasına alın.
Sizin markanız
Paymos, müşterinin URL’sinde veya görsel çerçevesinde asla görünmez. Ödeme yüzeyi tamamen beyaz etiketlidir.
Sizin tahsilatınız
Kendi takviminizde hazine cüzdanınıza transfer edin. Diğer her Paymos yüzeyinin tahsil edildiği aynı bakiye defteri.
Başlayın
Aynı backend, öğrenilecek SDK yok
REST ile fatura oluşturun, durum değişikliklerini yoklayın veya webhook’lara abone olun, uyan arayüzü gösterin. Dokümanda dokuz dil örneği, uçlar arasında aynı imza şeması.
Dokümantasyonu okuyunimport { Paymos, externalOrderId } from '@paymos/sdk';
const paymos = new Paymos({
apiKey: process.env.PAYMOS_API_KEY,
apiSecret: process.env.PAYMOS_API_SECRET,
});
const invoice = await paymos.invoices.create({
projectId: 'prj_xxxxxxxxxxxx',
amount: '100.00',
currency: 'USD',
externalOrderId: externalOrderId('order'),
clientId: 'customer-456',
});
console.log(invoice.invoiceId, invoice.paymentUrl);import os
from paymos import Paymos
paymos = Paymos(
api_key=os.environ["PAYMOS_API_KEY"],
api_secret=os.environ["PAYMOS_API_SECRET"],
)
invoice = paymos.invoices.create(
project_id="prj_xxxxxxxxxxxx",
amount="100.00",
currency="USD",
external_order_id="order-123",
client_id="customer-456",
)
print(invoice["invoice_id"], invoice["payment_url"])<?php
use Paymos\Client;
use Paymos\ClientConfig;
use Paymos\IdempotencyKey;
$paymos = new Client(new ClientConfig(
getenv('PAYMOS_API_KEY'),
getenv('PAYMOS_API_SECRET')
));
$invoice = $paymos->invoices()->create(array(
'project_id' => 'prj_xxxxxxxxxxxx',
'amount' => '100.00',
'currency' => 'USD',
'external_order_id' => IdempotencyKey::externalOrderId('order'),
'client_id' => 'customer-456',
));
echo $invoice['invoice_id'] . ' ' . $invoice['payment_url'];package main
import (
"context"
"fmt"
"os"
paymos "github.com/Paymos-labs/go-sdk/v2"
)
func main() {
client, err := paymos.NewClient(os.Getenv("PAYMOS_API_KEY"), os.Getenv("PAYMOS_API_SECRET"))
if err != nil {
panic(err)
}
invoice, err := client.Invoices.Create(context.Background(), paymos.CreateInvoiceParams{
ProjectID: "prj_xxxxxxxxxxxx",
Amount: "100.00",
Currency: "USD",
ExternalOrderID: "order-123",
ClientID: stringPointer("customer-456"),
})
if err != nil {
panic(err)
}
fmt.Println(invoice.InvoiceID, invoice.PaymentURL)
}
func stringPointer(value string) *string { return &value }using Paymos;
using var paymos = new PaymosClient(
Environment.GetEnvironmentVariable("PAYMOS_API_KEY")!,
Environment.GetEnvironmentVariable("PAYMOS_API_SECRET")!);
var invoice = await paymos.Invoices.CreateAsync(new CreateInvoiceRequest(
ProjectId: "prj_xxxxxxxxxxxx",
Amount: "100.00",
Currency: "USD",
ExternalOrderId: "order-123",
ClientId: "customer-456"));
Console.WriteLine($"{invoice.InvoiceId} {invoice.PaymentUrl}");import io.paymos.CreateInvoiceRequest;
import io.paymos.Invoice;
import io.paymos.PaymosClient;
PaymosClient paymos = new PaymosClient(
System.getenv("PAYMOS_API_KEY"),
System.getenv("PAYMOS_API_SECRET"));
Invoice invoice = paymos.invoices.create(
CreateInvoiceRequest.builder()
.projectId("prj_xxxxxxxxxxxx")
.amount("100.00")
.currency("USD")
.externalOrderId("order-123")
.clientId("customer-456")
.build());
System.out.println(invoice.invoiceId() + " " + invoice.paymentUrl());require 'paymos'
paymos = Paymos::Client.new(
api_key: ENV.fetch('PAYMOS_API_KEY'),
api_secret: ENV.fetch('PAYMOS_API_SECRET')
)
invoice = paymos.invoices.create(
project_id: 'prj_xxxxxxxxxxxx',
amount: '100.00',
currency: 'USD',
external_order_id: 'order-123',
client_id: 'customer-456'
)
puts "#{invoice.invoice_id} #{invoice.payment_url}"use paymos::{CreateInvoiceRequest, PaymosClient};
let paymos = PaymosClient::new(
std::env::var("PAYMOS_API_KEY")?,
std::env::var("PAYMOS_API_SECRET")?,
)?;
let invoice = paymos
.invoices()
.create(&CreateInvoiceRequest {
project_id: "prj_xxxxxxxxxxxx".to_owned(),
amount: "100.00".to_owned(),
currency: "USD".to_owned(),
external_order_id: "order-123".to_owned(),
network: None,
allow_multiple_payments: None,
customer_fee_percent: None,
client_id: Some("customer-456".to_owned()),
})
.await?;
println!("{} {}", invoice.invoice_id, invoice.payment_url);Tek imza şeması
Paylaşılan gizli anahtarla HMAC-SHA256. Fatura oluşturma, durum yoklama, transfer, webhook doğrulama için aynı şema — bakımı yapılacak tek kimlik doğrulama hattı.
Platform entegrasyonu
Çok projeli hesaplar, tahsilat ve ödeme çıkışı için ayrı API anahtarları, external_order_id ile idempotent fatura oluşturma. Ödeme sayfasını kendi yönteminizle geliştirin — API aynı kalır.
Host-to-Host’u kim kullanır
Kendine ait ödeme arayüzü olan ürünler için
Hazır arayüzün fazla kısıtlı kaldığı — ve işletmenin kendi mühendislik ekibinin olduğu her yer. Kripto borsaları, saklamalı cüzdanlar, alım satım platformları, giriş rampaları.
Kripto borsaları
Yatırma işlemlerini üçüncü tarafa yönlendirme olarak değil, alım satım arayüzünüzün içinde doğal bir deneyim olarak yürütün.
Saklamalı cüzdanlar
Tamamen cüzdan uygulamanızın içinde yaşayan bakiye yükleme akışları. Tarayıcıya geçiş yok, süreç dışı adım yok.
Alım satım platformları
Teminat yüklemeleri, yatırma mutabakatı, çok hesaplı tahsilat — hepsi aynı REST primitifleriyle yürür.
Kendi arayüzünü yazan platformlar
Ödeme ekranını gömmektense kendisi yazmayı tercih eden ürün ekipleri. Adresler, onay durumu ve imzalı olaylar API’den gelir; kullanıcının baktığı ekranı sizin kodunuz yazar.
Fiyatlandırma
Tahsil edilen fatura başına %1,0, Enterprise’da %0,3
Rakamlar her Paymos yüzeyinde aynı. Enterprise’ı doğrudan isteyin; yanıtı kurucu verir.
Fiyatlandırmayı görün