NAV Navbar
json python javascript go php

Vor dem Anfang

Willkommen bei der offiziellen WestWallet-API-Dokumentation.

Change docs language: UA EN DE RU

Einloggen, um einen API-Schlüssel in den Profileinstellungen zu erhalten.

Fertige Bibliotheken für Programmiersprachen: Python JavaScript Golang PHP

Genehmigung

import json
import hashlib
import hmac
import time
import requests

# Transaktionsinformationen erhalten
api_key = "Ihr_öffentlicher_Schlüssel"
secret_key = "Ihr_privater_Schlüssel"
data = {"id": 435}
timestamp = int(time.time())
if data:
    dumped = json.dumps(data, ensure_ascii=False)
else:
    dumped = ""
sign = hmac.new(secret_key.encode('utf-8'),
                "{}{}".format(timestamp, dumped)
                .encode('utf-8'), hashlib.sha256).hexdigest()
headers = {
    "Content-Type": "application/json",
    "X-API-KEY": api_key,
    "X-ACCESS-SIGN": sign,
    "X-ACCESS-TIMESTAMP": str(timestamp)
}
resp = requests.post("https://api.westwallet.io/wallet/transaction", 
                     data=json.dumps(data),
                     headers=headers)
print(resp.json())                     

Die WestWallet-API erwartet den Empfang in den Headern jeder Ihrer Anfragen X-API-KEY, X-ACCESS-SIGN и X-ACCESS-TIMESTAMP.

X-API-KEY - Ihr öffentlicher Schlüssel;

X-ACCESS-TIMESTAMP - Zeitstempel (Unix-Zeitstempel verwenden);

X-ACCESS-SIGN - HMAC-sha256-Anforderungstext-Signatur (zusammengesetzt aus einer Zeichenfolge, mit einem Zeitstempel und einer JSON-Darstellung der Anforderungstextdaten), die mit Ihrem privaten Schlüssel signiert sind. Für GET-Anfragen ist es ähnlich notwendig bilden eine JSON-Darstellung der Abfrageparameter.

Sehen Sie sich ein Beispiel an, wie eine Zeichenfolge zum Generieren einer Signatur in einer Registerkarte gebildet wird Python-Codebeispiele

Geldbeutel

Abhebungen

POST https://api.westwallet.io/wallet/create_withdrawal

{
  "id": 123123,
  "amount": 0.1,
  "address": "35NjwZg8T4F12ESdEo3rQeYQ8ZiTyDYoTJ",
  "dest_tag": "",
  "currency": "BTC",
  "status": "pending",
  "blockchain_hash": "72648cefcc47b4371f28dc3328bc863918913eebf81b40d4a97d577b96c1ce53",
  "fee": "0.0001",
  "error": "ok"
}
# Send 0.1 ETH to 0x57689002367b407f031f1BB5Ef2923F103015A32
from westwallet_api import WestWalletAPI
from westwallet_api.exceptions import InsufficientFundsException, BadAddressException

client = WestWalletAPI("Ihr_öffentlicher_Schlüssel", "Ihr_privater_Schlüssel")
try:
    sent_transaction = client.create_withdrawal(
        "ETH", "0.1", "0x57689002367b407f031f1BB5Ef2923F103015A32"
    )
except InsufficientFundsException:
    # diesen Fall behandeln
    pass
except BadAddressException:
    # behandelt auch diesen Fall
    pass
else:
    print(sent_transaction.__dict__)
const westwallet = require('westwallet-api');
const westwalletErrors = require('westwallet-api/lib/errors');

const publicKey = "Ihr_öffentlicher_Schlüssel";
const privateKey = "Ihr_privater_Schlüssel";

let client = new westwallet.WestWalletAPI(
    publicKey, 
    privateKey
);

client.createWithdrawal("ETH", "0.1", "0x57689002367b407f031f1BB5Ef2923F103015A32")
.then((data) => {
    console.log(data);
}).catch((error) => {
    if (error instanceof westwalletErrors.InsufficientFundsError) {
        console.log("Unzureichende Mittel");
    } else if (error instanceof westwalletErrors.BadAddressError) {
        console.log("Regex für fehlerhafte Adresse");
    } else {
        console.log(error);
    }
});
package main

import (
    "fmt"
    westwallet "github.com/westwallet/westwallet-golang-api"
)

