Passer au contenu
Français
  • Il n'y a aucune suggestion car le champ de recherche est vide.

Partenaires Alliance – Onboarding des submerchants

Afin de pouvoir traiter des paiements pour des submerchants sur votre plateforme, ceux-ci doivent d’abord disposer d’un compte PAY. Dans la documentation ci-dessous, nous expliquons comment créer un compte submerchant via l’API. Il est également possible de créer manuellement un submerchant via l’écran de gestion des submerchants dans PAY. en remplissant le formulaire prévu à cet effet.

Si l’inscription est soumise correctement, il est généralement possible de commencer immédiatement à traiter des transactions. PAY. est légalement tenu de contrôler ses clients afin de prévenir le blanchiment d’argent et le financement du terrorisme. Pour ce faire, plusieurs documents et informations sont demandés. Une fois ces documents fournis et vérifiés par l’équipe d’onboarding, le submerchant est contrôlé sur différents aspects. Une fois ces vérifications effectuées, les fonds reçus peuvent être versés par PAY.


1 Ajouter des submerchants 

Requête

Dans cet exemple de requête, nous ajoutons un merchant à partir d’un compte partenaire Alliance.

Code de requête : Ajouter un submerchant

curl --request POST
--url https://rest-api.pay.nl/v16/Alliance/addMerchant/json
--header 'authorization: Basic dG9rZW46PHlvdXItYXBpLXRva2VuPg=='
--header 'cache-control: no-cache'
--header 'content-type: application/x-www-form-urlencoded'
--data-urlencode 'merchant[name]=Test Alliance Submerchant'
--data-urlencode 'merchant[coc]=123456178'
--data-urlencode 'merchant[vat]=NL12345678B01'
--data-urlencode 'merchant[street]=Kopersteden'
--data-urlencode 'merchant[houseNumber]=10'
--data-urlencode 'merchant[houseNumberAddition]=test@email.com'
--data-urlencode 'merchant[postalCode]=7547TK'
--data-urlencode 'merchant[city]=Enschede'
--data-urlencode 'merchant[contactEmail]=info@alliancepartner.nl'
--data-urlencode 'merchant[contactPhone]=+31888866622'
--data-urlencode 'accounts[0][email]=director@classic-carparts.nl'
--data-urlencode 'accounts[0][firstname]=John'
--data-urlencode 'accounts[0][lastname]=Doe'
--data-urlencode 'accounts[0][dateOfBirth]=21-12-2001'
--data-urlencode 'accounts[0][placeOfBirth]=Spijkenisse'
--data-urlencode 'accounts[0][gender]=M'
--data-urlencode 'accounts[0][authorizedToSign]=1'
--data-urlencode 'accounts[0][ubo]=0'
--data-urlencode 'accounts[0][uboPercentage]=0'
--data-urlencode 'accounts[0][useCompanyAuth]=1'
--data-urlencode 'accounts[0][hasAccess]=1'
--data-urlencode 'accounts[0][language]=4'
--data-urlencode 'accounts[1][email]=ubo@classic-carparts.nl'
--data-urlencode 'accounts[1][firstname]=Dagobert'
--data-urlencode 'accounts[1][lastname]=Duck'
--data-urlencode 'accounts[1][dateOfBirth]=13-12-1937'
--data-urlencode 'accounts[1][placeOfBirth]=Spijkenisse'
--data-urlencode 'accounts[1][gender]=M'
--data-urlencode 'accounts[1][authorizedToSign]=0'
--data-urlencode 'accounts[1][ubo]=1'
--data-urlencode 'accounts[1][uboPercentage]=95'
--data-urlencode 'accounts[1][useCompanyAuth]=0'
--data-urlencode 'accounts[1][hasAccess]=0'
--data-urlencode 'accounts[1][language]=1'
--data-urlencode 'bankAccount[bankAccountOwner]=CompanyAccount'
--data-urlencode 'bankAccount[bankAccountNumber]=NL01PAYL0001234567'
--data-urlencode 'bankAccount[bankAccountBic]=NLPAYNL2A'
--data-urlencode 'settings[package]=03-07-2017'
--data-urlencode 'settings[sendEmail]=1'
--data-urlencode 'settings[settleBalance]=1'
--data-urlencode 'settings[clearingInterval]=week'
--data-urlencode 'settings[referralProfileId]=CP-####-####'

