---
title: "Charge customer and create recurring payment"
method: POST
path: "/billing/recurring/charge/"
tags: ["Payments (Recurring)"]
---

# Charge customer and create recurring payment

`POST /billing/recurring/charge/`

## Headers

- `Content-Language` unknown

## Request body

- OfficeGuyAppsBillingMVCAPIRecurringControllerRecurringChargeRequest
  - `Credentials` CoreAPICredentials, required
    - `CompanyID` integer, required — Company identifier
    - `APIKey` string, required — API key secret
  - `Customer` AccountingTypedCustomer, required
    - `ID` integer, nullable — SUMIT identifier Leave empty to create a new entity or search by other fields when applicable
    - `Folder` string, nullable — Folder identifier. Can be either application folder name, or FolderID.
    - `Properties` object, nullable — Entity fields
    - `Name` string, nullable — Customer full name (or company name) Required for creating new customer (Leave empty to search by other fields)
    - `Phone` string, nullable — Customer phone number (Optional field)
    - `EmailAddress` string, nullable — Customer email address (Optional field)
    - `City` string, nullable — Customer city (Optional field)
    - `Address` string, nullable — Customer address (Optional field)
    - `ZipCode` string, nullable — Customer ZipCode (Optional field)
    - `CompanyNumber` string, nullable — Customer registered company number (VAT number) (Optional field)
    - `ExternalIdentifier` string, nullable — Customer external identifier. External identifier from calling application. Optional field
    - `NoVAT` boolean, nullable — NoVAT indication Set to true for VAT exempt customers Defaults to False
    - `SearchMode` 'Automatic (0)' | 'None (1)' | 'ExternalIdentifier (2)' | 'Name (3)' | 'CompanyNumber (4)' | 'Phone (5)' | 'EmailAddress (6)' — Customer searching mode
  - `PaymentMethod` OfficeGuyAppsBillingMVCAPITypedPaymentMethod
    - `ID` integer, nullable
    - `CustomerID` integer, nullable
    - `CreditCard_Number` string, nullable — Credit card full number Required for credit card
    - `CreditCard_LastDigits` string, nullable — Credit card last 4 digits Shouldn't be input by API caller
    - `CreditCard_ExpirationMonth` integer, nullable — Credit card expiration month (1-2 digits) Required for credit card
    - `CreditCard_ExpirationYear` integer, nullable — Credit card expiration year (4 digits) Required for credit card
    - `CreditCard_CVV` string, nullable — Credit card CVV/CVV2 Required when CVV is required by credit company
    - `CreditCard_Track2` string, nullable — Credit card Track2
    - `CreditCard_CitizenID` string, nullable — Credit card owner Israel Citizen ID / Passport Number Required when Citizen ID is required by credit company
    - `CreditCard_CardMask` string, nullable — Credit card mask Shouldn't be input by API caller
    - `CreditCard_Token` string, nullable — Credit card token
    - `DirectDebit_Bank` integer, nullable — Direct debit bank number For instance, 12 indicates Bank Hapoalim.
    - `DirectDebit_Branch` integer, nullable — Direct debit bank branch number
    - `DirectDebit_Account` integer, nullable — Direct debit bank account number
    - `DirectDebit_ExpirationDate` string, date-time, nullable — Direct debit expiration date
    - `DirectDebit_MaximumAmount` integer, nullable — Direct debit maximum charge amount
    - `Type` 'Other (0)' | 'CreditCard (1)' | 'DirectDebit (2)'
  - `SingleUseToken` string, nullable — Single use token, for all payment details (CardNumber, Expiration, CVV, CitizenID). Used primarily by the Payments JavaScript API.
  - `Items` OfficeGuyAppsBillingMVCAPITypedChargeRecurringItem[], required — Items
    - `Item` OfficeGuyAppsBillingMVCAPITypedRecurringItem, required
      - `ID` integer, nullable — SUMIT identifier
      - `Name` string, nullable — Item name
      - `Description` string, nullable — Item description
      - `Price` number, double, nullable — Item price (for single unit)
      - `Currency` 'ILS (0)' | 'USD (1)' | 'EUR (2)' | 'CAD (3)' | 'CHF (4)' | 'GBP (5)' | 'AUD (6)' | 'JPY (8)' | 'SEK (9)' | 'NOK (10)' | 'DKK (11)' | 'ZAR (12)' | 'JOD (13)' | 'LBP (14)' | 'EGP (15)' | 'ARS (32)' | 'BSD (44)' | 'BHD (48)' | 'BDT (50)' | 'AMD (51)' | 'BBD (52)' | 'BMD (60)' | 'BTN (64)' | 'BOB (68)' | 'BWP (72)' | 'BZD (84)' | 'SBD (90)' | 'BND (96)' | 'MMK (104)' | 'BIF (108)' | 'KHR (116)' | 'CVE (132)' | 'KYD (136)' | 'LKR (144)' | 'CLP (152)' | 'CNY (156)' | 'COP (170)' | 'KMF (174)' | 'CRC (188)' | 'HRK (191)' | 'CUP (192)' | 'CZK (203)' | 'DOP (214)' | 'SVC (222)' | 'ETB (230)' | 'ERN (232)' | 'FKP (238)' | 'FJD (242)' | 'DJF (262)' | 'GMD (270)' | 'GIP (292)' | 'GTQ (320)' | 'GNF (324)' | 'GYD (328)' | 'HTG (332)' | 'HNL (340)' | 'HKD (344)' | 'HUF (348)' | 'ISK (352)' | 'INR (356)' | 'IDR (360)' | 'IRR (364)' | 'IQD (368)' | 'JMD (388)' | 'KZT (398)' | 'KES (404)' | 'KPW (408)' | 'KRW (410)' | 'KWD (414)' | 'KGS (417)' | 'LAK (418)' | 'LSL (426)' | 'LRD (430)' | 'LYD (434)' | 'MOP (446)' | 'MWK (454)' | 'MYR (458)' | 'MVR (462)' | 'MUR (480)' | 'MXN (484)' | 'MNT (496)' | 'MDL (498)' | 'MAD (504)' | 'OMR (512)' | 'NAD (516)' | 'NPR (524)' | 'ANG (532)' | 'AWG (533)' | 'VUV (548)' | 'NZD (554)' | 'NIO (558)' | 'NGN (566)' | 'PKR (586)' | 'PAB (590)' | 'PGK (598)' | 'PYG (600)' | 'PEN (604)' | 'PHP (608)' | 'QAR (634)' | 'RUB (643)' | 'RWF (646)' | 'SHP (654)' | 'SAR (682)' | 'SCR (690)' | 'SLL (694)' | 'SGD (702)' | 'VND (704)' | 'SOS (706)' | 'SZL (748)' | 'SYP (760)' | 'THB (764)' | 'TOP (776)' | 'TTD (780)' | 'AED (784)' | 'TND (788)' | 'UGX (800)' | 'MKD (807)' | 'TZS (834)' | 'UYU (858)' | 'UZS (860)' | 'WST (882)' | 'YER (886)' | 'TWD (901)' | 'CUC (931)' | 'ZWL (932)' | 'BYN (933)' | 'TMT (934)' | 'GHS (936)' | 'SDG (938)' | 'RSD (941)' | 'MZN (943)' | 'AZN (944)' | 'RON (946)' | 'TRY (949)' | 'XAF (950)' | 'XCD (951)' | 'XOF (952)' | 'XPF (953)' | 'XAU (959)' | 'XDR (960)' | 'XAG (961)' | 'ZMW (967)' | 'SRD (968)' | 'MGA (969)' | 'AFN (971)' | 'TJS (972)' | 'AOA (973)' | 'BGN (975)' | 'CDF (976)' | 'BAM (977)' | 'UAH (980)' | 'GEL (981)' | 'PLN (985)' | 'BRL (986)' | 'CLF (990)'
      - `Cost` number, double, nullable — Item cost (for single unit)
      - `ExternalIdentifier` string, nullable — Income item external identifier
      - `SKU` string, nullable
      - `SearchMode` 'Automatic (0)' | 'None (1)' | 'ExternalIdentifier (2)' | 'Name (3)' | 'SKU (4)' | 'Description (5)'
      - `Properties` object, nullable — Entity fields
      - `Duration_Days` integer, nullable — Recurring duration/interval in days
      - `Duration_Months` integer, nullable — Recurring duration/interval in months
    - `Quantity` number, double, nullable — Quantity Defaults to 1
    - `UnitPrice` number, double, nullable — Single unit price in payment currency
    - `Currency` 'ILS (0)' | 'USD (1)' | 'EUR (2)' | 'CAD (3)' | 'CHF (4)' | 'GBP (5)' | 'AUD (6)' | 'JPY (8)' | 'SEK (9)' | 'NOK (10)' | 'DKK (11)' | 'ZAR (12)' | 'JOD (13)' | 'LBP (14)' | 'EGP (15)' | 'ARS (32)' | 'BSD (44)' | 'BHD (48)' | 'BDT (50)' | 'AMD (51)' | 'BBD (52)' | 'BMD (60)' | 'BTN (64)' | 'BOB (68)' | 'BWP (72)' | 'BZD (84)' | 'SBD (90)' | 'BND (96)' | 'MMK (104)' | 'BIF (108)' | 'KHR (116)' | 'CVE (132)' | 'KYD (136)' | 'LKR (144)' | 'CLP (152)' | 'CNY (156)' | 'COP (170)' | 'KMF (174)' | 'CRC (188)' | 'HRK (191)' | 'CUP (192)' | 'CZK (203)' | 'DOP (214)' | 'SVC (222)' | 'ETB (230)' | 'ERN (232)' | 'FKP (238)' | 'FJD (242)' | 'DJF (262)' | 'GMD (270)' | 'GIP (292)' | 'GTQ (320)' | 'GNF (324)' | 'GYD (328)' | 'HTG (332)' | 'HNL (340)' | 'HKD (344)' | 'HUF (348)' | 'ISK (352)' | 'INR (356)' | 'IDR (360)' | 'IRR (364)' | 'IQD (368)' | 'JMD (388)' | 'KZT (398)' | 'KES (404)' | 'KPW (408)' | 'KRW (410)' | 'KWD (414)' | 'KGS (417)' | 'LAK (418)' | 'LSL (426)' | 'LRD (430)' | 'LYD (434)' | 'MOP (446)' | 'MWK (454)' | 'MYR (458)' | 'MVR (462)' | 'MUR (480)' | 'MXN (484)' | 'MNT (496)' | 'MDL (498)' | 'MAD (504)' | 'OMR (512)' | 'NAD (516)' | 'NPR (524)' | 'ANG (532)' | 'AWG (533)' | 'VUV (548)' | 'NZD (554)' | 'NIO (558)' | 'NGN (566)' | 'PKR (586)' | 'PAB (590)' | 'PGK (598)' | 'PYG (600)' | 'PEN (604)' | 'PHP (608)' | 'QAR (634)' | 'RUB (643)' | 'RWF (646)' | 'SHP (654)' | 'SAR (682)' | 'SCR (690)' | 'SLL (694)' | 'SGD (702)' | 'VND (704)' | 'SOS (706)' | 'SZL (748)' | 'SYP (760)' | 'THB (764)' | 'TOP (776)' | 'TTD (780)' | 'AED (784)' | 'TND (788)' | 'UGX (800)' | 'MKD (807)' | 'TZS (834)' | 'UYU (858)' | 'UZS (860)' | 'WST (882)' | 'YER (886)' | 'TWD (901)' | 'CUC (931)' | 'ZWL (932)' | 'BYN (933)' | 'TMT (934)' | 'GHS (936)' | 'SDG (938)' | 'RSD (941)' | 'MZN (943)' | 'AZN (944)' | 'RON (946)' | 'TRY (949)' | 'XAF (950)' | 'XCD (951)' | 'XOF (952)' | 'XPF (953)' | 'XAU (959)' | 'XDR (960)' | 'XAG (961)' | 'ZMW (967)' | 'SRD (968)' | 'MGA (969)' | 'AFN (971)' | 'TJS (972)' | 'AOA (973)' | 'BGN (975)' | 'CDF (976)' | 'BAM (977)' | 'UAH (980)' | 'GEL (981)' | 'PLN (985)' | 'BRL (986)' | 'CLF (990)'
    - `Date_Start` string, date-time, nullable — First payment date Defaults to the current date. Format should be JSON based (such as 2023-11-30).
    - `Description` string, nullable — Recurring record description
    - `Duration_Days` integer, nullable — Recurring duration/interval in days For instance, for monthly payments, specify 0. For weekly payments, specify 7.
    - `Duration_Months` integer, nullable — Recurring duration/interval in months For instance, for monthly payments, specify 1
    - `Recurrence` integer, nullable — Number of recurring payments For instance, for 1 year of monthly payments, specify 12. Setting this to null or 0 will result in continuous payments
  - `UpdateCustomerByEmail` boolean, nullable — Update customer by email Defaults to False
  - `UpdateCustomerByEmail_AttachDocument` boolean, nullable — Attach invoice/receipt to email Defaults to False
  - `AuthoriseOnly` boolean, nullable — Should the transaction be committed, or authorized only. Leave empty for "False" (Auto-Commit). This field could be used for testing the Charge action easily. Please note, when using AuthoriseOnly, documents will be created as "Draft", and recurring items will be created as cancelled.
  - `DocumentType` 'Invoice (0)' | 'InvoiceAndReceipt (1)' | 'Receipt (2)' | 'ProformaInvoice (3)' | 'DonationReceipt (4)' | 'CreditInvoice (5)' | 'CreditInvoiceAndReceipt (6)' | 'CreditReceipt (7)' | 'Order (8)' | 'DeliveryNote (9)' | 'GoodsReturnNote (10)' | 'PurchasingOrder (11)' | 'PriceQuotation (12)' | 'PaymentRequest (13)' | 'CreditDonationReceipt (14)' | 'ExpenseInvoiceReceipt (15)' | 'ExpenseInvoice (16)' | 'ExpenseReceipt (17)' | 'ExpenseRequest (18)' | 'CreditExpenseInvoiceReceipt (19)' | 'CreditExpenseInvoice (20)' | 'CreditExpenseReceipt (21)' | 'SupplierPayment (22)'
  - `SendCopyToOrganization` boolean, nullable — Send email to the organization as well. Defaults to the accounting application settings. Relevant when using UpdateCustomerByEmail.
  - `VATIncluded` boolean, nullable — Is VAT included in the prices? Leave empty for false. Relevant for items only.
  - `AttributionOffset` integer, nullable — Attribution offset in months
  - `CreditCardPayments_Count` integer, nullable — Credit card payments count. Please note this is not the recurrence (how many months the transaction should last), this parameter shouldn't be used on most use cases. Leave this empty to disable payments and use standard direct debit.
  - `MerchantNumber` string, nullable — Shva merchant number (Terminal number). This parameter should only be used when multiple merchants are defined in the company.
  - `OnlyDocument` boolean — Generate documents without payment processing
  - `DocumentLanguage` 'Hebrew (0)' | 'English (1)' | 'Arabic (2)' | 'Spanish (3)'
  - `FirstDocumentDescription` string, nullable — First document description. The description is shown in the first payment printed document. Please note the description will only be shown when the API requests creates a document, and won't be shown on future documents.
  - `PreventStandingOrder` boolean, nullable — Prevents the usage of Standing order recurring chargers, force using debit card merchant number, when multiple merchants are supported. Defaults to false.