// Senden von 0.1 ETH an 0x57689002367b407f031f1BB5Ef2923F103015A32
client := westwallet.APIClient{
    Key:      "Ihr_öffentlicher_Schlüssel",
    Secret:   "Ihr_privater_Schlüssel",
}

transaction, err := client.CreateWithdrawal(
    "ETH", "0.1", "0x57689002367b407f031f1BB5Ef2923F103015A32", "", ""
)

fmt.Println(err)
if err != nil {
    panic(err)
}
fmt.Println(transaction)
<?php
require_once 'vendor/autoload.php';

use WestWallet\WestWallet\Client;
use WestWallet\WestWallet\InsufficientFundsException;

$client = new Client("Ihr_öffentlicher_Schlüssel", "Ihr_privater_Schlüssel");

// Senden von 0.1 ETH an 0x57689002367b407f031f1BB5Ef2923F103015A32
try {
    $tx = $client->createWithdrawal("ETH", "0.1", "0x57689002367b407f031f1BB5Ef2923F103015A32");
    print(implode("|", $tx)."\n");
} catch(InsufficientFundsException $e) {
    print("Sie haben nicht genug Geld, um diese Auszahlung vorzunehmen"."\n");
}

Heben Sie Geld aus der Brieftasche ab, die Sie benötigen.

HTTP-Anfrage

POST /wallet/create_withdrawal

Post-Optionen

Parameter Beispiel Verpflichtend Beschreibung
currency BTC Jawohl Währung zu senden
amount 0.1 Jawohl Betrag zu senden
address 35NjwZg8T4F12ESdEo3rQeYQ8ZiTyDYoTJ Jawohl Adresse des Empfängers
dest_tag 1390985919 Nein Ziel-Tag (für einige Währungen erforderlich)
description Nein Etikett zur weiteren Identifizierung in Ihrem Konto
priority medium Nein Transaktionspriorität - niedrig, mittel oder hoch (nur für BTC). Der Standardwert ist mittel.

Transaktionsstatus

Mögliche Status:

POST https://api.westwallet.io/wallet/transaction

{
  "id": 123123,
  "type": "send",
  "amount": 0.1,
  "address": "rw2ciyaNshpHe7bCHo4bRWq6pqqynnWKQg",
  "dest_tag": "755785168",
  "label": "your_label",
  "currency": "XRP",
  "status": "completed",
  "blockchain_confirmations": 1,
  "blockchain_hash": "BC07C0937F2B12D8DF8F90B5A421957DC690DC8512F97925217726E6A28F0A93",
  "fee": "0.0001",
  "error": "ok"
}
from westwallet_api import WestWalletAPI

client = WestWalletAPI("Ihr_öffentlicher_Schlüssel", "Ihr_privater_Schlüssel")
transaction = client.transaction_info(19)
print(transaction.__dict__)
const westwallet = require('westwallet-api');
const westwalletErrors = require('westwallet-api/lib/errors');

const publicKey = "Ihr_öffentlicher_Schlüssel";
const privateKey = "Ihr_privater_Schlüssel";

let client = new westwallet.WestWalletAPI(
    publicKey, 
    privateKey
);

client.transactionInfo(1284).then((data) => {
    console.log(data);
}).catch((error) => {
    if (error instanceof westwalletErrors.TransactionNotFoundError) {
        console.log("Transaktion nicht gefunden");
    }
});
package main

import (
    "fmt"
    westwallet "github.com/westwallet/westwallet-golang-api"
)

client := westwallet.APIClient{
    Key:      "Ihr_öffentlicher_Schlüssel",
    Secret:   "Ihr_privater_Schlüssel",
}

transaction, err := client.TransactionInfo(145);
fmt.Println(err)
if err != nil {
    panic(err)
}
fmt.Println(transaction)
<?php
require_once 'vendor/autoload.php';

use WestWallet\WestWallet\Client;
use WestWallet\WestWallet\TransactionNotFoundException;

$client = new Client("Ihr_öffentlicher_Schlüssel", "Ihr_privater_Schlüssel");

try {
    $tx = $client->transactionInfo(134);
    print(implode("|", $tx)."\n");
} catch(TransactionNotFoundException $e) {
    print("Transaktion nicht gefunden"."\n");
}