Paramètres

Paramètre Type Champ Description
Merchant array OBLIGATOIRE Ajouter les informations de l’entreprise d’un submerchant
name string   Nom de l’entreprise
coc string   Numéro du registre du commerce
vatNumber string   Numéro de TVA
street string   Rue
houseNumber string   Numéro
houseNumberAddition string   Complément d’adresse
postalCode string   Code postal
city string   Ville
countryCode string   Pays dans lequel l’entreprise est établie
contactEmail string OPTIONNEL Adresse e-mail de contact pour les clients
contactPhone string OPTIONNEL Numéro de téléphone de contact pour les clients
Accounts array OBLIGATOIRE Tableau des comptes utilisateurs à associer au submerchant. Au moins un compte est requis.

Accounts

Paramètre Type Description
email string Adresse e-mail de l’utilisateur
firstname string Prénom
lastname string Nom
gender string Sexe de l’utilisateur. Options : male, female
authorizedToSign string Pouvoir de signature :
0 : NON
1 : OUI, signature individuelle
2 : OUI, signature conjointe
ubo integer Statut UBO :
0 : NON
1 : OUI
uboPercentage string Pourcentage UBO sous forme numérique
hasAccess string Accès au compte merchant :
0 : NON
1 : OUI
languageId string Langue préférée de l’utilisateur. Exemples : 1:NL, 2:BE, 4:EN, 5:DE, 6:FR, 8:ES

Réponse

Cet exemple montre le résultat de l’appel à l’API alliance::addMerchant.

