Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If no SDKs are available in the language you currently use, then it may be necessary to revert to a SDK-free integration using our REST APIs directly. This guide explains how to proceed in such case.

 

...

Table of Contents
maxLevel2
stylenone

...

 

1 - Metadata Endpoint 
Status
subtletrue
colourRed
titleRequired

...

Code Block
languageruby
{
  # ===> App Configuration
  #
  # => environment (informational)
  # The environment of your application. Common values are  # - "production", "production-sandbox" and "test".
  "environment": "test",

  # => hostfor your integration on a platform in a Production environment or UAT environment
  # This is your application host.
  "app": {
    "host": "http://my-app.com"
  },

  # ===> SSO Configuration
  #
  "sso": {
    # => idm
    # By default we consider that the domain managing user identification is the same as your application host (see above config.app.host parameter). 
    # If you have a dedicated domain managing user identification and therefore responsible for the single sign-on handshake (e.g: https://idp.my-app.com) then you can specify it below
    "idm": "https://idp.myapp.com",
 - "production-sandbox", for the sandbox you use for your tests during the integration on maestrano.com
  # - "test", for the SSO test on the Sandbox
  "environment": "test",

  # => host (required)
  # This is your application host. For UAT and Production environments, it must be a publicly resolvable URL, you cannot use "http://localhost:3000" for instance.
  "app": {
    "host": "http://my-app.com"
  },
 
  # 
  "api": {
    # => init_path id (required)
    # ThisThe isid theof path in your applicationapp. 
that allows users to initiate# the Single Sign-On handshake. 
    # Upon reaching this endpoint users your application will automatically create a SSO request and redirect the user to Maestrano. Maestrano will then authenticate and authorize the userFor maestrano.com integration, it corresponds to the App ID of your Maestrano App Provider API Dashboard.
    # For other platform, we will send it to you with your API key.
     "init_pathid": "/maestrano/auth/saml/init.php"
app-19op",
 
    # => consume_pathhost (for SAML implementations onlyrequired)
    # This is your application pathIt corresponds to the SAMLplatform endpointhost.
that allows users to finalize# SSOIt authentication.changes with the tenant and the #environment. DuringWe thewill 'consume'provide actionyou yourthe applicationcorrect setshost usersfor (andthe associatedplatform group)you upare and/orbeing logconnected them into.
    "consume_pathhost": "http:/maestrano/auth/saml/consume.php"
  },

  # ===> Webhooks
  # This section describe how to configure the Account and Connec!™ webhooks
/api-sandbox.maestrano.io"
  },
 
  # ===> SSO Configuration
  #
  "sso": {
    # => idm
    # By default we consider that the domain managing user identification is the same as your application host (see above config.app.host parameter). 
    # If you have a dedicated domain managing user identification and therefore responsible for the single sign-on handshake (e.g: https://idp.my-app.com) then you can specify it below
    "idm": "https://idp.myapp.com",

    # => init_path (required)
    # This is the path in your application that allows users to initiate the Single Sign-On handshake. 
    # Upon reaching this endpoint users your application will automatically create a SSO request and redirect the user to Maestrano. Maestrano will then authenticate and authorize the user.
    "init_path": "/maestrano/auth/saml/init.php",
    # This value can be changed on a per-tenant basis:
    # "init_path": "/maestrano/auth/saml/init.php?tenant=mytenant"

    # => consume_path (required)
    # This is your application path to the SAML endpoint that allows users to finalize SSO authentication. 
    # During the 'consume' action your application sets users (and associated group) up and/or log them in.
    "consume_path": "/maestrano/auth/saml/consume.php",
    # This value can be changed on a per-tenant basis:
    # "consume_path": "/maestrano/auth/saml/consume.php?tenant=mytenant"
 
	# => idp (required)
    # It corresponds to the platform host.
    # It changes with the tenant and the environment. We will provide you the correct host for the platform you are being connected to.
    "idp": "https://maestrano.com",
 
    # => x509_fingerprint and x509_certificate
    # It changes with the tenant and the environment. We will provide you the correct host for the platform you are being connected to.
    "x509_fingerprint": "8a:1e:2e:76:c4:67:80:68:6c:81:18:f7:d3:29:5d:77:f8:79:54:2f"
    "x509_certificate": "-----BEGIN CERTIFICATE-----MIIDezCCAuSgAwIBAgIJAMzy+weDPp7qMA0GCSqGSIb3DQEBBQUAMIGGMQswCQYDVQQGEwJBVTEMMAoGA1UECBMDTlNXMQ8wDQYDVQQHEwZTeWRuZXkxGjAYBgNVBAoTEU1hZXN0cmFubyBQdHkgTHRkMRYwFAYDVQQDEw1tYWVzdHJhbm8uY29tMSQwIgYJKoZIhvcNAQkBFhVzdXBwb3J0QG1hZXN0cmFuby5jb20wHhcNMTQwMTA0MDUyMzE0WhcNMzMxMjMwMDUyMzE0WjCBhjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRowGAYDVQQKExFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQGA1UEAxMNbWFlc3RyYW5vLmNvbTEkMCIGCSqGSIb3DQEJARYVc3VwcG9ydEBtYWVzdHJhbm8uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+2uyQeAOc/irohCyT33RkkWfTGeJ8E/mu9F5ORWoCZ/h2J+QDuzuc69Rf1LoO4wZVQ8LBeWOqMBYzotYFUIPlPfIBXDNL/stHkpg28WLDpoJM+46WpTAgp89YKgwdAoYODHiUOcO/uXOO2i9Ekoa+kxbvBzDJf7uuR/io6GERXwIDAQABo4HuMIHrMB0GA1UdDgQWBBTGRDBTie5+fHkB0+SZ5g3WY/D2RTCBuwYDVR0jBIGzMIGwgBTGRDBTie5+fHkB0+SZ5g3WY/D2RaGBjKSBiTCBhjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MRowGAYDVQQKExFNYWVzdHJhbm8gUHR5IEx0ZDEWMBQGA1UEAxMNbWFlc3RyYW5vLmNvbTEkMCIGCSqGSIb3DQEJARYVc3VwcG9ydEBtYWVzdHJhbm8uY29tggkAzPL7B4M+nuowDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAwRxg3rZrML//xbsS3FFXguzXiiNQAvA4KrMWhGh3jVrtzAlN1/okFNy6zuN8gzdKDYw2n0c/u3cSpUutIVZOkwQuPCMC1hoP7Ilat6icVewNcHayLBxKgRxpBhr5Sc4av3HOW5Bi/eyC7IjeBTbTnpziApEC7uUsBou2rlKmTGw==-----END CERTIFICATE-----"
  },

  # ===> Data Sharing
  # This section describes how to configure the Account and Connec!™ webhooks
  # => connec.host (required)
  # It corresponds to the endpoint used to fetch data from.
  # It changes with the tenant and the environment. We will provide you the correct host for the platform you are being connected to.
  "connec": {
    "host": "https://api-connec.maestrano.com"
  }
  "webhook": {
    #
    # Maestrano will issue a DELETE request to the following paths to notify you
    # of any service cancellation (group deletion) or any user being removed from a group. a group.
    # => groups_path (required)
    # => group_users_path (required)
    "account": {
      "groups_path": "/maestrano/account/groups/:id",
      "group_users_path": "/maestrano/account/groups/:group_id/users/:id"
    },

    # ==> Connec Subscriptions/Webhook
    # The following section is used to configure the Connec!™ webhooks and which entities
    # you should receive via webhook.
    #
    #
    "connec": {

      # ==> Notification Pathnotifications_path (required)
      # This is the path of your application where notifications (created/updated entities) will
      # be POSTed to.
      # You should have a controller matching this path handling the update of your internal entities
      # based on the Connec!™ entities you receive
      #
      "notifications_path": "/maestrano/connec/notifications",

      # == Subscriptions> subscriptions (required)
      # This is the list of entities (organizations, people, invoices etc.) for which you want to be
      # notified upon creation/update in Connec!™
      # 
      "subscriptions": {
        "accounts": true,
        "company": true,
        "events": false,
        "event_orders": false,
        "invoices": true,
        "items": true,
        "journals": false,
        "organizations": true,
        "payments": false,
        "pay_items": false,
        "pay_schedules": false,
        "pay_stubs": false,
        "pay_runs": false,
        "people": true,
        "projects": false,
        "tax_codes": true,
        "tax_rates": false,
        "time_activities": false,
        "time_sheets": false,
        "venues": false,
        "work_locations": false
      }
    }
  }
}

 