Überprüfen Sie den Status einer Bewerbung.

HTTP-Anfrage

POST /wallet/transaction

Post-Optionen

Parameter Beispiel Verpflichtend Beschreibung
id 123123 Jawohl Transaktions-ID innerhalb des WestWallet-Dienstes

Verlauf der Transaktionen

POST https://api.westwallet.io/wallet/transactions

{
  "error": "ok",
  "result": [{
    "id": 123123,
    "created_at": "2019-12-29 15:07:13",
    "updated_at": "2019-12-29 15:12:43",
    "type": "send",
    "amount": 0.1,
    "address": "rw2ciyaNshpHe7bCHo4bRWq6pqqynnWKQg",
    "dest_tag": "755785168",
    "label": "dein_label",
    "currency": "XRP",
    "status": "completed",
    "description": "Ihre benutzerdefinierte Beschreibung",
    "blockchain_confirmations": 1,
    "blockchain_hash": "BC07C0937F2B12D8DF8F90B5A421957DC690DC8512F97925217726E6A28F0A93",
    "fee": "0.0001"
  }]
}

Transaktionsverlauf anzeigen.

HTTP-Anfrage

POST /wallet/transactions

Post-Optionen

Parameter Beispiel Verpflichtend Beschreibung
currency BTC Nein Währungscode, für den Sie eine Liste der Transaktionen erhalten möchten. Wenn nicht angegeben, erhalten Sie eine Liste der Transaktionen für alle Währungen.
limit 10 Nein Die Anzahl der Transaktionen als Antwort auf die Anfrage (nicht mehr als 100). Wenn nicht angegeben, ist der Standardwert 10.
offset 20 Nein Voreingenommenheit
type send Nein Transaktionstyp: Senden oder Empfangen. Wenn nicht angegeben, erhalten Sie eine Liste aller.
order desc Nein Sortierreihenfolge: desc - von neuen Transaktionen zu alten, asc - von alten zu neuen.
status pending Nein Transaktionsstatus zum Filtern (ausstehend oder abgeschlossen)

Wallet-Guthaben

GET https://api.westwallet.io/wallet/balance?currency=BTC

{
  "balance": 0.55,
  "currency": "BTC"
}
from westwallet_api import WestWalletAPI

client = WestWalletAPI("Ihr_öffentlicher_Schlüssel", "Ihr_privater_Schlüssel")
balance = client.wallet_balance("BTC")
print(balance.balance)
const westwallet = require('westwallet-api');
const westwalletErrors = require('westwallet-api/lib/errors');

const publicKey = "Ihr_öffentlicher_Schlüssel";
const privateKey = "Ihr_privater_Schlüssel";

let client = new westwallet.WestWalletAPI(
    publicKey, 
    privateKey
);

client.walletBalance("BTC").then((data) => {
    console.log(data);
}).catch((error) => {
    if (error instanceof westwalletErrors.CurrencyNotFoundError) {
        console.log("Keine solche Währung");
    }
});
package main

import (
    "fmt"
    westwallet "github.com/westwallet/westwallet-golang-api"
)

client := westwallet.APIClient{
    Key:      "Ihr_öffentlicher_Schlüssel",
    Secret:   "Ihr_privater_Schlüssel",
}

balance, err := client.WalletBalance("BTC");
fmt.Println(err)
if err != nil {
    panic(err)
}
fmt.Println(balance)
<?php
require_once 'vendor/autoload.php';

use WestWallet\WestWallet\Client;
use WestWallet\WestWallet\CurrencyNotFoundException;

$client = new Client("Ihr_öffentlicher_Schlüssel", "Ihr_privater_Schlüssel");

try {
    $balance = $client->walletBalance("BTC");
    print(implode("|", $balance)."\n");
} catch(CurrencyNotFoundException $e) {
    print("Keine solche Währung"."\n");
}

Wallet-Guthaben prüfen

HTTP-Anfrage

GET /wallet/balance?currency=BTC

Parameter abfragen

Parameter Beispiel Verpflichtend Beschreibung
currency BTC Jawohl Wallet-Währung

Salden aller Wallets

GET https://api.westwallet.io/wallet/balances

{
  "ETH": 3.22,
  "ETC": 34,
  "LTC": 40,
  "BTC": 1.11,
  "XLM": 319.11,
  "XMR": 15.12
}
from westwallet_api import WestWalletAPI

