CA • US
Annuellement
SaaS au Gov
Automatisation complète
.NET PHP Python Node JS
365 jours/an
Deux environnements, un format API simple
https://sandboxportal.tib.finance
Chaque appel API utilise le même format : POST [BaseURL]/Data/[MethodName]
L'API utilise le chiffrement Rijndael (AES-256) pour toutes les données. Nos SDKs gèrent le chiffrement automatiquement — les exemples cURL ci-dessous montrent la structure JSON déchiffrée pour plus de clarté.
// Your first call: CreateSession
POST https://sandboxportal.tib.finance/Data/CreateSession
// Request:
{
"ClientId": "YOUR_CLIENT_ID",
"Username": "YOUR_USERNAME",
"Password": "YOUR_PASSWORD"
}
// Response:
{
"SessionId": "46a84f3f-c4fb-4d00-b3ff-caf6c85d06d4",
"HasError": false,
"Messages": ""
}
SessionId est utilisé dans tous les appels API suivants. Les SDKs pour .NET, PHP, Python, Node.js, JavaScript gèrent le chiffrement et la gestion des sessions automatiquement.Infrastructure d'entreprise avec la simplicité d'une startup
Cartes de crédit, virements bancaires, Interac, dépôts instantanés — une seule intégration couvre tout. Fini de jongler entre plusieurs fournisseurs.
Traitez en CAD et USD. Servez des entreprises au Canada et aux États-Unis depuis une seule plateforme.
Construisez une plateforme de paiement avec des sous-clients, marque blanche et configuration par marchand. Utilisé par les entreprises SaaS et fintech.
Testez avec de vrais appels API, de l’argent fictif. 2 500 $ en développement gratuit pour les entreprises admissibles via notre Programme Bêta.
Suivez les 8 étapes de l'authentification à la confirmation de paiement
Compte bancaire ou Détails de carte de crédit
PaymentMethodId (GUID)
CreateDirectAccountPaymentMethodBillId, PaymentFlow: 5
PaymentId + traité automatiquement
MerchantId, DateRange
TransferStatus + BankResultCode
Chaque transfert génère un minimum de 3 opérations, chacune avec jusqu'à 4 transactions.
Pour obtenir le statut complet du transfert, vérifiez tous les statuts de sous-transactions de toutes les opérations.
Branche de décision — vérifier BankResultCode
Vérifiez le statut de chaque transaction avec cette approche simple :
Statut 0 En attente d'exécution.
Note : la vérification de retour peut rester à ce statut jusqu'à 3 mois.
Statut 1 Validation TIB — TIB confirme que la transaction est valide et acceptée.
Statut 2 Réseau bancaire — Le réseau bancaire a confirmé la transaction.
Statut 3 Fonds déposés — Les fonds ont été déposés avec succès.
Statut 4 Processus terminé — Processus complet, incluant la vérification de retour.
Toutes les transactions ont un statut et une description détaillée. Vérifiez tous les statuts de sous-transactions pour déterminer le statut global.
Email or Phone, Amount
Transaction Interac créée — le client reçoit un courriel/SMS
CreateDirectInteracTransaction — remplace les étapes 3, 4 et 5 en un seul appel. Canada seulement.Cliquez sur une carte pour accéder à l'exemple de code complet
Débitez un client connu avec un mode de paiement enregistré. Aucune interaction client — le paiement est traité automatiquement en utilisant le Flux de paiement 5.
// Step 1: Create Session (see Getting Started above)
// Step 2: Create Customer
POST /Data/CreateCustomer
{
"SessionToken": "session-guid",
"ServiceId": "your-service-id",
"Customer": {
"CustomerName": "John Smith",
"CustomerExternalId": "CUST-001",
"Language": 2
}
}
// Response: { "CustomerId": "customer-guid" }
// Step 3: Add Bank Account (set as default)
POST /Data/CreateDirectAccountPaymentMethod
{
"SessionToken": "session-guid",
"CustomerId": "customer-guid",
"IsCustomerAutomaticPaymentMethod": true,
"Account": {
"Owner": "John Smith",
"AccountName": "Main checking",
"BankNumber": "003",
"InstitutionNumber": "12345",
"AccountNumber": "9876543"
}
}
// Response: { "PaymentMethodId": "pm-guid" }
// Step 4: Create Bill
POST /Data/CreateBill
{
"SessionToken": "session-guid",
"BreakIfMerchantNeverBeenAuthorized": true,
"BillData": {
"MerchantId": "your-merchant-id",
"BillTitle": "Invoice #1001",
"BillDescription": "Monthly service fee",
"BillAmount": 99.99,
"BillCurrency": 1,
"Language": 2,
"RelatedCustomerId": "customer-guid"
}
}
// Response: { "BillId": "bill-guid" }
// Step 5: Create Payment (Flow 5 = automatic)
POST /Data/CreatePayment
{
"SessionToken": "session-guid",
"BillId": "bill-guid",
"SetPaymentCustomerFromBill": true,
"PaymentInfo": {
"PaymentFlow": 5
}
}
// Response: { "PaymentId": "pay-guid", "PaymentFlowParsingResult": 1 }
IsCustomerAutomaticPaymentMethod: true en fait le mode par défaut — requis pour le Flux 5. PaymentFlowParsingResult: 1 signifie succès. Les étapes 2-3 ne doivent être effectuées qu'une fois par client — réutilisez CustomerId pour les factures futures.Le client reçoit un courriel avec un lien sécurisé pour saisir ses informations de paiement. Aucun mode de paiement préenregistré nécessaire. Utilise le Flux de paiement 1 (Anonyme).
// Steps 1-2: CreateSession + CreateCustomer (same as Use Case 1)
// Step 3: Create Bill (no payment method needed)
POST /Data/CreateBill
{
"SessionToken": "session-guid",
"BillData": {
"MerchantId": "your-merchant-id",
"BillTitle": "Invoice #2001",
"BillDescription": "Consulting services",
"BillAmount": 250.00,
"BillCurrency": 1,
"Language": 2,
"RelatedCustomerId": "customer-guid"
}
}
// Step 4: Create Payment with email link
POST /Data/CreatePayment
{
"SessionToken": "session-guid",
"BillId": "bill-guid",
"SetPaymentCustomerFromBill": true,
"CustomerEmail": "[email protected]",
"PaymentInfo": {
"PaymentFlow": 1,
"Language": "EN"
}
}
// TIB sends the email automatically with a secure payment link.
CustomerEmail est requis pour le Flux 1. Le courriel est envoyé automatiquement par TIB — vous n'avez pas besoin de construire un système de courriel. Le client peut payer par compte bancaire ou carte de crédit.Configurez la perception mensuelle automatique pour les abonnements, loyers, adhésions. Même procédure que le Cas d'utilisation 1 mais avec TransferFrequency: 4 (Mensuel).
// Steps 1-4: Same as Use Case 1 (Session, Customer, PaymentMethod, Bill)
// Step 5: Create RECURRING Payment
POST /Data/CreatePayment
{
"SessionToken": "session-guid",
"BillId": "bill-guid",
"SetPaymentCustomerFromBill": true,
"PaymentInfo": {
"PaymentFlow": 5,
"TransferFrequency": 4
}
}
// The payment repeats every month automatically!
// List active recurring transfers
POST /Data/GetRecuringTransfers
{
"SessionToken": "session-guid",
"ServiceId": "your-service-id"
}
// Cancel a recurring transfer
POST /Data/DeleteRecuringTransfer
{
"SessionToken": "session-guid",
"RecuringTransferId": "recurring-guid"
}
0=Une fois, 1=Quotidien, 2=Hebdomadaire, 3=Aux 2 semaines, 4=Mensuel, 5=Trimestriel, 6=Semestriel, 7=AnnuelEnvoyez de l'argent depuis votre compte marchand vers n'importe quel compte bancaire externe. Paie, paiements fournisseurs, remboursements. Seulement 2 appels API.
// Step 1: CreateSession (see Getting Started)
// Step 2: Direct Deposit
POST /Data/CreateDirectDeposit
{
"SessionToken": "session-guid",
"OriginMerchantId": "your-merchant-id",
"DestinationAccount": {
"Owner": "Supplier Corp Inc.",
"AccountName": "Business account",
"BankNumber": "006",
"InstitutionNumber": "54321",
"AccountNumber": "1234567"
},
"Amount": 5000.00,
"Currency": 1,
"Language": 2,
"ReferenceNumber": "PAY-2026-001"
}
DepositDueDate pour planifier un dépôt futur.Envoyez ou demandez de l'argent via virement Interac en utilisant un courriel ou un numéro de téléphone. Seulement 2 appels API.
// Send money (Deposit) via Interac
POST /Data/CreateDirectInteracTransaction
{
"SessionToken": "session-guid",
"MerchantId": "your-merchant-id",
"InteracInformation": {
"Description": "Freelancer payment",
"Owner": "Kelly Freelancer",
"TargetEmailAddress": "[email protected]",
"InteracQuestion": "What is your pet name?",
"InteracAnswer": "Buddy"
},
"TransferDirection": 2,
"Amount": 500.00,
"Currency": 1,
"Language": 2
}
// Request money (Collect) via Interac
POST /Data/CreateDirectInteracTransaction
{
"SessionToken": "session-guid",
"MerchantId": "your-merchant-id",
"InteracInformation": {
"Description": "Invoice #3001",
"Owner": "Customer Name",
"TargetEmailAddress": "[email protected]"
},
"TransferDirection": 1,
"Amount": 150.00,
"Currency": 1
}
TransferDirection: 1 = Percevoir (demander de l'argent), 2 = Déposer (envoyer de l'argent). InteracQuestion et InteracAnswer sont requis pour les dépôts. TargetEmailAddress ou TargetMobilePhoneNumber doit être fourni.Traitez des centaines de transactions à la fois en téléversant un fichier ACP (Automated Clearing & Payment). Paie, décaissements massifs, perceptions en lot.
// Upload ACP file (Base64-encoded)
POST /Data/CreateTransactionFromRaw
{
"SessionToken": "session-guid",
"MerchantId": "your-merchant-id",
"RawFileBody": "BASE64_ENCODED_ACP_FILE"
}
// Check batch results
POST /Data/ListExecutedOperations
{
"SessionToken": "session-guid",
"MerchantId": "your-merchant-id",
"GroupId": "batch-group-id",
"FromDateTime": "2026-02-01T00:00:00Z",
"ToDateTime": "2026-02-28T23:59:59Z",
"TransferType": 7,
"DateType": 1,
"OperationTarget": 1
}
GroupId de la réponse pour suivre toutes les transactions du lot.Acceptez Visa, Mastercard et Amex à travers l'Amérique du Nord. Enregistrez une carte de crédit comme mode de paiement et débitez-la automatiquement en utilisant le Flux de paiement 5.
// Steps 1-2: CreateSession + CreateCustomer (same as Use Case 1)
// Step 3: Register Credit Card
POST /Data/CreateCreditCardPaymentMethod
{
"SessionToken": "session-guid",
"CustomerId": "customer-guid",
"IsCustomerAutomaticPaymentMethod": true,
"CreditCard": {
"Pan": 4242424242424242,
"Cvd": 123,
"ExpirationMonth": 12,
"ExpirationYear": 27,
"CardOwner": "John Smith"
},
"CreditCardRegisteredAddress": {
"CivicNumber": "360",
"Street": "Rue Saint-Jacques",
"City": "Montreal",
"Province": "QC",
"Country": "CA",
"PostalCode": "H2Y1P5"
}
}
// Response: { "PaymentMethodId": "pm-guid" }
// Steps 4-5: CreateBill + CreatePayment (Flow 5) — same as Use Case 1
CreditCardRegisteredAddress est optionnel mais recommandé pour AVS (Système de vérification d'adresse) qui réduit la fraude. Pan accepte Visa (4xxx), Mastercard (5xxx), et Amex (3xxx). En bac à sable, utilisez le numéro de carte test 4242424242424242.Percevez de l'argent directement sans créer de facture. Utilise CreateFreeOperation avec TransferType: 3 (FreeCollection). Idéal pour les pourboires, micro-paiements et ajustements.
// Step 1: CreateSession (see Getting Started)
// Step 2: Free Collection — collect without a bill
POST /Data/CreateFreeOperation
{
"SessionToken": "session-guid",
"MerchantId": "your-merchant-id",
"PaymentMethodId": "customer-pm-guid",
"TransferType": 3,
"Amount": 25.00,
"Currency": 1,
"Language": 2,
"ReferenceNumber": "TIP-001"
}
TransferType: 3 = FreeCollection (percevoir de l'argent), TransferType: 2 = FreeDeposit (envoyer de l'argent). Le PaymentMethodId doit appartenir à un client existant. Cela contourne le processus complet de facturation — parfait pour simplifier les opérations.Envoyez de l'argent à n'importe quel mode de paiement enregistré instantanément sans créer de facture. Utilise CreateFreeOperation avec TransferType: 2 (FreeDeposit). Idéal pour les remboursements, remises et versements.
// Step 1: CreateSession (see Getting Started)
// Step 2: Free Deposit — send money without a bill
POST /Data/CreateFreeOperation
{
"SessionToken": "session-guid",
"MerchantId": "your-merchant-id",
"PaymentMethodId": "customer-pm-guid",
"TransferType": 2,
"Amount": 150.00,
"Currency": 1,
"Language": 2,
"ReferenceNumber": "REFUND-001"
}
PaymentMethodId peut être un compte bancaire ou une carte de crédit enregistré pour n'importe quel client. C'est le moyen le plus rapide d'envoyer de l'argent — pas besoin de client, de facture ou d'objet de paiement. Juste le marchand et le mode de paiement de destination.Des startups aux entreprises — une seule API pour toutes les alimenter.
Obtenir les identifiants bac à sable Contacter les ventesConstruisez votre propre plateforme de paiement. Chaque sous-client obtient son propre environnement isolé avec des marchands, clients et modes de paiement dédiés. Utilisé par les plateformes SaaS, les sociétés de gestion immobilière et les institutions financières en Amérique du Nord.
// Step 1: CreateSession (see Getting Started)
// Step 2: Create a Sub-Client
POST /Data/CreateSubClient
{
"SessionToken": "session-guid",
"ClientName": "Acme Property Management",
"ClientLanguage": 2
}
// Response: { "ServiceId": "new-service-guid" }
// Step 3: Configure the Sub-Client
POST /Data/SetClientSettings
{
"SessionToken": "session-guid",
"ServiceId": "new-service-guid",
"Settings": {
"AllowCreditCard": true,
"AllowDirectDebit": true,
"AllowInterac": true
}
}
// Read the Sub-Client configuration
POST /Data/GetClientSettings
{
"SessionToken": "session-guid",
"ServiceId": "new-service-guid"
}
// Now use the ServiceId in all subsequent calls for this sub-client
// CreateCustomer, CreateBill, CreatePayment, etc. all scoped to this sub-client
SetClientDefaultServiceFeeSettings. Le ServiceId retourné par CreateSubClient remplace votre propre ServiceId dans tous les appels API pour ce sous-client.Votre marque, notre infrastructure. Personnalisez les pages de paiement avec vos couleurs, logo et style. Vos clients ne voient jamais TIB — ils vous voient VOUS.
// Step 1: CreateSession (see Getting Started)
// Step 2: Set White-Labeling (Merchant level)
POST /Data/SetWhiteLabeling
{
"SessionToken": "session-guid",
"WhiteLabelingLevel": 1,
"WhiteLabelingLevelId": "your-merchant-id",
"CssProperties": {
"background-color": "#1a1a2e",
"color": "#ffffff",
"font-family": "Inter, sans-serif",
"button-background": "#e94560"
}
}
// Read white-labeling data
POST /Data/GetWhiteLabelingData
{
"SessionToken": "session-guid",
"WhiteLabelingLevel": 1,
"WhiteLabelingLevelId": "your-merchant-id"
}
// Update or delete white-labeling
// POST /Data/UpdateWhiteLabelingData
// POST /Data/DeleteWhiteLabeling
1 = Niveau marchand, 2 = Niveau service, 3 = Niveau client. Vous pouvez appliquer différentes marques à chaque niveau. Utilisez GetListWhiteLabelingData pour lister toutes les configurations de marque blanche.Contrôle total sur le mode de paiement à débiter. Au lieu d'utiliser le mode par défaut du client, spécifiez exactement quelle carte ou quel compte bancaire utiliser via le Flux de paiement 6.
// Steps 1-4: CreateSession, CreateCustomer, CreatePaymentMethod, CreateBill
// (same as Use Case 1 — customer may have multiple payment methods)
// Step 5: Create Payment with FORCED method
POST /Data/CreatePayment
{
"SessionToken": "session-guid",
"BillId": "bill-guid",
"SetPaymentCustomerFromBill": true,
"PaymentInfo": {
"PaymentFlow": 6,
"ForcedCustomerPaymentMethodId": "specific-pm-guid"
}
}
// Charges the exact payment method you specified, not the default
ListPaymentMethods pour obtenir tous les modes de paiement d'un client, puis passez le PaymentMethodId souhaité comme ForcedCustomerPaymentMethodId. C'est idéal quand un client a plusieurs cartes et que vous voulez débiter une carte spécifique (ex. : une carte de secours après l'échec de la principale).Gérez les remboursements et annulations facilement. Un seul appel API pour annuler toute transaction. Vous pouvez aussi annuler un paiement avant qu'il ne soit traité.
// Step 1: CreateSession (see Getting Started)
// Option A: Revert a completed transaction (refund)
POST /Data/RevertTransfer
{
"SessionToken": "session-guid",
"TransferId": "transfer-guid-to-revert"
}
// Creates a reverse transaction — money goes back to the customer
// Option B: Cancel a payment before it's processed
POST /Data/DeletePayment
{
"SessionToken": "session-guid",
"PaymentId": "payment-guid-to-cancel"
}
RevertTransfer fonctionne sur les transactions terminées — il crée une nouvelle opération inverse. DeletePayment annule un paiement qui n'a pas encore été traité. Utilisez ListExecutedOperations pour trouver le TransferId de la transaction originale.Rejoignez des milliers d'entreprises qui utilisent déjà TIB Finance en Amérique du Nord.
Commencer l'intégration gratuite Parler à un conseillerConçu pour évoluer. La confiance des entreprises traitant plus de 600 M$ annuellement.
Traitez les paiements au Canada (TEF, Interac, cartes de crédit) et aux États-Unis (ACH, cartes de crédit). Support multidevise en CAD et USD depuis une seule intégration.
Opérations CRUD complètes : GetCustomer, SaveCustomer, DeleteCustomer, GetCustomersByExternalId, ListCustomers, ListPaymentMethods, ListBills. Vos données, votre contrôle.
ListExecutedOperations avec des filtres par plage de dates, marchand, type de transfert et groupe. Suivez chaque transaction dans toute votre organisation en temps réel.
Chaque méthode disponible dans l'API TIB Finance, organisée par catégorie
| Catégorie | Méthodes |
|---|---|
| Session | CreateSession |
| Clients | CreateCustomer SaveCustomer GetCustomer GetCustomersByExternalId DeleteCustomer ListCustomers |
| Modes de paiement | CreateDirectAccountPaymentMethod CreateCreditCardPaymentMethod CreateInteracPaymentMethod GetPaymentMethod ListPaymentMethods DeletePaymentMethod SetDefaultPaymentMethod ChangeInteracPaymentMethodQuestionAndAnswer |
| Factures | CreateBill GetBill DeleteBill ListBills |
| Paiements | CreatePayment (9 flux) DeletePayment RevertTransfer |
| Opérations directes | CreateDirectDeposit CreateDirectInteracTransaction CreateFreeOperation |
| Lot | CreateTransactionFromRaw |
| Récurrent | GetRecuringTransfers DeleteRecuringTransfer |
| Rapports | ListExecutedOperations |
| Sous-clients | CreateSubClient SetClientSettings GetClientSettings SetClientDefaultServiceFeeSettings |
| Marque blanche | SetWhiteLabeling GetWhiteLabelingData UpdateWhiteLabelingData GetListWhiteLabelingData DeleteWhiteLabeling |
POST [BaseURL]/Data/[MethodName].Obtenez des identifiants bac à sable en quelques secondes et testez les 13 cas d'utilisation gratuitement.
Obtenir les identifiants bac à sable Référence API complèteChoisissez le bon flux pour votre scénario
| Flux | Nom | Client connu ? | A un mode de paiement ? | Automatique ? | Idéal pour |
|---|---|---|---|---|---|
1 |
Anonyme | Non | Non | Non | Factures ponctuelles, nouveaux clients |
2 |
Connu - Méthodes existantes | Oui | Oui | Non | Le client choisit parmi les méthodes enregistrées |
3 |
Connu - Peut ajouter des méthodes | Oui | Optionnel | Non | Le client peut ajouter un nouveau mode de paiement |
4 |
Connu - Gestion complète | Oui | Optionnel | Non | Le client gère toutes les méthodes + défaut |
5 |
Automatique (Par défaut) | Oui | Oui (défaut défini) | Oui | Le plus courant : abonnements, récurrent |
6 |
Automatique (Forcé) | Oui | Oui (spécifique) | Oui | Débiter un mode de paiement spécifique |
7 |
Sélection automatique | Tout | Tout | Dépend | Laissez l'API choisir le meilleur flux |
8 |
Sélection auto (Non-automatique) | Tout | Tout | Jamais | Sélection auto mais nécessite l'action du client |
9 |
Anonyme avec consentement | Non | Non | Non | Anonyme avec capture de consentement |
Structures de données clés utilisées dans l'API TIB
| Propriété | Type | Requis | Description |
|---|---|---|---|
CustomerName | string | Oui | Nom complet (max 150 caractères) |
CustomerExternalId | string | Non | Votre identifiant client interne (max 50) |
Language | int | Non | 1 = Français, 2 = Anglais |
CustomerDescription | string | Non | Notes (max 250) |
| Propriété | Type | Requis | Description |
|---|---|---|---|
Owner | string | Oui | Nom du titulaire du compte (max 150) |
AccountName | string | Oui | Description du compte (max 150) |
BankNumber | string | Oui | ID banque (3 chiffres) |
InstitutionNumber | string | Oui | Numéro de transit (5 chiffres) |
AccountNumber | string | Oui | Numéro de compte (max 15) |
| Propriété | Type | Requis | Description |
|---|---|---|---|
Pan | number | Oui | Numéro de carte (14-16 chiffres) |
Cvd | number | Non | Code CVV (3-4 chiffres) |
ExpirationMonth | int | Oui | 1-12 |
ExpirationYear | int | Oui | Année à 2 chiffres (ex. 26) |
CardOwner | string | Oui | Nom sur la carte (max 150) |
| Propriété | Type | Requis | Description |
|---|---|---|---|
MerchantId | GUID | Oui | Marchand auquel cette facture appartient |
BillTitle | string | Oui | Titre affiché au client (max 150) |
BillDescription | string | Oui | Description (max 1000) |
BillAmount | decimal | Oui | Montant : 0,01 à 50 000 |
BillCurrency | int | Non | 1 = CAD, 2 = USD |
RelatedCustomerId | GUID | Non | Client payant cette facture |
1 | Carte de crédit |
2 | Compte direct (Banque) |
3 | Interac |
1 | CAD (Dollar canadien) |
2 | USD (Dollar américain) |
1 | Français |
2 | Anglais |
1 | Percevoir (demander de l'argent) |
2 | Déposer (envoyer de l'argent) |
0 | Une fois |
1 | Quotidien |
2 | Hebdomadaire |
4 | Mensuel |
7 | Annuel |
Comprendre les réponses API
// Success
{
"HasError": false,
"Errors": [],
"Messages": ""
}
// Error
{
"HasError": true,
"Errors": [{
"ErrorMessage": "Bad Credentials",
"ErrorCode": 403
}]
}
| Valeur | Signification |
|---|---|
1 | Succès |
2 | Flux de paiement invalide |
3 | Facture non liée au client |
4 | Le client n'a pas de mode de paiement |
5 | Aucun mode de paiement par défaut défini |
6 | ID de méthode forcée requis (Flux 6) |
7 | Le client n'a pas la méthode spécifiée |
8 | Anonyme doit avoir un courriel (Flux 1/9) |
9 | Consentement PPA requis |
| Valeur | Résultat | Description |
|---|---|---|
0 | Pas encore de résultat | Encore en cours de traitement |
1 | Confirmé | Transaction complétée avec succès |
2 | Autres erreurs | Erreur bancaire non spécifiée |
3 | NSF | Fonds insuffisants |
4 | Erreur de compte | Compte invalide, fermé ou gelé |
5 | Opposition | Le client s'est opposé à la transaction |
6 | Interac refusé | Le virement Interac a été refusé |
7 | Interac échoué | Le virement Interac a échoué |
Outils et bibliothèques pour accélérer votre intégration
Notre équipe d'experts peut gérer votre projet. Vous pourriez même être admissible à une intégration gratuite !
Contactez-nous Créer un compte en direct