Quick Start

const { TransFiPaymentAPI } = require("transfi-checkout");

const client = new TransFiPaymentAPI({
  publicKey: process.env.TRANSFI_PUBLIC_KEY,
  secretKey: process.env.TRANSFI_SECRET_KEY,
});

client
  .createPaymentInvoice({
    paymentLinkId: "your-payment-link-id",
    amount: "100",
    currency: "USD",
    productDetails: {
      name: "Premium Annual Plan",
      description: "12-month access to all premium features",
      imageUrl: "https://example.com/product-image.png",
    },
    successRedirectUrl: "https://yourapp.com/payment/success",
    failureRedirectUrl: "https://yourapp.com/payment/failure",
  })
  .then((paymentUrl) => {
    console.log("Redirect customer to:", paymentUrl);
  })
  .catch((error) => {
    console.error("Error:", error.message);
  });
from transfi import TransFiPaymentAPI, TransFiError
from transfi.types import PaymentInvoiceRequest, ProductDetails

api = TransFiPaymentAPI(
    public_key="YOUR_PUBLIC_KEY",
    secret_key="YOUR_SECRET_KEY",
)

request = PaymentInvoiceRequest(
    payment_link_id="your-payment-link-id",
    amount="100",
    currency="USD",
    product_details=ProductDetails(
        name="Premium Annual Plan",
        description="12-month access to all premium features",
        image_url="https://example.com/product-image.png",
    ),
    success_redirect_url="https://yourapp.com/payment/success",
    failure_redirect_url="https://yourapp.com/payment/failure",
)

try:
    payment_url = api.create_payment_invoice(request)
    print("Redirect customer to:", payment_url)
except TransFiError as e:
    print("Error:", e)
paymentInvoiceRequest request = paymentInvoiceRequest.builder()
    .paymentLinkId("YOUR_PAYMENT_LINK_ID")
    .amount("100.00")
    .currency("USD")
    .productDetails(productDetails.builder()
        .name("Premium Subscription")
        .description("Monthly subscription plan")
        .build())
    .individual(individual.builder()
        .firstName("John")
        .lastName("Doe")
        .email("[email protected]")
        .phone("1234567890")
        .phoneCode("+1")
        .country("US")
        .build())
    .successRedirectUrl("https://yoursite.com/success")
    .failureRedirectUrl("https://yoursite.com/failure")
    .customerOrderId("order-" + System.currentTimeMillis())
    .build();

try {
    String paymentUrl = api.createPaymentInvoice(request);
    System.out.println("Payment URL: " + paymentUrl);
    // Redirect user to paymentUrl to complete payment
} catch (transfiError e) {
    System.err.println("Error: " + e.getMessage());
    System.err.println("Status Code: " + e.getStatusCode());
    System.err.println("Response: " + e.getResponseData());
}

use TransFi\TransFiPaymentAPI;
use TransFi\TransFiError;
use TransFi\PaymentInvoiceRequest;
use TransFi\Individual;
use TransFi\ProductDetails;

$api = new TransFiPaymentAPI([
    'publicKey' => 'YOUR_PUBLIC_KEY',
    'secretKey' => 'YOUR_SECRET_KEY',
]);

$product = new ProductDetails('Premium Plan');
$product->description = 'Monthly subscription';

$individual = new Individual('John', 'Doe', '[email protected]');
$individual->phone     = '1234567890';
$individual->phoneCode = '+1';
$individual->country   = 'US';

$paymentData = new PaymentInvoiceRequest(
    'LINK_ID',
    '100',
    'USD',
    'https://example.com/success',
    'https://example.com/failure'
);
$paymentData->productDetails  = $product;
$paymentData->individual      = $individual;
$paymentData->customerOrderId = 'order-001';

try {
    $paymentUrl = $api->createPaymentInvoice($paymentData);
    echo 'Checkout URL: ' . $paymentUrl . PHP_EOL;
} catch (TransFiError $e) {
    echo 'API Error   : ' . $e->getMessage() . PHP_EOL;
    echo 'Status Code : ' . $e->getStatusCode() . PHP_EOL;
    echo 'Response    : ' . json_encode($e->getResponseData(), JSON_PRETTY_PRINT) . PHP_EOL;
}