client = WestWalletAPI("Ihr_öffentlicher_Schlüssel", "Ihr_privater_Schlüssel")
balances = client.wallet_balances()
print(balances.__dict__)
const westwallet = require('westwallet-api');
const westwalletErrors = require('westwallet-api/lib/errors');

const publicKey = "Ihr_öffentlicher_Schlüssel";
const privateKey = "Ihr_privater_Schlüssel";

let client = new westwallet.WestWalletAPI(
    publicKey, 
    privateKey
);

client.walletBalances().then((data) => {
    console.log(data);
}).catch((error) => {
    console.log(error);
});
package main

import (
    "fmt"
    westwallet "github.com/westwallet/westwallet-golang-api"
)

client := westwallet.APIClient{
    Key:      "Ihr_öffentlicher_Schlüssel",
    Secret:   "Ihr_privater_Schlüssel",
}

balances, err := client.WalletBalances();
fmt.Println(err)
if err != nil {
    panic(err)
}
fmt.Println(balance)
<?php
require_once 'vendor/autoload.php';

use WestWallet\WestWallet\Client;
use WestWallet\WestWallet\CurrencyNotFoundException;

$client = new Client("Ihr_öffentlicher_Schlüssel", "Ihr_privater_Schlüssel");

$balances = $client->walletBalances();
print(implode("|", $balances)."\n");

Finden Sie die Salden aller Wallets heraus

HTTP-Anfrage

GET /wallet/balances

Adressen

Adresse generieren

POST https://api.westwallet.io/address/generate

{
  "address": "rw2ciyaNshpHe7bCHo4bRWq6pqqynnWKQg",
  "dest_tag": "755785168",
  "currency": "XRP",
  "label": "your_label",
  "error": "ok"
}
from westwallet_api import WestWalletAPI

client = WestWalletAPI("Ihr_öffentlicher_Schlüssel", "Ihr_privater_Schlüssel")
address = client.generate_address("XRP", "https://yourwebsite.com/ipn_url", "your_address_label")
print(address.address, address.dest_tag)
const westwallet = require('westwallet-api');
const westwalletErrors = require('westwallet-api/lib/errors');

const publicKey = "Ihr_öffentlicher_Schlüssel";
const privateKey = "Ihr_privater_Schlüssel";

let client = new westwallet.WestWalletAPI(
    publicKey, 
    privateKey
);

client.generateAddress("BTC", "https://yourwebsite.com/ipn_url", "your_address_label")
.then((data) => {
    console.log(data);
}).catch((error) => {
    if (error instanceof westwalletErrors.CurrencyNotFoundError) {
        console.log("Keine solche Währung");
    }
});

package main

import (
    "fmt"
    westwallet "github.com/westwallet/westwallet-golang-api"
)

client := westwallet.APIClient{
    Key:      "Ihr_öffentlicher_Schlüssel",
    Secret:   "Ihr_privater_Schlüssel",
}

address, err := client.GenerateAddress("BTC", "https://yourwebsite.com/ipn_url", "Ihr_Adressetikett")
if err != nil {
    panic(err)
}
fmt.Println(address.Address)
<?php
require_once 'vendor/autoload.php';

use WestWallet\WestWallet\Client;
use WestWallet\WestWallet\CurrencyNotFoundException;

$client = new Client("Ihr_öffentlicher_Schlüssel", "Ihr_privater_Schlüssel");

try {
    $address = $client->generateAddress("BTC");
    print(implode("|", $address)."\n");
} catch(CurrencyNotFoundException $e) {
    print("Keine solche Währung"."\n");
}

HTTP-Anfrage

POST /address/generate

Post-Optionen

Parameter Beispiel Verpflichtend Beschreibung
currency BTC Jawohl Währung der Adresse, die Sie generieren werden
ipn_url https://yourwebsite.com/payment_secret_token?tx_id=123321 Nein Benachrichtigungs-URL für sofortige Zahlung. Sie erhalten eine Benachrichtigung an diese Adresse, sobald jemand Geld an diese Adresse einzahlt
label tx54543 Nein Geben Sie eine Bezeichnung für die Adresse zur weiteren Identifizierung an (maximal 30 Zeichen)

Zahlungsseite (Rechnung)