Nom Type Description
success boolean 0 : échec, 1 : succès
error_field string Code d’erreur
errorMessage string Description de l’erreur
merchantId string Référence unique du compte submerchant créé
merchantToken string Token du submerchant
accounts array Liste des comptes créés
Nom Type Description
accountId string Code du compte utilisateur (A-####-####)
email string Adresse e-mail de l’utilisateur créé

Response: Alliance::addMerchant

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8


{
"success":  "1",
"error_field":  "",
"error_message":  "",
"merchantId":  "M-####-####",
"merchantToken":  "***********",
"accounts": [
{
"accountId": "A-####-####",
"email": "director@classic-carparts.nl"
},
{
"accountId": "A-####-####",
"email": "finance@classic-carparts.nl"
}
]
}

2. Récupérer un merchant individuel

Requête

Dans cet exemple, nous récupérons les données d’un seul merchant. Cette requête permet notamment d’obtenir :

  • Le nom du vendeur
  • Les méthodes de paiement activées (services)
  • Le solde du compte
  • Le statut des documents à fournir
  • Les utilisateurs ajoutés
  • Le compte bancaire associé
  • Les informations de l’entreprise (adresse, numéro du registre du commerce)
  • Les coordonnées publiques
  • L’autorisation de débiter le solde
  • Les dates de création, d’acceptation ou de suppression du compte

Request code: Add Submerchant

curl --request POST
--url https://rest-api.pay.nl/v16/Alliance/getMerchant/json
--header 'authorization: Basic dG9rZW46PHlvdXItYXBpLXRva2VuPg=='
--header 'cache-control: no-cache'
--header 'content-type: application/x-www-form-urlencoded'
--data-urlencode 'merchantId=M-###-####'

Paramètres

Paramètre Type Champ Description
merchantId array OBLIGATOIRE ID du submerchant (M-####-####)

Request

Dans cet exemple de requête, nous récupérons les données d’un merchant associé à un compte partenaire Alliance. 

Paramètres

Paramètre Type Champ Description
merchantId array OBLIGATOIRE ID du submerchant (M-####-####)

Response: Alliance::getMerchant

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8


{
  "request": {
    "result": "1",
    "errorId": "",
    "errorMessage": ""
  },
  "merchantId": "M-####-####",
  "merchantName": "Classic Carparts BV",
  "services": [
    {
      "serviceId": "SL-####-####",
      "serviceName": "Classic Carparts Diner"
    },
    {
      "serviceId": "SL-####-####",
      "serviceName": "Classic Carparts Burger Delivery"
    }
  ],
  "balance": "125343",
  "documents": [
    {
      "id": "D-####-####",
      "type_id": "agreement",
      "type_name": "Overeenkomst",
      "status_id": "2",
      "status_name": "Wacht op goedkeuring",
      "expires": ""
    },
    {
      "id": "D-####-####",
      "type_id": "coc_extract",
      "type_name": "KvK uittreksel",
      "status_id": "4",
      "status_name": "Afgekeurd",
      "expires": ""
    }
  ],
  "accounts": [
    {
      "id": "AL-####-####",
      "account_id": "A-####-####",
      "name": "John Doe",
      "accepted": "1",
      "access": "1",
      "ubo": "0",
      "authorised_to_sign": "1",
      "signature_label": "Volledig/ Zelfst. Tekenbevoegd",
      "documents": [
        {
          "id": "D-####-####",
          "type_id": "identification",
          "type_name": "Legitimatie",
          "status_id": "1",
          "status_name": "Aan te leveren",
          "expires": ""
        }
      ]
    },
    {
      "id": "AL-####-####",
      "account_id": "A-####-####",
      "name": "Dagobert Duck",
      "accepted": "0",
      "access": "0",
      "ubo": "1",
      "authorised_to_sign": "0",
      "signature_label": "Niet Tekenbevoegd",
      "documents": [
        {
          "id": "D-####-####",
          "type_id": "identification",
          "type_name": "Legitimatie",
          "status_id": "1",
          "status_name": "Aan te leveren",
          "expires": ""
        }
      ]
    }
  ],
  "bankaccounts": [
    {
      "id": "BA-####-####",
      "bankaccountHolder": "Classic Carparts Diner",
      "bankaccountNumber": "NL20PAYN000123456***",
      "bic": "PAYNLA2A",
      "countryCode": ""
    }
  ],
  "public_info": [
    {
      "merchantId": "M-####-####",
      "name": "Classic Carparts BV",
      "type": "",
      "type_name": "",
      "postalAddress": {
        "street": "Kopersteden",
        "houseNumber": "10",
        "zipCode": "7547TK",
        "city": "Enschede",
        "countryCode": "NL",
        "countryName": "Nederland"
      },
      "cocNumber": "012345678",
      "vatNumber": "NL012345678B01",
      "image": "",
      "contactdata": [
        {
          "type": "email",
          "value": "info@classic-carparts.nl",
          "description": "24/7 helpdesk"
        },
        {
          "type": "phone",
          "value": "+31888866622",
          "description": "Customer service"
        }
      ]
    }
  ],
  "contract": {
    "packageType": "ALLIANCEPLUS",
    "invoiceAllowed": "1",
    "payoutInterval": "week",
    "createdDate": "2021-01-15",
    "acceptedDate": "",
    "deletedDate": ""
  }
}

3. Téléverser un document

Authentification

Basic Authentication

L’authentification de l’API document::add s’effectue via HTTP Basic Authentication.

Request

Dans cet exemple de requête, les paramètres requis pour le téléversement du document « D-####-#### » sont présentés. 

Paramètres

Paramètre Type Champ Description
documentID array OBLIGATOIRE ID du document à téléverser pour le submerchant
filename string OPTIONNEL Nom du fichier à téléverser
documentFile string OBLIGATOIRE Chaîne Base64 contenant le document

Request code: Uploading a document as base64 for a Submerchant

curl --request POST 
--url https://rest-api.pay.nl/v1/document/add/json 
--header 'authorization: Basic dG9rZW46PHlvdXItYXBpLXRva2VuPg==' 
--header 'cache-control: no-cache' 
--header 'content-type: application/x-www-form-urlencoded' 
--data-urlencode 'documentID=D-####-####' 
--data-urlencode 'filename=id.pdf' 
--data-urlencode 'documentFile=Sm9pbiBvdXIgdGVhbSEgV2UncmUgYWx3YXlzIGxvb2tpbmcgZm9yIGdvb2QgZGV2ZWxvcGVycyE='

Réponse

Nom Type Description
request array Informations relatives au résultat de la requête
result string 0 : échec, 1 : succès
errorId string Code d’erreur
errorMessage string Description de l’erreur

Response: Document upload

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8


{
 "request": {
   "result": "1",
   "errorId": "",
   "errorMessage": ""
},
}

4 Ajouter un compte bancaire à un submerchant

Authentification

Basic Authentication

L’authentification de l’API alliance::addBankAccount s’effectue via HTTP Basic Authentication.

Request

Dans cet exemple de requête, vous trouverez les paramètres nécessaires pour ajouter un (nouveau) compte de règlement au compte submerchant « M-####-#### » au moyen d’un paiement de vérification via iDEAL, Bancontact. 

Paramètres

Paramètre Type Champ Description
merchantId array OBLIGATOIRE ID du submerchant auquel le compte bancaire doit être ajouté
returnUrl string OBLIGATOIRE URL de redirection après le paiement
paymentOptionId string OPTIONNEL Méthode de paiement utilisée pour le paiement de vérification
bankId string OPTIONNEL Banque sélectionnée pour iDEAL
returnUrl string OPTIONNEL URL de retour après paiement

Méthodes de paiement disponibles

  • 10 – iDEAL – NL
  • 436 – Bancontact – BE

Request code: adding a new bank account to a Submerchant account by doing a one time payment.

curl --request POST 
--url https://rest-api.pay.nl/v1/alliance/addBankAccount/json 
--header 'authorization: Basic dG9rZW46PHlvdXItYXBpLXRva2VuPg==' 
--header 'cache-control: no-cache' 
--header 'content-type: application/x-www-form-urlencoded' 
--data-urlencode 'merchantId=M-####-####' 
--data-urlencode 'returnUrl=https://alliance-partner.com/bankaccount_added' 
--data-urlencode 'paymentOptionId=10' 
--data-urlencode 'bankId=4'

Response

Dans cet exemple de réponse, vous voyez le résultat de l’ajout d’un compte bancaire au compte submerchant M-####-#### via iDEAL - ING. 

Réponse

Nom Type Description
request array Informations relatives au résultat de la requête
result string 0 : échec, 1 : succès
errorId string Code d’erreur
errorMessage string Description de l’erreur
issuerUrl string Lien vers la page de paiement de vérification

Response: Alliance::addBankAccount

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8


{
  "request": {
    "result": "1",
    "errorId": "",
    "errorMessage": ""
  }
  "issuerUrl": "https://bankieren.ideal.ing.nl/ideal/betalen/inlog-annuleren/static/detect_mob?trxid=XXXXXXX&random=YYYYYYY"
}

5. Suspendre ou réactiver un merchant

Lorsqu’un client a résilié son contrat, vous pouvez nous le signaler via l’API Alliance::suspend ou réactiver le merchant via Alliance::unsuspend.

Paramètres

Paramètre Type Champ Description
merchantId array OBLIGATOIRE ID du submerchant à suspendre ou à réactiver

Réponse

Nom Type Description
request array Informations relatives au résultat de la requête
status string FALSE (0) : échec, TRUE (1) : succès
message string Description de l’erreur éventuelle (par ex. : access denied)