# Create customer POST https://api-sandbox.payabli.com/api/Customer/single/{entry} Content-Type: application/json Creates a customer in an entrypoint. An identifier is required to create customer records. Change your identifier settings in Settings > Custom Fields in PartnerHub. If you don't include an identifier, the record is rejected. Reference: https://docs.payabli.com/developers/api-reference/customer/add-customer ## OpenAPI Specification ```yaml openapi: 3.1.1 info: title: Add customer version: endpoint_customer.AddCustomer paths: /Customer/single/{entry}: post: operationId: add-customer summary: Add customer description: >- Creates a customer in an entrypoint. An identifier is required to create customer records. Change your identifier settings in Settings > Custom Fields in PartnerHub. If you don't include an identifier, the record is rejected. tags: - - subpackage_customer parameters: - name: entry in: path required: true schema: $ref: '#/components/schemas/type_:Entrypointfield' - name: forceCustomerCreation in: query description: >- When `true`, the request creates a new customer record, regardless of whether customer identifiers match an existing customer. required: false schema: type: boolean default: false - name: replaceExisting in: query description: >- Flag indicating to replace existing customer with a new record. Possible values: 0 (don't replace), 1 (replace). Default is `0`. required: false schema: type: integer default: 0 - name: requestToken in: header required: true schema: type: string - name: idempotencyKey in: header required: false schema: $ref: '#/components/schemas/type_:IdempotencyKey' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/type_:PayabliApiResponseCustomerQuery' '400': description: Bad request/ invalid data content: {} '401': description: Unauthorized request. content: {} '500': description: Internal API Error content: {} '503': description: Database connection error content: {} requestBody: content: application/json: schema: $ref: '#/components/schemas/type_:CustomerData' components: schemas: type_:Entrypointfield: type: string type_:IdempotencyKey: type: string type_:CustomerNumberNullable: type: string type_:CustomerStatus: type: integer type_:Email: type: string format: email type_:Shippingaddress: type: string type_:Shippingaddressadditional: type: string type_:Shippingcity: type: string type_:Shippingstate: type: string type_:Shippingzip: type: string type_:Shippingcountry: type: string type_:Timezone: type: integer type_:Identifierfields: type: array items: type: string type_:CreatedAt: type: string format: date-time type_:CustomerData: type: object properties: customerNumber: $ref: '#/components/schemas/type_:CustomerNumberNullable' customerUsername: type: string description: Customer username for customer portal customerPsw: type: string description: Customer password for customer portal customerStatus: $ref: '#/components/schemas/type_:CustomerStatus' company: type: string description: Company name firstname: type: string description: Customer first name lastname: type: string description: Customer last name phone: type: string description: Customer phone number email: $ref: '#/components/schemas/type_:Email' description: Customer email address. address: type: string description: Customer address address1: type: string description: Additional customer address city: type: string description: Customer city state: type: string description: Customer State zip: type: string description: Customer postal code country: type: string description: >- Customer country in ISO-3166-1 alpha 2 format. See https://en.wikipedia.org/wiki/ISO_3166-1 for reference. shippingAddress: $ref: '#/components/schemas/type_:Shippingaddress' shippingAddress1: $ref: '#/components/schemas/type_:Shippingaddressadditional' shippingCity: $ref: '#/components/schemas/type_:Shippingcity' shippingState: $ref: '#/components/schemas/type_:Shippingstate' shippingZip: $ref: '#/components/schemas/type_:Shippingzip' shippingCountry: $ref: '#/components/schemas/type_:Shippingcountry' balance: type: number format: double description: Customer balance. timeZone: $ref: '#/components/schemas/type_:Timezone' additionalFields: type: object additionalProperties: type: string description: Additional Custom fields in format "key":"value". identifierFields: $ref: '#/components/schemas/type_:Identifierfields' createdAt: $ref: '#/components/schemas/type_:CreatedAt' type_:IsSuccess: type: boolean type_:CustomerId: type: integer format: int64 type_:Mfa: type: boolean type_:MfaMode: type: integer type_:BillingZip: type: string type_:AdditionalDataMap: type: object additionalProperties: type: string type_:QueryTransactionPayorData: type: object properties: Identifiers: type: array items: description: Any type description: Array of field names to be used as identifiers. FirstName: type: string description: Customer/Payor first name. LastName: type: string description: Customer/Payor last name. CompanyName: type: string description: Customer's company name. BillingAddress1: type: string description: Customer's billing address. BillingAddress2: type: string description: Additional line for Customer's billing address. BillingCity: type: string description: Customer's billing city. BillingState: type: string description: >- Customer's billing state. Must be 2-letter state code for address in US. BillingZip: $ref: '#/components/schemas/type_:BillingZip' description: Customer's billing ZIP code. BillingCountry: type: string description: Customer's billing country. BillingPhone: type: string description: Customer's phone number. BillingEmail: $ref: '#/components/schemas/type_:Email' description: Customer's email address. CustomerNumber: $ref: '#/components/schemas/type_:CustomerNumberNullable' ShippingAddress1: $ref: '#/components/schemas/type_:Shippingaddress' ShippingAddress2: $ref: '#/components/schemas/type_:Shippingaddressadditional' ShippingCity: $ref: '#/components/schemas/type_:Shippingcity' ShippingState: $ref: '#/components/schemas/type_:Shippingstate' ShippingZip: $ref: '#/components/schemas/type_:Shippingzip' ShippingCountry: $ref: '#/components/schemas/type_:Shippingcountry' customerId: $ref: '#/components/schemas/type_:CustomerId' customerStatus: $ref: '#/components/schemas/type_:CustomerStatus' AdditionalData: $ref: '#/components/schemas/type_:AdditionalDataMap' type_:DatetimeNullable: type: string format: date-time type_:EntrypageId: type: integer format: int64 type_:ExternalPaypointId: type: string type_:FileContentFtype: type: string enum: - value: pdf - value: doc - value: docx - value: jpg - value: jpeg - value: png - value: gif - value: txt type_:FileContent: type: object properties: fContent: type: string description: >- Content of file, Base64-encoded. Ignored if furl is specified. Max upload size is 30 MB. filename: type: string description: The name of the attached file. ftype: $ref: '#/components/schemas/type_:FileContentFtype' description: The MIME type of the file (if content is provided) furl: type: string description: Optional URL provided to show or download the file remotely type_:Attachments: type: array items: $ref: '#/components/schemas/type_:FileContent' type_:Discount: type: number format: double type_:DutyAmount: type: number format: double type_:FreightAmount: type: number format: double type_:Frequency: type: string enum: - value: onetime - value: weekly - value: every2weeks - value: every6months - value: monthly - value: every3months - value: annually type_:InvoiceAmount: type: number format: double type_:Datenullable: type: string format: date type_:InvoiceNumber: type: string type_:Invoicestatus: type: integer type_:InvoiceType: type: integer type_:ItemCommodityCode: type: string type_:ItemDescription: type: string type_:ItemProductCode: type: string type_:ItemProductName: type: string type_:ItemUnitofMeasure: type: string type_:BillItem: type: object properties: itemCategories: type: array items: type: string description: Array of tags classifying item or product. itemCommodityCode: $ref: '#/components/schemas/type_:ItemCommodityCode' itemCost: type: number format: double description: Item or product price per unit. itemDescription: $ref: '#/components/schemas/type_:ItemDescription' itemMode: type: integer description: >- Internal class of item or product: value '0' is only for invoices , '1' for bills and, '2' common for both. itemProductCode: $ref: '#/components/schemas/type_:ItemProductCode' itemProductName: $ref: '#/components/schemas/type_:ItemProductName' itemQty: type: integer description: Quantity of item or product. itemTaxAmount: type: number format: double description: Tax amount applied to item or product. itemTaxRate: type: number format: double description: Tax rate applied to item or product. itemTotalAmount: type: number format: double description: Total amount in item or product. itemUnitOfMeasure: $ref: '#/components/schemas/type_:ItemUnitofMeasure' required: - itemCost type_:BillDataPaymentTerms: type: string enum: - value: PIA - value: CIA - value: UR - value: NET10 - value: NET20 - value: NET30 - value: NET45 - value: NET60 - value: NET90 - value: EOM - value: MFI - value: 5MFI - value: 10MFI - value: 15MFI - value: 20MFI - value: 2/10NET30 - value: UF - value: 10UF - value: 20UF - value: 25UF - value: 50UF type_:PurchaseOrder: type: string type_:ShippingFromZip: type: string type_:SummaryCommodityCode: type: string type_:Tax: type: number format: double type_:TermsConditions: type: string type_:BillData: type: object properties: AdditionalData: $ref: '#/components/schemas/type_:AdditionalDataMap' attachments: $ref: '#/components/schemas/type_:Attachments' company: type: string description: Company name of the recipient of the invoice. discount: $ref: '#/components/schemas/type_:Discount' dutyAmount: $ref: '#/components/schemas/type_:DutyAmount' firstName: type: string description: First name of the recipient of the invoice. freightAmount: $ref: '#/components/schemas/type_:FreightAmount' frequency: $ref: '#/components/schemas/type_:Frequency' description: Frequency of scheduled invoice. invoiceAmount: $ref: '#/components/schemas/type_:InvoiceAmount' invoiceDate: $ref: '#/components/schemas/type_:Datenullable' description: 'Invoice date in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY.' invoiceDueDate: $ref: '#/components/schemas/type_:Datenullable' description: >- Invoice due date in one of the accepted formats: YYYY-MM-DD, MM/DD/YYYY. invoiceEndDate: $ref: '#/components/schemas/type_:Datenullable' description: >- Indicate the date to finish a scheduled invoice cycle (`invoiceType`` = 1) in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY. invoiceNumber: $ref: '#/components/schemas/type_:InvoiceNumber' description: Invoice number. Identifies the invoice under a paypoint. invoiceStatus: $ref: '#/components/schemas/type_:Invoicestatus' invoiceType: $ref: '#/components/schemas/type_:InvoiceType' items: type: array items: $ref: '#/components/schemas/type_:BillItem' description: Array of line items included in the invoice. lastName: type: string description: Last name of the recipient of the invoice. notes: type: string description: Notes included in the invoice. paymentTerms: $ref: '#/components/schemas/type_:BillDataPaymentTerms' purchaseOrder: $ref: '#/components/schemas/type_:PurchaseOrder' shippingAddress1: $ref: '#/components/schemas/type_:Shippingaddress' shippingAddress2: $ref: '#/components/schemas/type_:Shippingaddressadditional' shippingCity: $ref: '#/components/schemas/type_:Shippingcity' shippingCountry: $ref: '#/components/schemas/type_:Shippingcountry' shippingEmail: $ref: '#/components/schemas/type_:Email' description: Shipping recipient's contact email address. shippingFromZip: $ref: '#/components/schemas/type_:ShippingFromZip' shippingPhone: type: string description: Recipient phone number. shippingState: $ref: '#/components/schemas/type_:Shippingstate' shippingZip: $ref: '#/components/schemas/type_:Shippingzip' summaryCommodityCode: $ref: '#/components/schemas/type_:SummaryCommodityCode' tax: $ref: '#/components/schemas/type_:Tax' termsConditions: $ref: '#/components/schemas/type_:TermsConditions' type_:LastModified: type: string format: date-time type_:Netamountnullable: type: number format: double type_:OrgParentName: type: string type_:Accountexp: type: string type_:Accountid: type: string type_:Accounttype: type: string type_:Accountzip: type: string type_:BinData: type: object properties: binMatchedLength: type: string description: |- The number of characters from the beginning of the card number that were matched against a Bank Identification Number (BIN) or the Card Range table. binCardBrand: type: string description: |- The card brand. For example, Visa, Mastercard, American Express, Discover. binCardType: type: string description: 'The type of card: Credit or Debit.' binCardCategory: type: string description: >- The category of the card, which indicates the card product. For example: Standard, Gold, Platinum, etc. The binCardCategory for prepaid cards is marked `PREPAID`. binCardIssuer: type: string description: The name of the financial institution that issued the card. binCardIssuerCountry: type: string description: The issuing financial institution's country name. binCardIssuerCountryCodeA2: type: string description: >- The issuing financial institution's two-character ISO country code. See [this resource](https://www.iso.org/obp/ui/#search) for a list of codes. binCardIssuerCountryNumber: type: string description: >- The issuing financial institution's ISO standard numeric country code. See [this resource](https://www.iso.org/obp/ui/#search) for a list of codes. binCardIsRegulated: type: string description: Indicates whether the card is regulated. binCardUseCategory: type: string description: The use category classification for the card. binCardIssuerCountryCodeA3: type: string description: >- The issuing financial institution's three-character ISO country code. See [this resource](https://www.iso.org/obp/ui/#search) for a list of codes. type_:Holdername: type: string type_:Initiator: type: string type_:Maskedaccount: type: string type_:Orderdescription: type: string type_:PaymentCategories: type: object properties: amount: type: number format: double description: Price/cost per unit of item or category. description: type: string description: Description of item or category label: type: string description: Name of item or category. qty: type: integer default: 1 description: Quantity of item or category required: - amount - label type_:SplitFundingContent: type: object properties: accountId: type: string description: The accountId for the account the split should be sent to. amount: type: number format: double description: Amount from the transaction to sent to this recipient. description: type: string description: A description for the split. recipientEntryPoint: type: string description: The entrypoint the split should be sent to. type_:SplitFunding: type: array items: $ref: '#/components/schemas/type_:SplitFundingContent' type_:PaymentDetail: type: object properties: categories: type: array items: $ref: '#/components/schemas/type_:PaymentCategories' description: >- Array of payment categories/line items describing the amount to be paid. **Note**: These categories are for information only and aren't validated against the total amount provided. checkImage: type: object additionalProperties: description: Any type description: Object containing image of paper check. checkNumber: type: string description: >- A check number to be used in the ach transaction. **Required** for payment method = 'check'. currency: type: string description: >- The currency for the transaction, `USD` or `CAD`. If your paypoint is configured for CAD, you must send the `CAD` value in this field, otherwise it defaults to USD, which will cause the transaction to fail. serviceFee: type: number format: double description: >- Service fee to be deducted from the total amount. This amount must be a number, percentages aren't accepted. If you are using a percentage-based fee schedule, you must calculate the value manually. splitFunding: $ref: '#/components/schemas/type_:SplitFunding' description: >- Split funding instructions for the transaction. See [Split a Transaction](/developers/developer-guides/money-in-split-funding) for more. totalAmount: type: number format: double description: >- Total amount to be charged. If a service fee is sent, then this amount should include the service fee." required: - totalAmount type_:Sequence: type: string type_:Signaturedata: type: string type_:Storedmethodid: type: string type_:StoredMethodUsageType: type: string type_:QueryPaymentData: type: object properties: AccountExp: $ref: '#/components/schemas/type_:Accountexp' accountId: $ref: '#/components/schemas/type_:Accountid' AccountType: $ref: '#/components/schemas/type_:Accounttype' AccountZip: $ref: '#/components/schemas/type_:Accountzip' binData: $ref: '#/components/schemas/type_:BinData' HolderName: $ref: '#/components/schemas/type_:Holdername' Initiator: $ref: '#/components/schemas/type_:Initiator' MaskedAccount: $ref: '#/components/schemas/type_:Maskedaccount' orderDescription: $ref: '#/components/schemas/type_:Orderdescription' paymentDetails: $ref: '#/components/schemas/type_:PaymentDetail' Sequence: $ref: '#/components/schemas/type_:Sequence' SignatureData: $ref: '#/components/schemas/type_:Signaturedata' StoredId: $ref: '#/components/schemas/type_:Storedmethodid' description: Identifier of stored payment method used in transaction. StoredMethodUsageType: $ref: '#/components/schemas/type_:StoredMethodUsageType' type_:Dbaname: type: string type_:PaypointId: type: integer format: int64 type_:Legalname: type: string type_:Source: type: string type_:GeneralEvents: type: object properties: description: type: string description: Event description. eventTime: type: string format: date-time description: Event timestamp, in UTC. extraData: type: object additionalProperties: description: Any type description: Extra data. refData: type: string description: Reference data. source: $ref: '#/components/schemas/type_:Source' description: The event source. type_:SubscriptionQueryRecords: type: object properties: CreatedAt: $ref: '#/components/schemas/type_:CreatedAt' description: Timestamp of when the subscription ws created, in UTC. Customer: $ref: '#/components/schemas/type_:QueryTransactionPayorData' EndDate: $ref: '#/components/schemas/type_:DatetimeNullable' description: The subscription's end date. EntrypageId: $ref: '#/components/schemas/type_:EntrypageId' ExternalPaypointID: $ref: '#/components/schemas/type_:ExternalPaypointId' FeeAmount: type: number format: double description: Fee applied to the subscription. Frequency: type: string description: The subscription's frequency. IdSub: type: integer format: int64 description: The subscription's ID. InvoiceData: $ref: '#/components/schemas/type_:BillData' LastRun: $ref: '#/components/schemas/type_:DatetimeNullable' description: The last time the subscription was processed. LastUpdated: $ref: '#/components/schemas/type_:LastModified' description: The last date and time the subscription was updated. LeftCycles: type: integer description: The number of cycles the subscription has left. Method: type: string description: The subscription's payment method. NetAmount: $ref: '#/components/schemas/type_:Netamountnullable' description: The subscription amount, minus any fees. NextDate: $ref: '#/components/schemas/type_:DatetimeNullable' description: The next date the subscription will be processed. ParentOrgName: $ref: '#/components/schemas/type_:OrgParentName' PaymentData: $ref: '#/components/schemas/type_:QueryPaymentData' PaypointDbaname: $ref: '#/components/schemas/type_:Dbaname' description: The paypoint's DBA name. PaypointEntryname: $ref: '#/components/schemas/type_:Entrypointfield' description: The paypoint's entryname. PaypointId: $ref: '#/components/schemas/type_:PaypointId' PaypointLegalname: $ref: '#/components/schemas/type_:Legalname' description: The paypoint's legal name. PlanId: type: integer description: Payment plan ID. Source: $ref: '#/components/schemas/type_:Source' StartDate: $ref: '#/components/schemas/type_:DatetimeNullable' description: The subscription start date. SubEvents: type: array items: $ref: '#/components/schemas/type_:GeneralEvents' description: Events associated with the subscription. SubStatus: type: integer description: |- The subscription's status. - 0: Paused - 1: Active TotalAmount: type: number format: double description: The subscription amount, including any fees. TotalCycles: type: integer description: The total number of cycles the subscription is set to run. UntilCancelled: type: boolean description: >- When `true`, the subscription has no explicit end date and will run until canceled. type_:Descriptor: type: string type_:MethodQueryRecords: type: object properties: bin: type: string description: The bank identification number (BIN). Null when method is ACH. binData: $ref: '#/components/schemas/type_:BinData' descriptor: $ref: '#/components/schemas/type_:Descriptor' expDate: type: string description: >- Expiration date associated to the method (only for card) in format MMYY. holderName: $ref: '#/components/schemas/type_:Holdername' idPmethod: type: string description: Method internal ID lastUpdated: $ref: '#/components/schemas/type_:LastModified' description: Date of last update maskedAccount: $ref: '#/components/schemas/type_:Maskedaccount' method: type: string description: 'Type of payment vehicle: **ach** or **card**' type_:AchHolderType: type: string enum: - value: personal - value: business default: personal type_:AchSecCode: type: string type_:BatchNumber: type: string type_:TransactionTime: type: string format: date-time type_:QueryCFeeTransaction: type: object properties: cFeeTransid: type: string feeAmount: type: number format: double operation: type: string refundId: type: integer format: int64 responseData: type: object additionalProperties: description: Any type settlementStatus: type: integer transactionTime: $ref: '#/components/schemas/type_:TransactionTime' transStatus: type: integer type_:Device: type: string type_:ExternalProcessorInformation: type: string type_:FeeAmount: type: number format: double type_:Operation: type: string type_:OrderId: type: string type_:Orgid: type: integer format: int64 type_:PayorId: type: integer format: int64 type_:PendingFeeAmount: type: number format: double type_:RefundId: type: integer format: int64 type_:Authcode: type: string type_:AvsResponse: type: string type_:AvsResponseText: type: string type_:CvvResponse: type: string type_:CvvResponseText: type: string type_:EmvAuthResponseData: type: string type_:ResultCodev2: type: string type_:ResultCodeText: type: string type_:QueryResponseData: type: object properties: authcode: $ref: '#/components/schemas/type_:Authcode' avsresponse: $ref: '#/components/schemas/type_:AvsResponse' avsresponse_text: $ref: '#/components/schemas/type_:AvsResponseText' cvvresponse: $ref: '#/components/schemas/type_:CvvResponse' cvvresponse_text: $ref: '#/components/schemas/type_:CvvResponseText' emv_auth_response_data: $ref: '#/components/schemas/type_:EmvAuthResponseData' orderid: $ref: '#/components/schemas/type_:OrderId' response: type: string description: 'Response text for operation: ''Success'' or ''Declined''.' response_code: type: string description: >- Internal result code processing the transaction. Value 1 indicates successful operation, values 2 and 3 indicate errors. response_code_text: type: string description: >- Text describing the result. If resultCode = 1, will return 'Approved' or a general success message. If resultCode = 2 or 3, will contain the cause of the decline. responsetext: type: string description: >- Text describing the result. If resultCode = 1, will return 'Approved' or a general success message. If resultCode = 2 or 3, will contain the cause of the decline. resultCode: $ref: '#/components/schemas/type_:ResultCodev2' resultCodeText: $ref: '#/components/schemas/type_:ResultCodeText' transactionid: type: string description: The transaction identifier in Payabli. type: type: string description: Type of transaction or operation. type_:ReturnedId: type: integer format: int64 type_:QueryTransactionEventsEventData: oneOf: - type: object additionalProperties: description: Any type - type: string type_:QueryTransactionEvents: type: object properties: EventData: $ref: '#/components/schemas/type_:QueryTransactionEventsEventData' description: >- Any data associated to the event received from processor. Contents vary by event type. EventTime: type: string format: date-time description: Date and time of event. TransEvent: type: string description: >- Event descriptor. See [TransEvent Reference](/guides/pay-in-transevents-reference) for more details. type_:TransactionQueryRecords: type: object properties: AchHolderType: $ref: '#/components/schemas/type_:AchHolderType' AchSecCode: $ref: '#/components/schemas/type_:AchSecCode' BatchAmount: type: number format: double description: Batch amount. BatchNumber: $ref: '#/components/schemas/type_:BatchNumber' CfeeTransactions: type: array items: $ref: '#/components/schemas/type_:QueryCFeeTransaction' description: >- Service Fee or sub-charge transaction associated to the main transaction. ConnectorName: type: string description: Connector used for transaction. Customer: $ref: '#/components/schemas/type_:QueryTransactionPayorData' DeviceId: $ref: '#/components/schemas/type_:Device' EntrypageId: $ref: '#/components/schemas/type_:EntrypageId' ExternalProcessorInformation: $ref: '#/components/schemas/type_:ExternalProcessorInformation' FeeAmount: $ref: '#/components/schemas/type_:FeeAmount' GatewayTransId: type: string description: Internal identifier used for processing. InvoiceData: $ref: '#/components/schemas/type_:BillData' Method: type: string description: 'Payment method used: card, ach, or wallet.' NetAmount: $ref: '#/components/schemas/type_:Netamountnullable' description: Net amount paid. Operation: $ref: '#/components/schemas/type_:Operation' OrderId: $ref: '#/components/schemas/type_:OrderId' OrgId: $ref: '#/components/schemas/type_:Orgid' description: ID of immediate parent organization. ParentOrgName: $ref: '#/components/schemas/type_:OrgParentName' PaymentData: $ref: '#/components/schemas/type_:QueryPaymentData' PaymentTransId: type: string description: Unique Transaction ID. PayorId: $ref: '#/components/schemas/type_:PayorId' PaypointDbaname: $ref: '#/components/schemas/type_:Dbaname' description: Paypoint's DBA name. PaypointEntryname: $ref: '#/components/schemas/type_:Entrypointfield' description: Paypoint's entryname. PaypointId: type: integer format: int64 description: InternalId for paypoint. PaypointLegalname: $ref: '#/components/schemas/type_:Legalname' description: Paypoint's legal name. PendingFeeAmount: $ref: '#/components/schemas/type_:PendingFeeAmount' RefundId: $ref: '#/components/schemas/type_:RefundId' ResponseData: $ref: '#/components/schemas/type_:QueryResponseData' ReturnedId: $ref: '#/components/schemas/type_:ReturnedId' ScheduleReference: type: integer format: int64 description: Reference to the subscription that originated the transaction. SettlementStatus: type: integer description: >- Settlement status for transaction. See [the docs](/developers/references/money-in-statuses#payment-funding-status) for a full reference. Source: $ref: '#/components/schemas/type_:Source' splitFundingInstructions: $ref: '#/components/schemas/type_:SplitFunding' TotalAmount: type: number format: double description: Transaction total amount (including service fee or sub-charge) TransactionEvents: type: array items: $ref: '#/components/schemas/type_:QueryTransactionEvents' description: Events associated with this transaction. TransactionTime: $ref: '#/components/schemas/type_:DatetimeNullable' description: Transaction date and time, in UTC. TransAdditionalData: description: Any type TransStatus: type: integer description: >- Status of transaction. See [the docs](/developers/references/money-in-statuses#money-in-transaction-status) for a full reference. type_:CustomerSummaryRecord: type: object properties: numberofTransactions: type: integer description: Number total of transactions or payments recentTransactions: type: array items: $ref: '#/components/schemas/type_:TransactionQueryRecords' description: List of more recent 5 transactions belonging to the customer totalAmountTransactions: type: number format: double description: Total amount in transactions totalNetAmountTransactions: type: number format: double description: Total net amount in transactions type_:OrgParentId: type: integer format: int64 type_:PageIdentifier: type: string type_:OptinStatus: type: integer type_:CustomerQueryRecordsCustomerConsentECommunication: type: object properties: status: $ref: '#/components/schemas/type_:OptinStatus' updatedAt: $ref: '#/components/schemas/type_:LastModified' type_:CustomerQueryRecordsCustomerConsentSms: type: object properties: status: $ref: '#/components/schemas/type_:OptinStatus' updatedAt: $ref: '#/components/schemas/type_:LastModified' type_:CustomerQueryRecordsCustomerConsent: type: object properties: eCommunication: $ref: >- #/components/schemas/type_:CustomerQueryRecordsCustomerConsentECommunication description: Describes the customer's email communications consent status. sms: $ref: '#/components/schemas/type_:CustomerQueryRecordsCustomerConsentSms' description: Describes the customer's SMS communications consent status. type_:CustomerQueryRecords: type: object properties: customerId: $ref: '#/components/schemas/type_:CustomerId' customerNumber: $ref: '#/components/schemas/type_:CustomerNumberNullable' customerUsername: type: string description: Username for customer. customerStatus: $ref: '#/components/schemas/type_:CustomerStatus' Company: type: string description: Company name. Firstname: type: string description: Customer first name. Lastname: type: string description: Customer last name. Phone: type: string description: Customer phone number. Email: $ref: '#/components/schemas/type_:Email' description: Customer email address. Address: type: string description: Customer address. Address1: type: string description: Additional line for customer address. City: type: string description: Customer city. State: type: string description: Customer state. Zip: type: string description: Customer postal code. Country: type: string description: Customer country. ShippingAddress: $ref: '#/components/schemas/type_:Shippingaddress' ShippingAddress1: $ref: '#/components/schemas/type_:Shippingaddressadditional' ShippingCity: $ref: '#/components/schemas/type_:Shippingcity' ShippingState: $ref: '#/components/schemas/type_:Shippingstate' ShippingZip: $ref: '#/components/schemas/type_:Shippingzip' ShippingCountry: $ref: '#/components/schemas/type_:Shippingcountry' Balance: type: number format: double description: Customer balance. TimeZone: $ref: '#/components/schemas/type_:Timezone' MFA: $ref: '#/components/schemas/type_:Mfa' MFAMode: $ref: '#/components/schemas/type_:MfaMode' snProvider: type: string description: |- Social network linked to customer. Possible values: - `facebook` - `google` - `twitter` - `microsoft` snIdentifier: type: string description: Identifier or token for customer in linked social network. snData: type: string description: >- Additional data provided by the social network related to the customer. LastUpdated: type: string format: date-time description: Date and time of last update. Created: type: string format: date-time description: Date and time created. AdditionalFields: type: object additionalProperties: type: string description: List of additional custom fields in format key:value. IdentifierFields: $ref: '#/components/schemas/type_:Identifierfields' Subscriptions: type: array items: $ref: '#/components/schemas/type_:SubscriptionQueryRecords' description: List of subscriptions associated to the customer. StoredMethods: type: array items: $ref: '#/components/schemas/type_:MethodQueryRecords' description: List of payment methods associated to the customer. customerSummary: $ref: '#/components/schemas/type_:CustomerSummaryRecord' PaypointLegalname: $ref: '#/components/schemas/type_:Legalname' description: Paypoint legal name. PaypointDbaname: $ref: '#/components/schemas/type_:Dbaname' description: Paypoint DBA name. ParentOrgName: $ref: '#/components/schemas/type_:OrgParentName' ParentOrgId: $ref: '#/components/schemas/type_:OrgParentId' PaypointEntryname: $ref: '#/components/schemas/type_:Entrypointfield' pageidentifier: $ref: '#/components/schemas/type_:PageIdentifier' externalPaypointID: $ref: '#/components/schemas/type_:ExternalPaypointId' customerConsent: $ref: '#/components/schemas/type_:CustomerQueryRecordsCustomerConsent' type_:ResponseText: type: string type_:PayabliApiResponseCustomerQuery: type: object properties: isSuccess: $ref: '#/components/schemas/type_:IsSuccess' responseData: $ref: '#/components/schemas/type_:CustomerQueryRecords' responseText: $ref: '#/components/schemas/type_:ResponseText' required: - responseText ``` ## SDK Code Examples ```python CreateCustomer from payabli import payabli client = payabli( api_key="YOUR_API_KEY", ) client.customer.add_customer( entry="8cfec329267", customer_number="12356ACB", firstname="Irene", lastname="Canizales", address_1="123 Bishop's Trail", city="Mountain City", state="TN", zip="37612", country="US", email="irene@canizalesconcrete.com", identifier_fields=["email"], time_zone=-5, ) ``` ```typescript CreateCustomer import { PayabliClient } from "@payabli/sdk-node"; const client = new PayabliClient({ apiKey: "YOUR_API_KEY" }); await client.customer.addCustomer("8cfec329267", { body: { customerNumber: "12356ACB", firstname: "Irene", lastname: "Canizales", address1: "123 Bishop's Trail", city: "Mountain City", state: "TN", zip: "37612", country: "US", email: "irene@canizalesconcrete.com", identifierFields: ["email"], timeZone: -5 } }); ``` ```go CreateCustomer import ( context "context" option "github.com/payabli/sdk-go/option" sdkgo "github.com/payabli/sdk-go" sdkgoclient "github.com/payabli/sdk-go/client" ) client := sdkgoclient.NewClient( option.WithApiKey( "", ), ) response, err := client.Customer.AddCustomer( context.TODO(), "8cfec329267", &sdkgo.AddCustomerRequest{ Body: &sdkgo.CustomerData{ CustomerNumber: sdkgo.String( "12356ACB", ), Firstname: sdkgo.String( "Irene", ), Lastname: sdkgo.String( "Canizales", ), Address1: sdkgo.String( "123 Bishop's Trail", ), City: sdkgo.String( "Mountain City", ), State: sdkgo.String( "TN", ), Zip: sdkgo.String( "37612", ), Country: sdkgo.String( "US", ), Email: sdkgo.String( "irene@canizalesconcrete.com", ), IdentifierFields: []*string{ sdkgo.String( "email", ), }, TimeZone: sdkgo.Int( -5, ), }, }, ) ``` ```csharp CreateCustomer using PayabliApi; var client = new PayabliApiClient("API_KEY"); await client.Customer.AddCustomerAsync( "8cfec329267", new AddCustomerRequest { Body = new CustomerData { CustomerNumber = "12356ACB", Firstname = "Irene", Lastname = "Canizales", Address1 = "123 Bishop's Trail", City = "Mountain City", State = "TN", Zip = "37612", Country = "US", Email = "irene@canizalesconcrete.com", IdentifierFields = new List() { "email" }, TimeZone = -5, }, } ); ``` ```ruby CreateCustomer require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/Customer/single/8cfec329267") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["requestToken"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"customerNumber\": \"12356ACB\",\n \"firstname\": \"Irene\",\n \"lastname\": \"Canizales\",\n \"email\": \"irene@canizalesconcrete.com\",\n \"address1\": \"123 Bishop's Trail\",\n \"city\": \"Mountain City\",\n \"state\": \"TN\",\n \"zip\": \"37612\",\n \"country\": \"US\",\n \"timeZone\": -5,\n \"identifierFields\": [\n \"email\"\n ]\n}" response = http.request(request) puts response.read_body ``` ```java CreateCustomer HttpResponse response = Unirest.post("https://api-sandbox.payabli.com/api/Customer/single/8cfec329267") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"customerNumber\": \"12356ACB\",\n \"firstname\": \"Irene\",\n \"lastname\": \"Canizales\",\n \"email\": \"irene@canizalesconcrete.com\",\n \"address1\": \"123 Bishop's Trail\",\n \"city\": \"Mountain City\",\n \"state\": \"TN\",\n \"zip\": \"37612\",\n \"country\": \"US\",\n \"timeZone\": -5,\n \"identifierFields\": [\n \"email\"\n ]\n}") .asString(); ``` ```php CreateCustomer request('POST', 'https://api-sandbox.payabli.com/api/Customer/single/8cfec329267', [ 'body' => '{ "customerNumber": "12356ACB", "firstname": "Irene", "lastname": "Canizales", "email": "irene@canizalesconcrete.com", "address1": "123 Bishop\'s Trail", "city": "Mountain City", "state": "TN", "zip": "37612", "country": "US", "timeZone": -5, "identifierFields": [ "email" ] }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift CreateCustomer import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = [ "customerNumber": "12356ACB", "firstname": "Irene", "lastname": "Canizales", "email": "irene@canizalesconcrete.com", "address1": "123 Bishop's Trail", "city": "Mountain City", "state": "TN", "zip": "37612", "country": "US", "timeZone": -5, "identifierFields": ["email"] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/Customer/single/8cfec329267")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```