Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://docs.yabetoopay.com/llms.txt

Use this file to discover all available pages before exploring further.

Créer un Lien de paiement

Requête de base

curl -X POST https://api.yabetoo.com/v1/payment-links \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "type": "amount",
    "name": "Paiement facture",
    "amount": 25000,
    "currency": "XOF"
  }'

Paramètres requis

ParamètreTypeDescription
typestringType de lien : product, amount, ou subscription
namestringNom du lien (affiché au client)
currencystringCode devise (XOF, EUR, USD)

Paramètres optionnels

ParamètreTypeDescription
descriptionstringDescription du lien
slugstringSlug personnalisé pour l’URL
amountnumberMontant fixe (pour type amount)
minAmountnumberMontant minimum (pour montant variable)
maxAmountnumberMontant maximum (pour montant variable)
itemsarrayArticles à vendre (pour type product)
expiresAtstringDate d’expiration (ISO 8601)
maxRedemptionsnumberNombre maximum d’utilisations
collectBillingAddressbooleanCollecter l’adresse de facturation
collectShippingAddressbooleanCollecter l’adresse de livraison
allowPromotionCodesbooleanAutoriser les codes promo
successUrlstringURL de redirection après paiement
cancelUrlstringURL de redirection si annulation
brandingIdstringID du branding personnalisé
metadataobjectDonnées personnalisées

Types de liens

Type amount - Montant fixe

Pour collecter un montant spécifique :
{
  "type": "amount",
  "name": "Facture #1234",
  "description": "Paiement de votre facture du mois de janvier",
  "amount": 50000,
  "currency": "XOF"
}

Structure des articles (items)

Pour les types product et subscription, vous pouvez définir des articles :
ChampTypeDescription
productIdstringID du produit (prod_xxx)
priceIdstringID du prix (price_xxx)
namestringNom personnalisé (si pas de produit)
descriptionstringDescription personnalisée
imageUrlstringURL de l’image
quantitynumberQuantité par défaut (défaut: 1)
adjustableQuantitybooleanPermettre au client de modifier la quantité
minQuantitynumberQuantité minimum
maxQuantitynumberQuantité maximum
isOptionalbooleanArticle optionnel (le client peut le retirer)
sortOrdernumberOrdre d’affichage

Options avancées

Limiter les utilisations

{
  "type": "amount",
  "name": "Offre limitée",
  "amount": 15000,
  "currency": "XOF",
  "maxRedemptions": 100,
  "expiresAt": "2024-12-31T23:59:59Z"
}

Collecter les adresses

{
  "collectBillingAddress": true,
  "collectShippingAddress": true
}

Autoriser les codes promo

{
  "allowPromotionCodes": true
}

URL de redirection personnalisées

{
  "successUrl": "https://votre-site.com/merci?link_id={PAYMENT_LINK_ID}",
  "cancelUrl": "https://votre-site.com/annule"
}

Slug personnalisé

Créez une URL mémorable :
{
  "slug": "don-2024"
}
L’URL sera : https://checkout.yabetoo.com/p/don-2024

Exemple complet

curl -X POST https://api.yabetoo.com/v1/payment-links \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "type": "product",
    "name": "Boutique Formation",
    "description": "Formations en ligne",
    "slug": "formations",
    "currency": "XOF",
    "collectBillingAddress": true,
    "allowPromotionCodes": true,
    "successUrl": "https://votre-site.com/success",
    "cancelUrl": "https://votre-site.com/cancel",
    "maxRedemptions": 500,
    "expiresAt": "2024-12-31T23:59:59Z",
    "items": [
      {
        "productId": "prod_formation_js",
        "priceId": "price_formation_js",
        "quantity": 1,
        "adjustableQuantity": false
      },
      {
        "productId": "prod_formation_react",
        "priceId": "price_formation_react",
        "quantity": 1,
        "isOptional": true
      }
    ],
    "metadata": {
      "campaign": "summer_2024",
      "source": "newsletter"
    }
  }'

