Skip to content

Fyber API Quickstart

Get started with Fyber's payment API in 5 minutes.

1. Get Your API Keys

  1. Log in to console.fyber.one
  2. Go to Developer > API Keys
  3. Copy your test keys:
    • pk_test_... (publishable - for client-side)
    • sk_test_... (secret - for server-side)

2. Install the SDK

JavaScript/Node.js

bash
npm install @fyber.one/sdk-js
# or
pnpm add @fyber.one/sdk-js

PHP

bash
composer require fyber/sdk-php

C#/.NET

bash
dotnet add package Fyber

Flutter/Dart

bash
flutter pub add fyber

Python (Coming Soon)

bash
pip install fyber  # Not yet available

3. Initialize the Client

Node.js

javascript
import { Fyber } from '@fyber.one/sdk-js';

const fyber = new Fyber({
  apiKey: 'sk_test_your_secret_key',
  environment: 'test', // or 'live'
});

PHP

php
use Fyber\Fyber;

$fyber = new Fyber('sk_test_your_secret_key', [
  'environment' => 'test', // or 'live'
]);

C#

csharp
using Fyber;

var fyber = new FyberClient("sk_test_your_secret_key", new FyberClientOptions
{
    Environment = "test" // or "live"
});

Flutter

dart
import 'package:fyber/fyber.dart';

final fyber = Fyber(
  apiKey: 'sk_test_your_secret_key',
  environment: 'test', // or 'live'
);

4. Create Your First Payment

Hosted Checkout is the easiest and most secure way to accept payments. It handles PCI compliance and 3D Secure automatically.

javascript
// Create a checkout session
const session = await fyber.checkout.sessions.create({
  mode: 'payment',
  intent: 'sale',
  amount: 5000, // $50.00 in cents
  currency: 'JMD',
  successUrl: 'https://your-site.com/success?session_id={SESSION_ID}',
  cancelUrl: 'https://your-site.com/cancel',
  customerEmail: 'customer@example.com',
  lineItems: [{
    name: 'Premium Plan',
    quantity: 1,
    unitAmount: 5000
  }]
});

// Redirect customer to hosted checkout
console.log(session.url);
// Redirect the customer to this URL

5. Handle Webhooks

Webhooks notify your server when payment events occur.

javascript
import express from 'express';
import { Fyber } from '@fyber.one/sdk-js';

const app = express();

app.post('/webhooks/fyber', express.raw({ type: 'application/json' }), (req, res) => {
  const signature = req.headers['fyber-signature'];
  const webhookSecret = 'whsec_your_webhook_secret';

  let event;
  try {
    event = Fyber.webhooks.verify(
      req.body.toString(),
      signature,
      webhookSecret
    );
  } catch (err) {
    console.error('Webhook verification failed:', err.message);
    return res.status(400).send(`Webhook Error: ${err.message}`);
  }

  switch (event.type) {
    case 'payment.succeeded':
      console.log(`Payment ${event.data.object.id} succeeded!`);
      // Fulfill the order
      break;

    case 'payment.failed':
      console.log('Payment failed:', event.data.object.failureReason);
      break;

    case 'checkout.session.completed':
      console.log(`Checkout session ${event.data.object.sessionId} completed`);
      // Fulfill the order from checkout
      break;
  }

  res.json({ received: true });
});

6. Test Cards

Use these test card numbers in test mode:

CardNumberResult
Visa (Success)4242 4242 4242 4242Approved
Mastercard (Success)5555 5555 5555 4444Approved
Visa (Decline)4000 0000 0000 0002Declined
3DS Required4000 0027 6000 3184Requires 3D Secure
Insufficient Funds4000 0000 0000 9995Insufficient funds

Use any future expiry date and any 3-digit CVV.

API Reference

Full API documentation: docs.fyber.one

Base URLs

EnvironmentURL
Sandboxhttps://api.sandbox.fyber.one
Productionhttps://api.fyber.one

Common Endpoints

MethodEndpointDescription
POST/checkout/sessionsCreate checkout session
GET/checkout/sessions/:idRetrieve checkout session
POST/paymentsCreate a payment
GET/payments/:idRetrieve a payment
POST/payments/:id/captureCapture an authorized payment
POST/refundsCreate a refund
GET/customersList customers
POST/customersCreate a customer
POST/tokensCreate a saved card token
POST/subscriptionsCreate subscription
POST/installmentsCreate installment plan

Error Handling

javascript
try {
  const session = await fyber.checkout.sessions.create({...});
} catch (error) {
  if (error.code === 'card_declined') {
    console.log('Card was declined:', error.message);
  } else if (error.code === 'validation_error') {
    console.log('Invalid request:', error.message);
  } else if (error.code === 'authentication_error') {
    console.log('Invalid API key');
  } else {
    console.log('Error:', error.message);
  }
}

Error Codes

CodeDescription
card_declinedCard was declined
validation_errorInvalid request parameters
authentication_errorInvalid API key
rate_limit_errorToo many requests
api_errorServer error

Next Steps


Need help? Email support@fyber.one

Fyber Payment API