# 17 octobre 2026

> Resident companies now subscribe to plans and pay with a CNPJ, with access for the whole team and a credit wallet that pays for employees' bookings. Adding someone who already belongs to another Memberfy community through member management now works right away, and they get the link to create this community's password. In the API and the assistant, everything that said profile now says member.

The resident company becomes a subscriber, billed to its CNPJ and with access for the whole team. Also: adjustments to member management and a large API review, which now calls a member what it used to call a profile.

## Resident companies subscribe and pay with a CNPJ

**What it is.** Resident companies now subscribe to plans and pay with a CNPJ, with access for the whole team and a credit wallet. The subscription, the purchase, the card and the billing are in the company's name, not in the name of whoever clicked buy.

**Why it matters.** Before, each employee needed their own subscription, or the company stayed outside billing. Now the startup in room 3 pays for a single plan, billed to its CNPJ, and its five employees get the plan's access. The plan's credits go to the company, and any employee books the meeting room with them.

**Where it is.** For the team, in **Administration › Members**, **Companies** tab: the **Coworking** block picks the plans and products the company can buy and stores the billing details, and the company detail shows **Copy purchase link**, the subscriptions, the purchases and the **Company credits**. For the company admin, in **My company**, with the **Purchase**, **Billing** and **Credits** tabs.

**How to start.**

1. Edit the company, turn on **Coworking** and choose what it can buy under **Plans and products**.
2. On the detail, click **Copy purchase link** and send it to the company admin.
3. They open the link, buy in **My company › Purchase** with the company's CNPJ and follow everything in **Billing**.

**Example.** *Acme Tecnologia* subscribes to the *Private office monthly* plan, with 20 credits a month. The partner, the company admin, pays with Acme's CNPJ; the billing e-mails go to Acme's finance team and to her. João, an employee, books Room 2 picking **Company balance** under **Pay with**, and the company statement shows **Used by João**.

What else comes with it:

- **Access for the team:** the company's plan covers everyone with a live link to the team. A closed company, or one whose planned exit has passed, gives no access and is not billed.
- **Billing:** **Pay now**, plan changes, add-ons and cancellation, as on a member's billing page. Company purchases have no trial period.
- **E-mails:** billing e-mails go to the billing e-mail and to the company admins; the sales notice shows the company and **Bought by**.
- **Bookings and Scheduling:** the employee picks **Company balance** or **My balance**; a time the company covers shows free, with the company icon; the booking shows who paid, and the refund goes back to whoever paid.
- **Sales and subscriptions:** the search also finds the company by name.

