The interactive walkthrough displays code examples alongside step-by-step explanations.
Follow the walkthrough to use the SDK in your Rust code.
{/* Hidden markdown content for server rendering and AI ingestion */}
/// Import the SDK
Import the Payabli SDK to make it available in your code.
```rust
// src/main.rs
use payabli_api::prelude::*;
```
/// Define constants
Define your API key and entrypoint as constants. Get these values from your Payabli account.
```rust focus=3-5
// src/main.rs
use payabli_api::prelude::*;
const API_KEY: &str = "REPLACE_WITH_YOUR_API_KEY";
const ENTRY_POINT: &str = "REPLACE_WITH_YOUR_ENTRYPOINT";
```
/// Set up the async runtime
Create the main async function using the `tokio` runtime.
```rust focus=7-8
// src/main.rs
use payabli_api::prelude::*;
const API_KEY: &str = "REPLACE_WITH_YOUR_API_KEY";
const ENTRY_POINT: &str = "REPLACE_WITH_YOUR_ENTRYPOINT";
#[tokio::main]
async fn main() {}
```
/// Initialize the client
Create an authenticated client instance with your API key. This client has methods that call Payabli's API endpoints.
```rust focus=9-14
// src/main.rs
use payabli_api::prelude::*;
const API_KEY: &str = "REPLACE_WITH_YOUR_API_KEY";
const ENTRY_POINT: &str = "REPLACE_WITH_YOUR_ENTRYPOINT";
#[tokio::main]
async fn main() {
let config = ClientConfig {
api_key: Some(API_KEY.to_string()),
..Default::default()
};
let client = ApiClient::new(config).expect("Failed to build client");
}
```
/// Build the payment request
Construct a request object that contains all the necessary fields to process a transaction. Include payment details, a payment method, and customer data.
```rust focus=16-79
// src/main.rs
use payabli_api::prelude::*;
const API_KEY: &str = "REPLACE_WITH_YOUR_API_KEY";
const ENTRY_POINT: &str = "REPLACE_WITH_YOUR_ENTRYPOINT";
#[tokio::main]
async fn main() {
let config = ClientConfig {
api_key: Some(API_KEY.to_string()),
..Default::default()
};
let client = ApiClient::new(config).expect("Failed to build client");
let result = client
.money_in
.getpaid(
&GetpaidRequest {
body: TransRequestBody {
account_id: None,
customer_data: Some(PayorDataRequest {
additional_data: None,
billing_address_1: None,
billing_address_2: None,
billing_city: None,
billing_country: None,
billing_email: None,
billing_phone: None,
billing_state: None,
billing_zip: None,
company: None,
customer_id: Some(CustomerId(4440)),
customer_number: None,
first_name: None,
identifier_fields: None,
last_name: None,
shipping_address_1: None,
shipping_address_2: None,
shipping_city: None,
shipping_country: None,
shipping_state: None,
shipping_zip: None,
}),
entry_point: Some(Entrypointfield(ENTRY_POINT.to_string())),
invoice_data: None,
ipaddress: Some(IpAddress("255.255.255.255".to_string())),
order_description: None,
order_id: None,
payment_details: PaymentDetail {
categories: None,
check_image: None,
check_number: None,
currency: None,
service_fee: Some(0.0),
split_funding: None,
total_amount: 100.0,
},
payment_method: PaymentMethod::PayMethodCredit(PayMethodCredit {
cardcvv: Some(Cardcvv("999".to_string())),
cardexp: Cardexp("02/27".to_string()),
card_holder: Some(Cardholder("John Cassian".to_string())),
cardnumber: Cardnumber("4111111111111111".to_string()),
cardzip: Some(Cardzip("12345".to_string())),
initiator: Some(Initiator("payor".to_string())),
method: "card".to_string(),
save_if_success: None,
}),
source: None,
subdomain: None,
subscription_id: None,
},
ach_validation: None,
force_customer_creation: None,
include_details: None,
},
None,
)
.await;
}
```
/// Show the result
Log the transaction response. Check the output to see if the transaction was successful.
```rust focus=81
// src/main.rs
use payabli_api::prelude::*;
const API_KEY: &str = "REPLACE_WITH_YOUR_API_KEY";
const ENTRY_POINT: &str = "REPLACE_WITH_YOUR_ENTRYPOINT";
#[tokio::main]
async fn main() {
let config = ClientConfig {
api_key: Some(API_KEY.to_string()),
..Default::default()
};
let client = ApiClient::new(config).expect("Failed to build client");
let result = client
.money_in
.getpaid(
&GetpaidRequest {
body: TransRequestBody {
account_id: None,
customer_data: Some(PayorDataRequest {
additional_data: None,
billing_address_1: None,
billing_address_2: None,
billing_city: None,
billing_country: None,
billing_email: None,
billing_phone: None,
billing_state: None,
billing_zip: None,
company: None,
customer_id: Some(CustomerId(4440)),
customer_number: None,
first_name: None,
identifier_fields: None,
last_name: None,
shipping_address_1: None,
shipping_address_2: None,
shipping_city: None,
shipping_country: None,
shipping_state: None,
shipping_zip: None,
}),
entry_point: Some(Entrypointfield(ENTRY_POINT.to_string())),
invoice_data: None,
ipaddress: Some(IpAddress("255.255.255.255".to_string())),
order_description: None,
order_id: None,
payment_details: PaymentDetail {
categories: None,
check_image: None,
check_number: None,
currency: None,
service_fee: Some(0.0),
split_funding: None,
total_amount: 100.0,
},
payment_method: PaymentMethod::PayMethodCredit(PayMethodCredit {
cardcvv: Some(Cardcvv("999".to_string())),
cardexp: Cardexp("02/27".to_string()),
card_holder: Some(Cardholder("John Cassian".to_string())),
cardnumber: Cardnumber("4111111111111111".to_string()),
cardzip: Some(Cardzip("12345".to_string())),
initiator: Some(Initiator("payor".to_string())),
method: "card".to_string(),
save_if_success: None,
}),
source: None,
subdomain: None,
subscription_id: None,
},
ach_validation: None,
force_customer_creation: None,
include_details: None,
},
None,
)
.await;
println!("{:?}", result);
}
```