Réponse

{
  "id": "plink_abc123def456ghi789jkl012",
  "object": "payment_link",
  "type": "product",
  "name": "Boutique Formation",
  "description": "Formations en ligne",
  "slug": "formations",
  "url": "https://checkout.yabetoo.com/p/formations",
  "currency": "XOF",
  "amount": null,
  "minAmount": null,
  "maxAmount": null,
  "isActive": true,
  "expiresAt": "2024-12-31T23:59:59.000Z",
  "maxRedemptions": 500,
  "redemptionCount": 0,
  "collectBillingAddress": true,
  "collectShippingAddress": false,
  "allowPromotionCodes": true,
  "successUrl": "https://votre-site.com/success",
  "cancelUrl": "https://votre-site.com/cancel",
  "items": [
    {
      "id": "plitem_abc123",
      "productId": "prod_formation_js",
      "priceId": "price_formation_js",
      "name": "Formation JavaScript",
      "description": "Maîtrisez JavaScript",
      "quantity": 1,
      "adjustableQuantity": false,
      "isOptional": false,
      "sortOrder": 0
    },
    {
      "id": "plitem_def456",
      "productId": "prod_formation_react",
      "priceId": "price_formation_react",
      "name": "Formation React",
      "description": "Créez des apps React",
      "quantity": 1,
      "adjustableQuantity": false,
      "isOptional": true,
      "sortOrder": 1
    }
  ],
  "metadata": {
    "campaign": "summer_2024",
    "source": "newsletter"
  },
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z"
}

Champs de la réponse

ChampDescription
idIdentifiant unique du lien
urlURL publique à partager
slugSlug utilisé dans l’URL
isActiveIndique si le lien est actif
redemptionCountNombre de fois que le lien a été utilisé
itemsListe des articles (pour type product)

Opérations courantes

Récupérer un lien

curl https://api.yabetoo.com/v1/payment-links/plink_abc123 \
  -H "Authorization: Bearer sk_live_..."

Mettre à jour un lien

curl -X PATCH https://api.yabetoo.com/v1/payment-links/plink_abc123 \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Nouveau nom",
    "isActive": false
  }'

Désactiver un lien

curl -X PATCH https://api.yabetoo.com/v1/payment-links/plink_abc123 \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "isActive": false
  }'

Supprimer un lien

curl -X DELETE https://api.yabetoo.com/v1/payment-links/plink_abc123 \
  -H "Authorization: Bearer sk_live_..."

Lister les liens

curl "https://api.yabetoo.com/v1/payment-links?type=product&isActive=true" \
  -H "Authorization: Bearer sk_live_..."

Webhooks

Recevez des notifications lorsqu’un paiement est effectué via un lien :
{
  "type": "payment_link.payment.completed",
  "data": {
    "object": {
      "paymentLinkId": "plink_abc123",
      "sessionId": "plsession_xyz789",
      "amount": 25000,
      "currency": "XOF",
      "customerEmail": "client@example.com",
      "status": "completed"
    }
  }
}

Événements disponibles

ÉvénementDescription
payment_link.createdLien créé
payment_link.updatedLien mis à jour
payment_link.payment.completedPaiement réussi via le lien
payment_link.payment.failedPaiement échoué

Bonnes pratiques

  • Créez toujours les liens côté serveur
  • Ne stockez jamais les clés API côté client
  • Utilisez des webhooks pour vérifier les paiements
  • Utilisez des slugs mémorables pour les liens importants
  • Ajoutez une description claire
  • Définissez une date d’expiration raisonnable
  • Utilisez les métadonnées pour le suivi (campagne, source, etc.)
  • Surveillez le redemptionCount pour les offres limitées
  • Désactivez les liens plutôt que de les supprimer

Prochaines étapes

Partager un lien

Découvrez comment partager vos liens efficacement

Webhooks

Configurez les notifications en temps réel