See [Resident companies](/membros/empresas), [Credits](/monetizacao/creditos#company-credits) and [Bookings](/espacos/reservas#pay-with-the-company-balance).

## Improvements

- **Adding someone who already belongs to another community through member management now works right away.** They get the link to create this community's password: the account belongs to each community, and the other community's password does not open this one. See [Invite members](/membros/convidar-membros).
- **People pickers say "members".** In the people search (to pick assignees, hosts, recipients), the field now says *Search members...* and, with no results, *No members found*, instead of "profiles".
- **New security controls.**

## Fixes

- **The new card used in Pay now becomes the default card.** Before, whoever paid an overdue renewal with another card kept the old card for the next renewals. See [Pay now](/pagamentos/pagar-agora).

## For developers

### API

- `GET /api/ledger` with an `entryType` that does not exist now answers `400`, with `param: "entryType"`, instead of an internal error. The accepted types are in the [reference](/api/referencia/ledger).
- `GET /api/status` signed out now carries `canEdit`, `canDelete` and `canModerate` as `false`, in the same shape as for a signed-in viewer.
- **Profile becomes member across the API.** The `/api/profiles/*` routes are now `/api/members/*`: the list is `GET /api/members`, creating is `POST /api/members`, inviting is `POST /api/members/invite`, the member card is `/api/members/{id}` (with `/email`, `/phone`, `/tags`, `/role`, `/fields`), tags live in `/api/members/tags`, and your own things live in `/api/members/me` (edit), `/api/members/me/communities`, `/api/members/me/downloads`, `/api/members/me/email-preferences` and `/api/members/me/decline`. Also changed: `/api/hierarchy/members/{id}`, `/api/credits/members/{memberId}` and the picture, `POST` and `DELETE /api/upload/avatar/member`, with an optional `memberId` for the team to change someone else's. The old routes no longer exist. See [Manage members](/membros/gerenciar-membros) and [Account and profile](/conceitos/conta-e-perfil).
- **`memberId` instead of `profileId`** in every request and response (and `*MemberId` instead of `*ProfileId`); the `X-ProfileId` header becomes `X-MemberId`, and the SDK swaps `setProfile` for `setMember`. See [Authentication](/api/autenticacao) and [JavaScript SDK](/api/sdk-js).
- **The session is the member.** Sign-in, sign-up and `GET /api/auth/me` return this community's member, flat, with `id` equal to the `memberId`; `profiles[]` is gone. See [Authentication](/api/autenticacao).
- **Undoing is `DELETE`.** Taking back a reaction (on a post, status, comment, course, lesson or gallery image) is `DELETE` on the same path as the reaction; `POST` only adds or changes. Removing an event recording is `DELETE /api/events/{id}/recording`. See [Responses and errors](/api/respostas-e-erros).
- **Translated authentication errors.** Sign-in and role `401` and `403` come in the standard envelope, with `errors[]`, in the language of `Accept-Language` (English without a recognized language). A member from another community answers `404`, the same as an id that doesn't exist. See [Responses and errors](/api/respostas-e-erros).
- **Resident company as subscriber.** `POST /api/checkout` and `POST /api/checkout/calculate-price` accept `companyId` (buying on behalf of the company: its admin only, CNPJ required, no free trial). `GET /api/subscriptions`, `GET /api/purchases/me` and `GET /api/manage/purchases` accept `?companyId=`; the `/api/subscriptions/{id}/…` routes treat the company admin as the subscriber. `GET /api/dashboard/customers` also lists paying companies, with `type` (`member` or `company`). See [Resident companies](/membros/empresas#in-the-api).
- **Company credits.** `GET /api/credits/companies/{companyId}` and `/entries` (with `usedBy`); `POST /api/credits/grants` and `/adjustments` accept `companyId` instead of `memberId`; `GET /api/credits/me` carries `company`. Bookings: `payWith` (`own` or `company`) on `POST /api/bookings` and on rescheduling, `creditPayer` on every booking, and `affordableWith` and `companyWallet` in search, availability and Scheduling. See [Credits](/monetizacao/creditos#in-the-api-and-mcp).
- **Breaking change in `/api/resident-companies`:** the route no longer accepts or returns `planProductId`, `productId`, `monthlyValue`, `plan` and `product`. Use `offerProductIds` (write), `offers` (read) and `billing { legalName, taxId, email }`; the answer carries `purchaseLink`.

### MCP: technical details

- **Resident company:** `create_resident_company` and `update_resident_company` swap `plan_product_id` and `product_id` for `offer_product_ids` and `billing` and return `purchaseLink`. `get_resident_company` brings `subscriptions` and `credit_balance`; `get_my_resident_company`, for the company admin, brings `billing`, `subscriptions`, `purchases` and `credit_balance`. See [Tools · Resident companies](/mcp/ferramentas-empresas).
- **Billing by the company admin:** `list_my_subscriptions` and `list_my_purchases` accept `company_id`; `manage_my_subscription`, `quote_plan_change` and `change_my_plan` work on the company's subscription. New: `quote_my_add_on`, `add_my_add_on` and `pay_my_subscription_now`, which ask for confirmation and only take PIX or boleto (card, only in the app). See [Tools · Subscriptions](/mcp/ferramentas-assinaturas#add-on-and-overdue-payment).
- **Credits and bookings:** new `get_company_credit_balance` and `list_company_credit_entries`; `grant_credits`, `adjust_credits` and `revoke_credits` accept `company_id`; `create_booking`, `create_booking_for_member` and `reschedule_booking` accept `pay_with`. There are 442 tools. See [Tools · Credits](/mcp/ferramentas-creditos).
- `update_member_profile` is now `update_member`, and `update_my_profile` is `update_me` (only `name`, `tagline`, `language`, `phone` and `phone_country`). The `*_profile_id` arguments become `*_member_id`. `update_avatar` no longer has `scope`. `add_reaction`, `react_to_comment` and `react_to_gallery_image` accept `remove: true` to take a reaction back, and reacting to gallery images through the assistant works again, now also with 🎉. See [Tools › Members](/mcp/ferramentas-membros).