## Response `200`

OK

- ResponseOfficeGuyAppsBillingMVCAPIRecurringControllerRecurringChargeResponse
  - `Status` 'Success (0)' | 'BusinessError (1)' | 'TechnicalError (2)'
  - `UserErrorMessage` string, nullable — Error message, in a user readable format
  - `TechnicalErrorDetails` string, nullable — Technical error details, let us know if you received this.
  - `Data` OfficeGuyAppsBillingMVCAPIRecurringControllerRecurringChargeResponse
    - `Payment` OfficeGuyAppsBillingMVCAPITypedPayment
      - `ID` integer — Payment identifier
      - `CustomerID` integer — Customer identifier
      - `Date` string, date-time, nullable — Payment date
      - `ValidPayment` boolean — Indicates if the payment is valid
      - `Status` string, nullable — Payment status
      - `StatusDescription` string, nullable — Payment status description
      - `Amount` number, double — Payment amount
      - `Currency` 'ILS (0)' | 'USD (1)' | 'EUR (2)' | 'CAD (3)' | 'CHF (4)' | 'GBP (5)' | 'AUD (6)' | 'JPY (8)' | 'SEK (9)' | 'NOK (10)' | 'DKK (11)' | 'ZAR (12)' | 'JOD (13)' | 'LBP (14)' | 'EGP (15)' | 'ARS (32)' | 'BSD (44)' | 'BHD (48)' | 'BDT (50)' | 'AMD (51)' | 'BBD (52)' | 'BMD (60)' | 'BTN (64)' | 'BOB (68)' | 'BWP (72)' | 'BZD (84)' | 'SBD (90)' | 'BND (96)' | 'MMK (104)' | 'BIF (108)' | 'KHR (116)' | 'CVE (132)' | 'KYD (136)' | 'LKR (144)' | 'CLP (152)' | 'CNY (156)' | 'COP (170)' | 'KMF (174)' | 'CRC (188)' | 'HRK (191)' | 'CUP (192)' | 'CZK (203)' | 'DOP (214)' | 'SVC (222)' | 'ETB (230)' | 'ERN (232)' | 'FKP (238)' | 'FJD (242)' | 'DJF (262)' | 'GMD (270)' | 'GIP (292)' | 'GTQ (320)' | 'GNF (324)' | 'GYD (328)' | 'HTG (332)' | 'HNL (340)' | 'HKD (344)' | 'HUF (348)' | 'ISK (352)' | 'INR (356)' | 'IDR (360)' | 'IRR (364)' | 'IQD (368)' | 'JMD (388)' | 'KZT (398)' | 'KES (404)' | 'KPW (408)' | 'KRW (410)' | 'KWD (414)' | 'KGS (417)' | 'LAK (418)' | 'LSL (426)' | 'LRD (430)' | 'LYD (434)' | 'MOP (446)' | 'MWK (454)' | 'MYR (458)' | 'MVR (462)' | 'MUR (480)' | 'MXN (484)' | 'MNT (496)' | 'MDL (498)' | 'MAD (504)' | 'OMR (512)' | 'NAD (516)' | 'NPR (524)' | 'ANG (532)' | 'AWG (533)' | 'VUV (548)' | 'NZD (554)' | 'NIO (558)' | 'NGN (566)' | 'PKR (586)' | 'PAB (590)' | 'PGK (598)' | 'PYG (600)' | 'PEN (604)' | 'PHP (608)' | 'QAR (634)' | 'RUB (643)' | 'RWF (646)' | 'SHP (654)' | 'SAR (682)' | 'SCR (690)' | 'SLL (694)' | 'SGD (702)' | 'VND (704)' | 'SOS (706)' | 'SZL (748)' | 'SYP (760)' | 'THB (764)' | 'TOP (776)' | 'TTD (780)' | 'AED (784)' | 'TND (788)' | 'UGX (800)' | 'MKD (807)' | 'TZS (834)' | 'UYU (858)' | 'UZS (860)' | 'WST (882)' | 'YER (886)' | 'TWD (901)' | 'CUC (931)' | 'ZWL (932)' | 'BYN (933)' | 'TMT (934)' | 'GHS (936)' | 'SDG (938)' | 'RSD (941)' | 'MZN (943)' | 'AZN (944)' | 'RON (946)' | 'TRY (949)' | 'XAF (950)' | 'XCD (951)' | 'XOF (952)' | 'XPF (953)' | 'XAU (959)' | 'XDR (960)' | 'XAG (961)' | 'ZMW (967)' | 'SRD (968)' | 'MGA (969)' | 'AFN (971)' | 'TJS (972)' | 'AOA (973)' | 'BGN (975)' | 'CDF (976)' | 'BAM (977)' | 'UAH (980)' | 'GEL (981)' | 'PLN (985)' | 'BRL (986)' | 'CLF (990)'
      - `PaymentMethod` OfficeGuyAppsBillingMVCAPITypedPaymentMethod
        - `ID` integer, nullable
        - `CustomerID` integer, nullable
        - `CreditCard_Number` string, nullable — Credit card full number Required for credit card
        - `CreditCard_LastDigits` string, nullable — Credit card last 4 digits Shouldn't be input by API caller
        - `CreditCard_ExpirationMonth` integer, nullable — Credit card expiration month (1-2 digits) Required for credit card
        - `CreditCard_ExpirationYear` integer, nullable — Credit card expiration year (4 digits) Required for credit card
        - `CreditCard_CVV` string, nullable — Credit card CVV/CVV2 Required when CVV is required by credit company
        - `CreditCard_Track2` string, nullable — Credit card Track2
        - `CreditCard_CitizenID` string, nullable — Credit card owner Israel Citizen ID / Passport Number Required when Citizen ID is required by credit company
        - `CreditCard_CardMask` string, nullable — Credit card mask Shouldn't be input by API caller
        - `CreditCard_Token` string, nullable — Credit card token
        - `DirectDebit_Bank` integer, nullable — Direct debit bank number For instance, 12 indicates Bank Hapoalim.
        - `DirectDebit_Branch` integer, nullable — Direct debit bank branch number
        - `DirectDebit_Account` integer, nullable — Direct debit bank account number
        - `DirectDebit_ExpirationDate` string, date-time, nullable — Direct debit expiration date
        - `DirectDebit_MaximumAmount` integer, nullable — Direct debit maximum charge amount
        - `Type` 'Other (0)' | 'CreditCard (1)' | 'DirectDebit (2)'
      - `AuthNumber` string, nullable — Authorization number
      - `FirstPaymentAmount` number, double, nullable — First credit card installments payment amount
      - `NonFirstPaymentAmount` number, double, nullable — Non first credit card installments payment amount
      - `RecurringCustomerItemIDs` integer[], nullable — Relevant only for payments originating from recurring payments
    - `DocumentID` integer, nullable — Document ID
    - `CustomerID` integer — Customer number
    - `DocumentDownloadURL` string, nullable — Document download URL Produced document will be original (on first fetching), or certified copy.
    - `RecurringCustomerItemIDs` integer[], nullable — Created recurring customer items identifiers

---

[API](https://skmtc.net/myofficeguy/apis/sumit-api-full.md) · [All operations](https://skmtc.net/myofficeguy/apis/sumit-api-full/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/myofficeguy/sumit-api-full/versions/de2902289b3a/schema)
