openapi: 3.2.0 info: version: v2 title: Lemonway DirectKit API 2.0 MoneyIns | Pay by Link API servers: - url: https://ws.lemonway.fr/mb/env-name/prod/directkitrest/ tags: - name: MoneyIns | Pay by Link paths: /v2/moneyins/card/paymentform: post: tags: - MoneyIns | Pay by Link summary: Create Payment Form (Pay by Link) description: 'Accept payments by an SMS, email, or document. Create a form that permits your customers to make card payments by link. - Payment forms are generated and managed by Lemonway. - Payment forms are publicly accessible, making it possible for anyone to pay with a valid link. - Payment by bank card is only supported. Payment Scenerios: 1. **Benificary Wallet `walletReceiver` not specified** You only specify `walletPayer` and not `walletReceiver` in the body parameters. They make a card payment and funds are transfered to the `walletPayer` (a designated wallet) 2. **Payer and Benificary Wallet defined** 3. **Benificary pecified** **Note:** Deferred payment is not supported.' operationId: MoneyIns_CardPaymentFormPost parameters: - name: Authorization in: header description: Authorization bearer (OAuth 2) required: true schema: type: string - name: PSU-Accept-Language in: header description: Response language accepted by final client (PSU). English by default required: false schema: type: string - name: PSU-IP-Address in: header description: IP address of the final client (PSU). required: true schema: type: string - name: PSU-User-Agent in: header description: User-agent of the final client (PSU). required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePaymentFormInput' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreatePaymentFormOutput' examples: response: value: form: walletIp: 82.26.79.125 walletUa: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.3 amountTotRange: 1100-50100 amountCom: '' language: fr version: '1.9' style: https://YourCompany.com/public/payment.css atosStyle: https://YourCompany.com/public/atos.css notifUrl: http://login:pass@YourCompany.com/notif/?origine=lemonway&orderId=135 options: '' active: true raisonSociale: null id: 579c7def4bb0411da294d9b57c2c1323 optId: Order1234 accountPayer: '8888' accountReceiver: '9999' comment: Commande numéro 245 returnUrl: http://YourCompany.com/ThankYou cancelUrl: http://YourCompany.com/PleaseComeBackLater errorUrl: http://YourCompany.com/Sorry firstNamePayer: Jean lastNamePayer: DUPONT emailPayer: jean.dupont@email.com '401': description: Unauthorized '500': description: InternalServerError /v2/moneyins/paymentform/{formid}/completed: get: tags: - MoneyIns | Pay by Link summary: Get Details of a Completed Payment Form description: 'This method lets you to retreive the status of a completed (or filled) payment form Scenario Using the POST /moneyins/card/paymentform method, you have generated a re-usable Payment Form (with the form Id is for example 579c7def4bb0411da294d9b57c2c1323) Some clients filled the form and make payment. Each time a client completes the form and click on the Accept and Pay button, Lemonway will store the completed form and generate a new id for it, for example 7e98be392a5e45f6bc357a9ab8c623d2 The initial status of the completed form is pending. When client finish the payment process, it will switch to PAID. It could also switch to CANCEL or ERROR. In this example, the completed form 7e98.. was created from the parent form 579c..The form 579c.. is reusable, which means it can be completed several time by different clients, so it could have many completed version.This function allows you to retreive the status of a the filled form via its id (7e98..).' operationId: MoneyIns_PaymentFormCompletedGet parameters: - name: formid in: path required: true schema: type: string - name: Authorization in: header description: Authorization bearer (OAuth 2) required: true schema: type: string - name: PSU-Accept-Language in: header description: Response language accepted by final client (PSU). English by default required: false schema: type: string - name: PSU-IP-Address in: header description: IP address of the final client (PSU). required: true schema: type: string - name: PSU-User-Agent in: header description: User-agent of the final client (PSU). required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetCompletedPaymentFormOutput' examples: response: value: form: parentId: string parentComment: string amountTot: string status: PENDING | PAID | ERROR | CANCEL utcDate: 1474376289 created: 1474290552 id: 579c7def4bb0411da294d9b57c2c1323 optId: Order1234 accountPayer: '8888' accountReceiver: '9999' comment: Commande numéro 245 returnUrl: http://YourCompany.com/success cancelUrl: http://YourCompany.com/cancel errorUrl: http://YourCompany.com/error firstNamePayer: Jean lastNamePayer: DUPONT emailPayer: jean.dupont@email.com '401': description: Unauthorized '500': description: InternalServerError /v2/moneyins/paymentform/{formid}/disable: put: tags: - MoneyIns | Pay by Link summary: Disable a Payment Form description: Disable a payment form created by CreatePaymentForm operationId: MoneyIns_PaymentFormDisablePut parameters: - name: formid in: path required: true schema: type: string - name: Authorization in: header description: Authorization bearer (OAuth 2) required: true schema: type: string - name: PSU-Accept-Language in: header description: Response language accepted by final client (PSU). English by default required: false schema: type: string - name: PSU-IP-Address in: header description: IP address of the final client (PSU). required: true schema: type: string - name: PSU-User-Agent in: header description: User-agent of the final client (PSU). required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DisablePaymentFormOutput' examples: response: value: message: e6a3bbb8d6864cdba6e311d65e3d2005 '401': description: Unauthorized '500': description: InternalServerError components: schemas: CreatePaymentFormOutput: type: object properties: form: $ref: '#/components/schemas/PaymentForm' error: $ref: '#/components/schemas/Error' GetCompletedPaymentFormOutput: type: object properties: form: $ref: '#/components/schemas/PaymentFormDetails' error: $ref: '#/components/schemas/Error' DisablePaymentFormOutput: type: object properties: message: type: string error: $ref: '#/components/schemas/Error' CreatePaymentFormInput: type: object properties: optId: description: "To cross-reference a buyer with a payment, use `optId` to help associate them with one another. \n**Note:** Do not use special characters in this field, for example: #, @, and !." maxLength: 60 minLength: 0 type: string walletPayer: description: "Associated with the **Payer Wallet**. \nIf this field is filled then the money reaches this wallet before arriving at the beneficiary wallet (via a transfer wallet to wallet).\n**Important:** Don't put the SC Wallet here, it won't work. You cannot debit the SC Wallet with a credit card." maxLength: 100 minLength: 0 type: string walletReceiver: description: "Beneficiary Wallet. If this field is not complete, then the end-user must to fill its value on the payment form. \nWe recommend you complete the form instead of your end-user\nDon't put the SC Wallet here, it won't work. You cannot credit the SC Wallet with a credit card." maxLength: 100 minLength: 0 type: string totalAmount: description: 'Amount or a range of the amount to be debited. 1. If this field is configured with an interval (eg, 15.30-500.26) then the final customer will have to enter an appropriate amount in the form. 2. If this field is not filled then the end-user can enter any amount to the form. 3. If this field is filled with a precise value (eg 15.60), then the end-user has no choice in the amount field of the form. Amounts are given as integer numbers in cents. Note: If you enter a fixed amount' type: string commissionAmount: format: int32 description: 'Your Fee Amounts are given as integer numbers in cents' type: integer comment: description: Comment Regarding the Transaction maxLength: 140 minLength: 0 type: string returnUrl: description: URL redirection after the payment procedure is successfully finished maxLength: 255 minLength: 0 type: string cancelUrl: description: URL redirection after the payment procedure is cancelled maxLength: 255 minLength: 0 type: string errorUrl: description: URL edirection after the payment procedure is failed maxLength: 255 minLength: 0 type: string firstNamePayer: description: 'Payer''s First Name If this field is not filled then the end-user have to fill it in the payment form' maxLength: 255 minLength: 0 type: string lastNamePayer: description: 'Payer''s Last Name If this field is not filled then the end-user have to fill it in the payment form' maxLength: 255 minLength: 0 type: string emailPayer: description: 'Payer''s Email If this field is not filled then the end-user have to fill it in the payment form' maxLength: 255 minLength: 0 pattern: ^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$ type: string style: description: 'Link to a custom CSS Stylesheet The stylesheet should be publicly accessible via **HTTPS*' maxLength: 255 minLength: 0 type: string atosStyle: maxLength: 255 minLength: 0 type: string notifUrl: description: "At the end of the payment procedure, an HTTP POST message containing the payment status (PAID, ERROR, CANCEL) is sent to this address. \nIt is possible that the same notification might be sent several times." maxLength: 255 minLength: 0 type: string options: description: Reserved for a future version maxLength: 255 minLength: 0 type: string example: optId: Order1234 walletPayer: '8888' walletReceiver: '9999' totalAmount: 500-1000 commissionAmount: 100 comment: Commande numéro 245 returnUrl: http://YourCompany.com/ThankYou cancelUrl: http://YourCompany.com/PleaseComeBackLater errorUrl: http://YourCompany.com/Sorry firstNamePayer: Jean lastNamePayer: DUPONT emailPayer: jean.dupont@email.com style: https://sandbox-webkit.lemonway.fr/demo/dev/payment-page/css/main.css atosStyle: https://YourCompany.com/public/atos.css notifUrl: http://login:pass@YourCompany.com/notif/?origine=lemonway&orderId=135 Error: type: object properties: code: format: int32 type: integer message: type: string psp: $ref: '#/components/schemas/PSP' PaymentFormDetails: type: object properties: parentId: type: string parentComment: type: string amountTot: type: string status: type: string utcDate: format: int32 description: UTC Unix Timestamp type: integer created: format: int32 description: UTC Unix Timestamp type: integer id: description: Payment Form ID type: string optId: description: Optional identity of the payment form. You should not use special character here. type: string accountPayer: description: 'Payer Account If this field is filled then the money reaches this wallet before arriving at the beneficiary wallet (via a transfer wallet to wallet) note: Don''t put the SC Wallet here, it won''t work. You cannot credit the SC Wallet with a credit card.' type: string accountReceiver: description: 'Beneficiary Account if this field is not filled then the end-user must to fill its value on the payment form. We recommend you to always fill it instead of your end-user. note: Don''t put the SC Wallet here, it won''t work. You cannot credit the SC Wallet with a credit card.' type: string comment: type: string returnUrl: description: URL redirection after the payment procedure is successfully finished type: string cancelUrl: description: URL redirection after the payment procedure is cancelled type: string errorUrl: description: URL redirection after the payment procedure is failed type: string firstNamePayer: description: 'Payer''s First Name If this field is not filled then the end-user have to fill it in the payment form.' type: string lastNamePayer: description: 'Payer''s Last Name If this field is not filled then the end-user have to fill it in the payment form.' type: string emailPayer: description: 'Payer''s Email If this field is not filled then the end-user have to fill it in the payment form.' type: string PSP: type: object properties: message: description: Get the Error Message from PSP type: string PaymentForm: type: object properties: walletIp: type: string walletUa: type: string amountTotRange: type: string amountCom: type: string language: type: string version: type: string style: type: string atosStyle: description: 'Mercanet v1 only: Link to a custom Mercanet CSS Stylesheet. The stylesheet should be publicly accessible via HTTPS' type: string notifUrl: type: string options: description: Reserved for future version type: string active: type: boolean raisonSociale: type: string id: description: Payment Form ID type: string optId: description: Optional identity of the payment form. You should not use special character here. type: string accountPayer: description: 'Payer Account If this field is filled then the money reaches this wallet before arriving at the beneficiary wallet (via a transfer wallet to wallet) note: Don''t put the SC Wallet here, it won''t work. You cannot credit the SC Wallet with a credit card.' type: string accountReceiver: description: 'Beneficiary Account if this field is not filled then the end-user must to fill its value on the payment form. We recommend you to always fill it instead of your end-user. note: Don''t put the SC Wallet here, it won''t work. You cannot credit the SC Wallet with a credit card.' type: string comment: type: string returnUrl: description: URL redirection after the payment procedure is successfully finished type: string cancelUrl: description: URL redirection after the payment procedure is cancelled type: string errorUrl: description: URL redirection after the payment procedure is failed type: string firstNamePayer: description: 'Payer''s First Name If this field is not filled then the end-user have to fill it in the payment form.' type: string lastNamePayer: description: 'Payer''s Last Name If this field is not filled then the end-user have to fill it in the payment form.' type: string emailPayer: description: 'Payer''s Email If this field is not filled then the end-user have to fill it in the payment form.' type: string x-provenance: method: searched source: https://documentation.lemonway.com/reference harvested: '2026-10-14' tool: harvest-readme-openapi.py note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored. assembled_from: - https://documentation.lemonway.com/reference/accounts_accountsingleget.md - https://documentation.lemonway.com/reference/accounts_addultimatebeneficialowner.md - https://documentation.lemonway.com/reference/accounts_balancesget.md - https://documentation.lemonway.com/reference/accounts_balanceshistoryget.md - https://documentation.lemonway.com/reference/accounts_blockedput.md - https://documentation.lemonway.com/reference/accounts_documentget.md - https://documentation.lemonway.com/reference/accounts_documentssigninitpost.md - https://documentation.lemonway.com/reference/accounts_documentsuploadpost.md - https://documentation.lemonway.com/reference/accounts_enrolmentinit.md - https://documentation.lemonway.com/reference/accounts_getultimatebeneficialowner.md - https://documentation.lemonway.com/reference/accounts_individualpost.md - https://documentation.lemonway.com/reference/accounts_individualput.md - https://documentation.lemonway.com/reference/accounts_kycstatusget.md - https://documentation.lemonway.com/reference/accounts_kycstatusput.md - https://documentation.lemonway.com/reference/accounts_legalpost.md - https://documentation.lemonway.com/reference/accounts_legalsingleput.md - https://documentation.lemonway.com/reference/accounts_retrievepost.md - https://documentation.lemonway.com/reference/accounts_transactionsget.md - https://documentation.lemonway.com/reference/accounts_updateultimatebeneficialowner.md - https://documentation.lemonway.com/reference/disputes_disputesget.md - https://documentation.lemonway.com/reference/moneyins_accountcardget.md - https://documentation.lemonway.com/reference/moneyins_bankwireget.md - https://documentation.lemonway.com/reference/moneyins_bankwireibancountget.md - https://documentation.lemonway.com/reference/moneyins_bankwireibancreatepost.md - https://documentation.lemonway.com/reference/moneyins_bankwireibandisablepost.md - https://documentation.lemonway.com/reference/moneyins_cancelput.md - https://documentation.lemonway.com/reference/moneyins_cardcreatepost.md - https://documentation.lemonway.com/reference/moneyins_carddirect3dconfirmput.md - https://documentation.lemonway.com/reference/moneyins_cardget.md - https://documentation.lemonway.com/reference/moneyins_cardpaymentformpost.md - https://documentation.lemonway.com/reference/moneyins_cardrebill.md - https://documentation.lemonway.com/reference/moneyins_cardsubscriptionpost.md - https://documentation.lemonway.com/reference/moneyins_cardunregisterput.md - https://documentation.lemonway.com/reference/moneyins_cardwebinitpost.md - https://documentation.lemonway.com/reference/moneyins_chequeget.md - https://documentation.lemonway.com/reference/moneyins_chequeinitpost.md - https://documentation.lemonway.com/reference/moneyins_createbnplpayment.md - https://documentation.lemonway.com/reference/moneyins_getbnplpaymentplans.md - https://documentation.lemonway.com/reference/moneyins_getmoneyinbanks.md - https://documentation.lemonway.com/reference/moneyins_mandateget.md - https://documentation.lemonway.com/reference/moneyins_mandategetdocument.md - https://documentation.lemonway.com/reference/moneyins_mbwayinitpost.md - https://documentation.lemonway.com/reference/moneyins_mobilepayinitpost.md - https://documentation.lemonway.com/reference/moneyins_moneyinapminitasync.md - https://documentation.lemonway.com/reference/moneyins_moneyinget.md - https://documentation.lemonway.com/reference/moneyins_moneyinpaypalinit.md - https://documentation.lemonway.com/reference/moneyins_moneyintransferinit.md - https://documentation.lemonway.com/reference/moneyins_multibancoinitpost.md - https://documentation.lemonway.com/reference/moneyins_paymentformcompletedget.md - https://documentation.lemonway.com/reference/moneyins_paymentformdisableput.md - https://documentation.lemonway.com/reference/moneyins_paypaltransactionresume.md - https://documentation.lemonway.com/reference/moneyins_payshopinitpost.md - https://documentation.lemonway.com/reference/moneyins_paytrailinitpost.md - https://documentation.lemonway.com/reference/moneyins_sddget.md - https://documentation.lemonway.com/reference/moneyins_sddinitpost.md - https://documentation.lemonway.com/reference/moneyins_sddmandatepost.md - https://documentation.lemonway.com/reference/moneyins_sddmandateunregisterput.md - https://documentation.lemonway.com/reference/moneyins_sofortinitpost.md - https://documentation.lemonway.com/reference/moneyins_trustlyinitpost.md - https://documentation.lemonway.com/reference/moneyins_validateput.md - https://documentation.lemonway.com/reference/moneyouts_cancelput.md - https://documentation.lemonway.com/reference/moneyouts_ibanextendedpost.md - https://documentation.lemonway.com/reference/moneyouts_ibanget.md - https://documentation.lemonway.com/reference/moneyouts_ibanpost.md - https://documentation.lemonway.com/reference/moneyouts_ibanunregisterput.md - https://documentation.lemonway.com/reference/moneyouts_moneyoutget.md - https://documentation.lemonway.com/reference/moneyouts_moneyoutpostasync.md - https://documentation.lemonway.com/reference/p2ps_p2pget.md - https://documentation.lemonway.com/reference/p2ps_p2ppost.md - https://documentation.lemonway.com/reference/refunds_refundcreateput.md - https://documentation.lemonway.com/reference/refunds_refundput.md merge: pages: 71 deduped: 281 conflicts_kept_first: 0