POST https://api.westwallet.io/address/create_invoice

{
  "allowed_currencies_data": [{"address": "35NjwZg8T4F12ESdEo3rQeYQ8ZiTyDYoTJ",
                               "amount": 0.00211364,
                               "currency_code": "BTC",
                               "dest_tag": ""},
                              {"address": "rn97Zbg9V6hiqJoK6EQ8RtuaLUTYHSFXyw",
                               "amount": 0.02658667,
                               "currency_code": "XRP",
                               "dest_tag": "10000324245"}],
  "expire_at": "2022-01-31 19:36:14",
  "token": "0b4ab755b42b6ff7fcb01100e42ec3",
  "url": "https://westwallet.io/payment/0b4ab755b42b6ff7fcb01100e42ec3",
  "error": "ok"
}

HTTP-Anfrage

POST /address/create_invoice

Post-Optionen

Parameter Beispiel Verpflichtend Beschreibung
currencies ["BTC", "XRP"] Jawohl Liste der zulässigen Kryptowährungen für die Zahlung.
amount 100 Jawohl Höhe der Einschreibung. Wenn im Währungsfeld mehr als eine Währung angegeben ist, muss der Betrag in USD angegeben werden.
amount_in_usd true Nein Verwenden Sie dieses Feld, wenn Sie einen Betrag in USD angeben müssen, wenn eine Währung im Währungsfeld angegeben ist. Dieses Feld ist automatisch wahr, wenn mehr als eine Währung im Währungsfeld angegeben ist.
ipn_url https://yourwebsite.com/payment_secret_token?tx_id=123321 Jawohl Benachrichtigungs-URL für sofortige Zahlung. Sie erhalten eine Benachrichtigung an diese Adresse, sobald jemand Geld auf die für die Rechnung generierte Adresse gutschreibt
description Payment 1234 Nein Zahlungs-Beschreibung. Textinformationen, die auf der Zahlungsseite angezeigt werden.
label 1234 Nein Geben Sie eine Bezeichnung für die Adresse zur weiteren Identifizierung an (maximal 30 Zeichen)
ttl 15 Nein Anwendungslebensdauer in Minuten. Maximal 15 Minuten. Nach Ablauf dieser Zeit wird die Zahlungsschnittstelle (Adressen, QR etc.) nicht mehr auf der Antragsseite angezeigt.

Zahlungsbenachrichtigungen

Beispiele für Zahlungsbenachrichtigungen

{
  "id": 123123,
  "amount": 0.1,
  "address": "35NjwZg8T4F12ESdEo3rQeYQ8ZiTyDYoTJ",
  "dest_tag": "",
  "label": "312321",
  "currency": "BTC",
  "status": "completed",
  "blockchain_confirmations": 1,
  "fee": "0.0001",
  "blockchain_hash": "72648cefcc47b4371f28dc3328bc863918913eebf81b40d4a97d577b96c1ce53"
}

Nachdem Sie eine Adresse generiert haben, indem Sie ipn_url dafür angegeben haben und die Währung an diese Adresse erhalten haben, Sie erhalten eine POST-Anfrage an diese URL mit eine solche Datenstruktur Mögliche Status im Anfragetext: pending, completed.

Wir senden eine Anfrage mit einem Header Content-Type: application/x-www-form-urlencoded .

HTTP-Anfrage

GET /ipn/example

Mögliche Fehler

In der Antwort auf jede Anfrage gibt es ein Feld "error". Wenn "error" != "ok", dann hast du einen der folgenden fehler:

Fehler

Die WestWallet-API verwendet diese Fehlercodes für alle Anfragen:

Fehlercode Bedeutung
400 Bad Request - Falsch angegebene Request-Felder, Dekodierung im errors-Feld.
401 Unauthorized - Der API-Schlüssel ist falsch oder gar nicht angegeben.
404 Not Found - Die Quelle kann nicht gefunden werden. Sehen Sie sich die Dokumentation an.
405 Method Not Allowed - Sie versuchen, eine Anfrage mit einer verbotenen HTTP-Methode zu stellen.
429 Too Many Requests - Zu viele Anfragen von Ihnen.
500 Internal Server Error - Das Problem liegt auf unserer Serverseite. Bitte melden Sie dies unserem Support.

Bei erfolgreicher Anfrage erhalten Sie den Status 200.