...



2 - Single Sign-On 
Status
subtletrue
colourRed
titleRequired

...

Our OpenID guide will give you all the details on the best way to integrate our OpenID provider into your application, just check it out here.

 

 

...

 

3 - Account Management API & Webhooks

...

  • Membership Management: get details about your Maestrano customers (memberships) and get notified of service cancellation actions via webhooks.
    • Group/Organization
    • User
    • Groups Webhook  
    • Group Users Webhook - Mandatory
  • Billing Management: create/retrieve/cancel bills or recurring bills for your Maestrano customers.
    • Bill (Adhoc)
    • RecurringBill

...

3.1 - Membership Management

Dev Sandbox endpoint: http://api-sandbox.maestrano.io/api/v1/account/

...

Code Block
languagebash
curl -u <my-app-id>:<my-app-secret> \
  -X "DELETE" \ 
  -H "Accept: application/json" \
  https://my-cloud-application.com/webhooks/maestrano/groups/cld-4/users/usr-2

 

...

3.2 - Billing Management 
Status
subtletrue
colourRed
titleRequired

Maestrano centralizes all billing functionalities. The goal is to provide to customers a single invoice at the end of the month summarising the expenses related to all the applications and services they have used during the month.

...

FieldModeTypeRequiredDefaultDescription
idreadonlystring--The id of the bill
group_idread/writestringYes-The id of the group you are charging
price_centsread/writeIntegerYes-The amount in cents to charge to the customer
descriptionread/writeStringYes-A description of the product billed as it should appear on customer invoice
created_atreadonlyTime--When the bill was created. Uses ISO 8601 format (e.g.: 2015-06-03T05:00:33Z)
updated_atreadonlyTime--When the bill was last updated. Uses ISO 8601 format (e.g.: 2015-06-03T05:00:33Z)
statusreadonlyString--Status of the bill. Either 'submitted', 'invoiced' or 'cancelled'.
currencyread/writeString-AUDThe currency of the amount charged in ISO 4217 format (3 letter code)
unitsread/writeDecimal(10,2)-1.0How many units are billed for the amount charged
period_started_atread/writeTime--If the bill relates to a specific period then specifies when the period started. Both period_started_at and period_ended_at need to be filled in order to appear on customer invoice. Uses ISO 8601 format (e.g.: 2015-06-03T05:00:33Z)
period_ended_atread/writeTime--If the bill relates to a specific period then specifies when the period ended. Both period_started_at and period_ended_at need to be filled in order to appear on customer invoice. Uses ISO 8601 format (e.g.: 2015-06-03T05:00:33Z)
third_partyread/writeBoolean-falseFlag for third-party bills (e.g.: charge for SMS credits). Third party bills are not subject to commissions.

