openapi: 3.0.3
info:
  title: Everflow Network API - Signup
  description: >
    Endpoints for managing affiliate and advertiser signup configuration and submissions.
    For configuration details, see the [Partner Signup guide](https://helpdesk.everflow.io/customer/setting-up-your-partners-via-sign-up-form).
  version: 1.0.0
servers:
  - url: https://api.eflow.team/v1
tags:
  - name: Signup
paths:
  /networks/affiliate/signup:
    get:
      summary: Get Affiliate Signup Config
      tags:
        - Signup
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                type: object
                description: Affiliate signup page configuration.
      security:
        - API Key: []
    post:
      summary: Submit Affiliate Signup
      tags:
        - Signup
      requestBody:
        required: true
        content:
          application/json:
            example:
              firstname: "John"
              lastname: "Doe"
              email: "john.doe@example.com"
              phone: "555-555-1212"
              legal_type: "individual"
              company: "Example Company"
              website: "https://example.com"
              advertise_method_description: "Facebook, Google Ads"
              heard_about_us: "Industry conference"
              contact_address:
                address_1: "123 Main St"
                address_2: "Suite 100"
                city: "Miami"
                zip_postal_code: "33101"
                country_id: 232
                region_code: "FL"
              referral_code: "facebook"
              tax_id: "12-3456789"
              language_id: 1
              timezone_id: 67
              currency_id: "USD"
              affiliate_manager_encoded_value: "RNK3G2"
              referrer_encoded_value: "8XPQ4M"
              billing:
                billing_frequency: "monthly"
                payment_type: "paypal"
                billing:
                  paypal_reception_method: "paypal_account"
                  reception_identifier: "john.doe@example.com"
              promotional_information:
                - promotional_method: "social"
                  property_type: "website"
                  property_type_url: "https://example.com/blog"
                  promoting_country_ids:
                    - 232
              custom_field_values:
                - network_signup_custom_field_id: 2
                  field_value: "Performance marketing"
            schema:
              type: object
              required:
                - firstname
                - lastname
                - email
                - company
                - website
                - advertise_method_description
              properties:
                firstname:
                  type: string
                  description: The first name of the affiliate user signing up.
                lastname:
                  type: string
                  description: The last name of the affiliate user signing up.
                email:
                  type: string
                  description: The email address of the user signing up. Must be unique.
                phone:
                  type: string
                  description: Phone number.
                legal_type:
                  type: string
                  description: The affiliate's entity legal type.
                  enum:
                    - individual
                    - partnership
                    - corporation
                    - sole_proprietorship
                    - other
                    - foreign
                    - llc
                    - llp
                    - non_profit
                    - non_us_entity
                company:
                  type: string
                  description: The affiliate's company name. Will become the affiliate name once/if the affiliate is approved.
                website:
                  type: string
                  description: The affiliate's website.
                advertise_method_description:
                  type: string
                  description: Method used by the affiliate to advertise.
                heard_about_us:
                  type: string
                  description: How the affiliate heard about the network.
                contact_address:
                  type: object
                  description: Affiliate's mailing/contact address.
                  properties:
                    address_1:
                      type: string
                      description: Street address line 1.
                    address_2:
                      type: string
                      description: Street address line 2.
                    city:
                      type: string
                      description: City.
                    region_code:
                      type: string
                      description: State or region code (e.g. "FL", "CA"). Valid values can be found using the metadata API.
                    country_id:
                      type: integer
                      description: Numeric country identifier (e.g. 232 for US). Valid values can be found using the metadata API.
                    country_code:
                      type: string
                      description: >
                        ISO country code (e.g. "US", "CA"). An alternative to country_id — country_id takes
                        precedence when both are supplied. Valid values can be found using the metadata API.
                    zip_postal_code:
                      type: string
                      description: ZIP or postal code.
                referral_code:
                  type: string
                  description: Referral code used during signup.
                tax_id:
                  type: string
                  description: Tax identification number (EIN, SSN, etc.).
                language_id:
                  type: integer
                  description: >
                    The affiliate's portal language. Defaults to the network's language when omitted. Valid
                    values can be found using the metadata API.
                timezone_id:
                  type: integer
                  description: >
                    The affiliate's timezone. Defaults to the network's timezone when omitted. Valid values
                    can be found using the metadata API.
                currency_id:
                  type: string
                  description: >
                    The affiliate's currency (e.g. "USD"). Defaults to the network's currency when omitted.
                    Valid values can be found using the metadata API.
                advertiser_identifier:
                  type: string
                  description: >
                    Binds the signup to an advertiser-specific signup form. When set, custom field values are
                    matched against the advertiser-specific signup configuration instead of the network one.
                affiliate_manager_encoded_value:
                  type: string
                  description: Affiliate manager's encoded ID.
                referrer_encoded_value:
                  type: string
                  description: Encoded value of the affiliate ID that referred the new sign up.
                partner_encoded_value:
                  type: string
                  description: Encoded value of the partner that the sign up is associated with.
                billing:
                  type: object
                  description: The affiliate's billing information.
                  required:
                    - payment_type
                    - billing
                  properties:
                    billing_frequency:
                      type: string
                      description: The affiliate's billing frequency.
                      enum:
                        - weekly
                        - bimonthly
                        - monthly
                        - two_months
                        - quarterly
                        - manual
                        - other
                    payment_type:
                      type: string
                      description: >
                        The affiliate's payment type.
                      enum:
                        - none
                        - pay
                        - paypal
                        - check
                        - wire
                        - direct_deposit
                        - tipalti
                        - paxum
                        - veem
                        - payoneer
                        - bitcoin
                        - webmoney
                        - capitalist
                        - transferwise
                        - gift_card
                        - masspay
                        - skrill
                    tax_id:
                      type: string
                      description: >
                        Tax identification number stored on the billing record. Separate from the top-level
                        tax_id, which is stored on the signup record.
                    billing:
                      type: object
                      description: >
                        The affiliate's payment method details. Required whenever payment_type is set,
                        including when it is "none" — send an empty object when there are no payment details.
                      properties:
                        paxum_id:
                          type: string
                          description: The affiliate's paxum id. Required when payment_type is "paxum".
                        paypal_reception_method:
                          type: string
                          description: >
                            The reception method used with PayPal. Can be "email",
                            "phone" or "paypal_account". Required when payment_type is "paypal".
                        reception_identifier:
                          type: string
                          description: The affiliate's PayPal reception identifier. Required when payment_type is "paypal".
                        email:
                          type: string
                          description: The affiliate's email. Required when payment_type is "payoneer" or "veem".
                        is_existing_payee:
                          type: boolean
                          description: Whether to assign an existing payee id. Required when payment_type is "tipalti".
                        idap:
                          type: string
                          description: The payee's IDAP (Payee ID). Required when payment_type is "tipalti" and is_existing_payee is true.
                        first_name:
                          type: string
                          description: The affiliate's first name. Required when payment_type is "veem".
                        last_name:
                          type: string
                          description: The affiliate's last name. Required when payment_type is "veem".
                        phone:
                          type: string
                          description: The affiliate's phone number (international format). Required when payment_type is "veem".
                        country_iso:
                          type: string
                          description: The affiliate's country ISO code. Required when payment_type is "veem".
                        bank_name:
                          type: string
                          description: The affiliate's bank name. Required when payment_type is "wire" or "direct_deposit".
                        bank_address:
                          type: string
                          description: The affiliate's bank address. Required when payment_type is "wire" or "direct_deposit".
                        account_name:
                          type: string
                          description: The affiliate's bank account name. Required when payment_type is "wire" or "direct_deposit".
                        account_number:
                          type: string
                          description: The affiliate's bank account number. Required when payment_type is "wire" or "direct_deposit".
                        routing_number:
                          type: string
                          description: The affiliate's bank routing number. Required when payment_type is "wire" or "direct_deposit".
                        swift_code:
                          type: string
                          description: The affiliate's swift code. Required when payment_type is "wire" or "direct_deposit".
                promotional_information:
                  type: array
                  description: The affiliate's promotional methods and properties.
                  items:
                    type: object
                    properties:
                      promotional_method:
                        type: string
                        description: The method the affiliate uses to promote.
                        enum:
                          - affiliate
                          - content
                          - direct_display
                          - email
                          - incent
                          - influencers
                          - media_buying
                          - native_ads
                          - owned_and_operated
                          - push
                          - search_engine_marketing
                          - sms
                          - social
                          - survey
                          - video
                      property_type:
                        type: string
                        description: The type of property the affiliate promotes on.
                        enum:
                          - website
                          - social_networks
                          - mobile
                      property_type_url:
                        type: string
                        description: The URL of the property used to promote.
                      promoting_country_ids:
                        type: array
                        description: Numeric country identifiers the affiliate promotes in. Valid values can be found using the metadata API.
                        items:
                          type: integer
                custom_field_values:
                  type: array
                  description: Responses to custom signup fields defined in Control Center.
                  items:
                    type: object
                    required:
                      - network_signup_custom_field_id
                      - field_value
                    properties:
                      network_signup_custom_field_id:
                        type: integer
                        description: The ID of the custom signup field.
                      field_value:
                        type: string
                        description: The value for this custom field.
      responses:
        "200":
          description: Affiliate signup submitted successfully.
      security:
        - API Key: []
  /networks/affiliates/{affiliateId}/signup:
    get:
      summary: Get Affiliate Signup Settings
      tags:
        - Signup
      parameters:
        - in: path
          name: affiliateId
          required: true
          schema:
            type: integer
          description: The affiliate ID.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                type: object
                description: Affiliate signup settings.
      security:
        - API Key: []
    put:
      summary: Update Affiliate Signup Settings
      tags:
        - Signup
      parameters:
        - in: path
          name: affiliateId
          required: true
          schema:
            type: integer
          description: The affiliate ID.
      requestBody:
        required: true
        content:
          application/json:
            example:
              website_url: "https://example.com"
              advertise_method: "Facebook, Google Ads"
              phone: "555-555-1212"
              first_name: "John"
              last_name: "Doe"
              email: "john.doe@example.com"
            schema:
              type: object
              description: The affiliate signup information object.
              properties:
                website_url:
                  type: string
                  description: The affiliate's website URL.
                referral_code:
                  type: string
                  description: Referral code used during signup.
                advertise_method:
                  type: string
                  description: Method used by the affiliate to advertise.
                heard_about_us:
                  type: string
                  description: How the affiliate heard about the network.
                user_ip:
                  type: string
                  description: IP address of the user during signup.
                user_agent:
                  type: string
                  description: User agent string from the signup request.
                phone:
                  type: string
                  description: Phone number.
                tax_id:
                  type: string
                  description: Tax identification number (EIN, SSN, etc.).
                legal_type:
                  type: string
                  description: The affiliate's entity legal type.
                  enum:
                    - individual
                    - partnership
                    - corporation
                    - sole_proprietorship
                    - other
                    - foreign
                    - llc
                    - llp
                    - non_profit
                    - non_us_entity
                first_name:
                  type: string
                  description: The first name of the affiliate contact.
                last_name:
                  type: string
                  description: The last name of the affiliate contact.
                email:
                  type: string
                  description: The email address of the affiliate contact.
                custom_field_values:
                  type: array
                  description: Responses to custom signup fields defined in Control Center.
                  items:
                    type: object
                    required:
                      - network_signup_custom_field_id
                      - field_value
                    properties:
                      network_signup_custom_field_id:
                        type: integer
                        description: The ID of the custom signup field.
                      field_value:
                        type: string
                        description: The value for this custom field.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                type: object
                description: Updated affiliate signup configuration.
        "404":
          description: Affiliate not found.
      security:
        - API Key: []
  /networks/advertisers/{advertiserId}/signup:
    get:
      summary: Get Advertiser Signup Settings
      tags:
        - Signup
      parameters:
        - in: path
          name: advertiserId
          required: true
          schema:
            type: integer
          description: The advertiser ID.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                type: object
                description: Advertiser signup settings.
      security:
        - API Key: []
  /networks/advertiser/signup:
    post:
      summary: Submit Advertiser Signup
      tags:
        - Signup
      requestBody:
        required: true
        content:
          application/json:
            example:
              firstname: "John"
              lastname: "Smith"
              company: "Brand Corp"
              email: "john@brand.com"
              website: "https://brand.com"
              offer_landing_page: "https://brand.com/offer"
              contact_address:
                address_1: "456 Market St"
                city: "San Francisco"
                zip_postal_code: "94105"
                country_id: 232
                region_code: "CA"
            schema:
              type: object
              required:
                - firstname
                - lastname
                - email
                - company
                - website
                - offer_landing_page
                - contact_address
              properties:
                firstname:
                  type: string
                  description: The first name of the advertiser user signing up.
                lastname:
                  type: string
                  description: The last name of the advertiser user signing up.
                company:
                  type: string
                  description: The advertiser's company name. Will become the advertiser name once/if the advertiser is approved.
                email:
                  type: string
                  description: The email address of the user signing up. Must be unique.
                phone:
                  type: string
                  description: Phone number.
                website:
                  type: string
                  description: The advertiser's website.
                offer_landing_page:
                  type: string
                  description: Example of an offer landing page / product page.
                password:
                  type: string
                  description: Account password. Must be at least 12 characters.
                tax_id:
                  type: string
                  description: Advertiser's tax ID (used for billing).
                contact_address:
                  type: object
                  description: Advertiser's mailing/contact address. Required for signup.
                  properties:
                    address_1:
                      type: string
                      description: Street address line 1.
                    address_2:
                      type: string
                      description: Street address line 2.
                    city:
                      type: string
                      description: City.
                    region_code:
                      type: string
                      description: State or region code (e.g. "CA", "NY"). Valid values can be found using the metadata API.
                    country_id:
                      type: integer
                      description: Numeric country identifier (e.g. 232 for US). Valid values can be found using the metadata API.
                    zip_postal_code:
                      type: string
                      description: ZIP or postal code.
                referral_code:
                  type: string
                  description: Referral code used during signup.
                account_manager_encoded_value:
                  type: string
                  description: Encoded value of the advertiser's account manager ID.
                custom_field_values:
                  type: array
                  description: Responses to custom signup fields defined in Control Center.
                  items:
                    type: object
                    required:
                      - network_signup_custom_field_id
                      - field_value
                    properties:
                      network_signup_custom_field_id:
                        type: integer
                        description: The ID of the custom signup field.
                      field_value:
                        type: string
                        description: The value for this custom field.
      responses:
        "200":
          description: Advertiser signup submitted successfully.
      security:
        - API Key: []
components:
  securitySchemes:
    API Key:
      description: The Everflow API key generated from the Control Center > Security.
      in: header
      name: X-Eflow-Api-Key
      type: apiKey