RecurringBill - Recurring subscription fees

...

FieldModeTypeRequiredDefaultDescription
idreadonlystring--The id of the recurring bill
group_idread/writestringYes-The id of the group you are charging
price_centsread/writeIntegerYes-The amount in cents to charge to the customer
descriptionread/writeStringYes-A description of the product billed as it should appear on customer invoice
periodread/writeString-MonthThe unit of measure for the billing cycle. Must be one of the following: 'Day', 'Week', 'SemiMonth', 'Month', 'Year'
frequencyread/writeInteger-1The number of billing periods that make up one billing cycle. The combination of billing frequency and billing period must be less than or equal to one year. If the billing period is SemiMonth, the billing frequency must be 1.
cyclesread/writeInteger-nilThe number of cycles this bill should be active for. In other words it's the number of times this recurring bill should charge the customer.
start_dateread/writeTime-NowThe date when this recurring bill should start billing the customer. Uses ISO 8601 format (e.g.: 2015-06-03T05:00:33Z)
created_atreadonlyTime--When the recurring bill was created. Uses ISO 8601 format (e.g.: 2015-06-03T05:00:33Z)
updated_atreadonlyTime--When the recurring bill was last updated. Uses ISO 8601 format (e.g.: 2015-06-03T05:00:33Z)
currencyread/writeString-AUDThe currency of the amount charged in ISO 4217 format (3 letter code)
statusreadonlyString--Status of the recurring bill. Either 'submitted', 'active', 'expired' or 'cancelled'.
initial_centsread/writeInteger-0Initial non-recurring payment amount - in cents - due immediately upon creating the recurring bill



...

 

4. Connec!™ Data Sharing 
Status
subtletrue
colourRed
titleRequired

...

More high level resources can also be found on this wiki, under the Connec!™ API V2 section: Connec!™ API V2 documentation

 

groups_path